Skip to main content
Glama

Scavio MCP Server

GitHub Repo stars License

Scavio is a unified Web Search API and MCP server that gives AI agents web search, page extraction, and structured data from e-commerce, social, travel, jobs, real-estate, app-store, ad-library and company-filing sources. 191 tools across 31 platforms plus Extract, one API key.

The 22 platforms added in 0.13.0 are opt-in. Registering all 191 tools puts 262KB of tool definitions — roughly 70k tokens — into every session before you type anything. So the default is the surface 0.12.x already had, plus Extract: 106 tools, 102KB. Upgrading never removes a tool you were using. Everything else is one env var away: see Choosing which tools load.

Remote MCP Server

Connect directly to Scavio's remote MCP server without any local installation:

https://mcp.scavio.dev/mcp

Pass your API key via the x-api-key header. Get your key at scavio.dev.


Related MCP server: agent-reach-mcp

Run Locally (npx)

Prefer to run the server on your own machine? Use npx with no clone or build. The server runs over stdio and only needs your SCAVIO_API_KEY.

Claude Code

claude mcp add scavio -e SCAVIO_API_KEY=YOUR_SCAVIO_API_KEY -- npx -y @scavio/mcp-server

Any MCP-Compatible Client (Claude Desktop, Cursor, Windsurf, VS Code, etc.)

{
  "mcpServers": {
    "scavio": {
      "command": "npx",
      "args": ["-y", "@scavio/mcp-server"],
      "env": {
        "SCAVIO_API_KEY": "YOUR_SCAVIO_API_KEY"
      }
    }
  }
}

Requires Node.js 20+. Get your API key at scavio.dev.


Install

Claude Code

claude mcp add scavio --transport http --url https://mcp.scavio.dev/mcp --header "x-api-key: YOUR_SCAVIO_API_KEY"

Claude Desktop

Add to claude_desktop_config.json (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "scavio": {
      "command": "npx",
      "args": ["-y", "@scavio/mcp-server"],
      "env": {
        "SCAVIO_API_KEY": "YOUR_SCAVIO_API_KEY"
      }
    }
  }
}

Requires Node.js 20+. Restart Claude Desktop after saving.

Cursor

Install MCP Server

Or add to .cursor/mcp.json in your project root or ~/.cursor/mcp.json for global:

{
  "mcpServers": {
    "scavio": {
      "type": "http",
      "url": "https://mcp.scavio.dev/mcp",
      "headers": {
        "x-api-key": "YOUR_SCAVIO_API_KEY"
      }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "scavio": {
      "type": "http",
      "url": "https://mcp.scavio.dev/mcp",
      "headers": {
        "x-api-key": "YOUR_SCAVIO_API_KEY"
      }
    }
  }
}

VS Code

Create .vscode/mcp.json in your project root:

{
  "servers": {
    "scavio": {
      "type": "http",
      "url": "https://mcp.scavio.dev/mcp",
      "headers": {
        "x-api-key": "YOUR_SCAVIO_API_KEY"
      }
    }
  }
}

ChatGPT

  1. Go to ChatGPT > Settings > Apps & Connectors

  2. Click Add custom connector

  3. Enter the MCP server URL: https://mcp.scavio.dev/mcp

  4. Configure authentication with your API key

Cline

Add to cline_mcp_settings.json (open via Cline sidebar > MCP Servers > Configure):

{
  "mcpServers": {
    "scavio": {
      "type": "http",
      "url": "https://mcp.scavio.dev/mcp",
      "headers": {
        "x-api-key": "YOUR_SCAVIO_API_KEY"
      }
    }
  }
}

Zed

Add to settings (Cmd+,):

{
  "assistant": {
    "mcp_servers": {
      "scavio": {
        "type": "http",
        "url": "https://mcp.scavio.dev/mcp",
        "headers": {
          "x-api-key": "YOUR_SCAVIO_API_KEY"
        }
      }
    }
  }
}

Any MCP-Compatible Client

{
  "type": "http",
  "url": "https://mcp.scavio.dev/mcp",
  "headers": {
    "x-api-key": "YOUR_SCAVIO_API_KEY"
  }
}

Choosing which tools load

Scavio exposes 191 tools. Loading all of them costs 262KB of tools/list — roughly 70k tokens of context in every session before the user has said anything, and more tools than some clients will accept at all. So the server registers a curated subset by default and lets you pick the rest. The sizes below are measured, not estimated: npm run toolslist reproduces them.

SCAVIO_PLATFORMS is a comma-separated allowlist of platform keys:

Value

Registers

(unset)

Everything 0.12.x had, plus extract106 tools, 102KB

all

every platform — 191 tools, 262KB

extract,sec,g2

just those platforms — 11 tools, 20KB

default,walmart,metaads

the default set plus two more — 58 tools

none

no platform tools, only get_usage

Keys are matched case- and punctuation-insensitively, so meta-ads, metaads and META_ADS are the same thing, and twitter resolves to x. An unknown key is logged to stderr and skipped rather than failing the server.

get_usage always registers — it is free, and it is what every install guide tells you to call to check the server works.

Platform keys: extract, google, youtube, tiktok, instagram, reddit, x, linkedin, threads, kuaishou, amazon, walmart, ebay, target, homedepot, tiktok-shop, booking, airbnb, tripadvisor, yelp, zillow, redfin, indeed, glassdoor, appstore, googleplay, g2, capterra, googleads, metaads, sec, companieshouse

Local (stdio)

{
  "mcpServers": {
    "scavio": {
      "command": "npx",
      "args": ["-y", "@scavio/mcp-server"],
      "env": {
        "SCAVIO_API_KEY": "YOUR_SCAVIO_API_KEY",
        "SCAVIO_PLATFORMS": "extract,google,zillow,redfin"
      }
    }
  }
}

Remote (HTTP)

The hosted server has no env var to read, so pass the allowlist per connection — either as a header or as a query parameter:

{
  "scavio": {
    "type": "http",
    "url": "https://mcp.scavio.dev/mcp",
    "headers": {
      "x-api-key": "YOUR_SCAVIO_API_KEY",
      "x-scavio-platforms": "extract,google,sec,companieshouse"
    }
  }
}
https://mcp.scavio.dev/mcp?platforms=all

Upgrading from 0.12.x

Nothing to do. The default set is exactly the 10 platforms 0.12.x registered, plus Extract — every tool you were using still loads, and the context cost is unchanged. Walmart grew from 2 tools to 7, so the count moves 100 → 106.

The 22 platforms added in 0.13.0 are opt-in. Add them additively:

SCAVIO_PLATFORMS=default,zillow,redfin,sec

One breaking fix worth knowing: search_walmart previously sent fulfillment_speed: "anytime" on every call, which the API rejects. The parameter is now today or tomorrow with no default.


Available Tools

Every tool costs 1 credit per call unless its section says otherwise. Several platforms price per endpoint (YouTube, Instagram, LinkedIn, Kuaishou) or per request body (Extract, Threads, Walmart); get_amazon_options and get_usage are free.

Extract

Tool

Description

extract_url

Read any web page and return it as clean Markdown, plain text, or raw HTML

Extract is tier-priced by the mode parameter, not flat: normal (plain fetch) and advanced (full JavaScript rendering) cost 1 credit, ultra (residential proxy, for hard bot walls) costs 2. Start at normal and escalate only when the content comes back empty or blocked. You are billed only on a successful extraction — a dead link, a bot wall or a timeout costs nothing. There is no pagination: the whole page comes back in one call.

Google Search API

Tool

Description

search_google

Web search (v2) with organic results, ads, and AI Overview

google_ai_mode

AI Mode conversational answer with cited sources

google_maps_search

Search Google Maps for local businesses

google_maps_place

Place details: address, phone, hours, rating

google_maps_reviews

Reviews for a place with pagination

google_shopping

Product listings with price, store, and rating

google_shopping_product

Product detail and sellers

google_shopping_stores

More sellers for a product (pagination)

google_flights

Flight itineraries with prices and stops

google_hotels

Hotel search with prices and ratings

google_hotels_detail

Hotel property details

google_news

News results by query, topic, story, or publication

google_trends

Interest-over-time and related queries

google_trending

Trending searches

YouTube Data API

Tool

Description

search_youtube

Search videos, channels, and playlists

search_youtube_shorts

Search short-form videos

youtube_search_suggestions

Get search autocomplete suggestions

get_youtube_video

Get full video details, chapters, and captions

get_youtube_metadata

Deprecated alias of get_youtube_video

get_youtube_comments

Get comments on a video with pagination

get_youtube_comment_replies

Get replies to a specific comment

get_youtube_transcript

Get a video transcript as plain text or SRT

get_youtube_related

Get videos related to a video

search_youtube_channels

Search channels by keyword

get_youtube_channel

Get channel profile by ID, handle, or URL

get_youtube_channel_videos

List a channel's videos

get_youtube_channel_shorts

List a channel's Shorts

get_youtube_channel_community

List a channel's community posts

resolve_youtube_channel

Resolve a handle or URL to a channel ID

get_youtube_streams

Get direct media stream URLs for a video

Credit cost varies: get_youtube_transcript costs 8, get_youtube_streams 3, search_youtube and search_youtube_shorts 2, and every other YouTube tool 1. get_youtube_related accepts a cursor but never returns one, so treat it as a single page.

Amazon Product API

Tool

Description

search_amazon

Search product listings across 22 marketplaces (no sort option)

get_amazon_product

Get full product details by ASIN

get_amazon_offers

List every seller offering an ASIN, with buy-box winner

get_amazon_options

List the supported marketplaces and their country codes (free)

Walmart API

Tool

Description

search_walmart

Search product listings with price and delivery filters

get_walmart_product

Get full product details by product ID

get_walmart_reviews

Customer reviews with ratings, text, author, date and the rating breakdown

get_walmart_category

Products within a category, same product shape as search

get_walmart_offers

The buy-box offer for a product: price, seller, condition, buy-box flag

get_walmart_seller

Marketplace seller storefront: name, rating, Pro Seller badge, business details

get_walmart_seller_products

A seller's catalogue; total_count is the real size

Walmart is priced by the domain parameter, not at a flat rate: com (US, default) and ca cost 1 credit, com.mx costs 2. Only search_walmart and get_walmart_category accept domain, so only those two can cost 2 — the other five are always 1. The id-keyed tools are US-only, because walmart.ca product pages cannot be fetched.

Two shapes to plan for. get_walmart_offers returns the buy-box winner only — Walmart server-renders just that one offer, so expect a single row even when total_offer_count is higher. And get_walmart_seller_products is capped at roughly the first 40 items with no page or cursor parameter; read total_count to know you are looking at a slice. Both seller tools need the NUMERIC seller_catalog_id from a product, search or offers response — the GUID-form seller_id in those same responses 404s.

TikTok API

Tool

Description

get_tiktok_profile

Get user profile (bio, follower/following counts, likes)

get_tiktok_user_posts

List a user's videos with stats

get_tiktok_video

Get detailed info for a single video

get_tiktok_video_comments

Get comments on a video

get_tiktok_comment_replies

Get replies to a specific comment

search_tiktok_videos

Search videos by keyword

search_tiktok_users

Search users by keyword

get_tiktok_hashtag

Get hashtag details and stats

get_tiktok_hashtag_videos

List videos for a hashtag

get_tiktok_user_followers

Get a user's follower list

get_tiktok_user_followings

Get a user's following list

Instagram API

Tool

Description

get_instagram_profile

Get user profile (bio, follower/following/post counts)

get_instagram_user_posts

List a user's posts with pagination

get_instagram_user_reels

List a user's Reels with pagination

get_instagram_user_tagged

List posts a user is tagged in

get_instagram_user_stories

Get a user's active stories

get_instagram_post

Get a single post by url, media_id, or shortcode

get_instagram_post_comments

Get comments on a post

get_instagram_comment_replies

Get replies to a specific comment

search_instagram_users

Search users by keyword

search_instagram_hashtags

Search hashtags by keyword

get_instagram_user_followers

Get a user's follower list

get_instagram_user_followings

Get a user's following list

Instagram is priced per endpoint, not at a flat rate: get_instagram_user_posts costs 2, get_instagram_post and get_instagram_comment_replies cost 8, and the other nine tools cost 10. The 10-credit endpoints hedge two upstream providers and bill both legs, which is what the price reflects.

Reddit API

Tool

Description

search_reddit

Search Reddit posts by query, relevance order, cursor pagination

get_reddit_post

Get a single post by URL or id (no comments; see below)

get_reddit_search_suggestions

Get search autocomplete suggestions

get_reddit_post_comments

Get a post's top-level comments with pagination

get_reddit_comment_replies

Get replies to a specific comment

get_reddit_subreddit

Get subreddit metadata and subscriber count

get_reddit_subreddit_posts

List a subreddit's post feed

get_reddit_user

Get a redditor's profile

get_reddit_user_posts

List a redditor's submitted posts

get_reddit_user_comments

List a redditor's comments

get_reddit_popular

Get the site-wide popular feed

get_reddit_trending

Get current trending search queries

Every Reddit tool costs 1 credit. Two things to know: search_reddit takes a query and a cursor only - there is no sort or post-type filter, results come back in relevance order - and get_reddit_post returns a flat post object with no comments, so call get_reddit_post_comments with the post id for those. Reddit is the slowest platform here, typically 5-15 seconds per call.

X API

Tool

Description

search_x

Search tweets and people by keyword

get_tweet

Get full details for a single tweet

get_tweet_comments

Get replies to a tweet (ranked or chronological)

get_tweet_retweeters

List users who retweeted a tweet

get_x_user

Get a user's profile by handle

get_x_user_tweets

List a user's tweets

get_x_user_replies

List a user's tweets and replies

get_x_user_media

List a user's media tweets

get_x_user_followers

List a user's followers

get_x_user_followings

List accounts a user follows

get_x_trending

Get trending topics for a country

get_x_user_tweets, get_x_user_replies and get_x_user_media return a next_cursor but no has_more, so page until the cursor is absent or the timeline comes back empty.

LinkedIn API

Tool

Description

get_linkedin_person

Get a member's full profile, experience and education

get_linkedin_person_about

Get a member's about/overview sections

get_linkedin_person_posts

List a member's recent posts (up to 50)

get_linkedin_company

Get a company's profile, locations and related companies

get_linkedin_company_posts

List a company's recent posts (up to 50)

search_linkedin_jobs

Search for jobs by keyword and location

get_linkedin_job

Get full details for a job listing

get_linkedin_post

Get full details for a single post

get_linkedin_post_comments

Get comments on a post, 10 per page

All take a vanity handle, slug or id, or a full LinkedIn URL. Credit cost varies: get_linkedin_person, get_linkedin_person_about, get_linkedin_company and get_linkedin_post cost 1; get_linkedin_person_posts, get_linkedin_company_posts, search_linkedin_jobs and get_linkedin_post_comments cost 10 per page; get_linkedin_job costs 30.

The upstream provider retired the datasets behind member contact info, the company employee directory, per-company job listings, people search and post search, so those five tools were removed. get_linkedin_company still returns a small sample of featured employees, and search_linkedin_jobs with a company name substitutes for per-company listings.

TikTok Shop API

Tool

Description

search_tiktok_shop

Search TikTok Shop products by keyword (US catalog, exact prices)

get_tiktok_shop_search_suggestions

Keyword autocomplete for a partial query, 8 regions

get_tiktok_shop_product

Full product detail (no price; ~44% of search IDs resolve)

get_tiktok_shop_product_reviews

Paginated product reviews, up to 200 per call

get_tiktok_shop_categories

The global category tree (28 top-level, 240 nodes)

get_tiktok_shop_category_products

List products under a category ID, with exact prices

get_tiktok_shop_shop_products

List a seller's catalog, 30 per page, with exact prices

resolve_tiktok_shop_url

Resolve a TikTok Shop URL or share link to a product/shop ID

Two things to know: get_tiktok_shop_product does not return a price (TikTok masks it on the product page upstream) - exact prices come from search_tiktok_shop, get_tiktok_shop_shop_products and get_tiktok_shop_category_products. And only about 44% of the product IDs returned by search resolve on get_tiktok_shop_product (11 of 25 measured), because upstream has no detail data for the rest. That miss is signalled by the HTTP 404 status, not by any field in the response body, and it is a normal outcome rather than an error to retry - the tool returns it as a plain result with status: "no_detail_data" so agents skip the product instead of looping. For an id that will not resolve, get_tiktok_shop_product_reviews is often still usable: across 8 measured ids that failed on detail, 8 of 8 returned HTTP 200 on reviews and 7 of 8 returned at least one review.

Threads

Tool

Description

get_threads_profile

Profile details for a Threads user, by user_id or username

get_threads_user_posts

A user's Threads posts, cursor-paginated

get_threads_user_replies

A user's replies, cursor-paginated

get_threads_post

A single post by id or threads.net URL

get_threads_post_comments

Replies to a post, cursor-paginated

search_threads_users

Profiles matching a name or handle - the only search Threads exposes

Threads is priced by how you address a user, not per endpoint: 2 credits when you pass user_id, 4 credits when you pass username. Only get_threads_profile, get_threads_user_posts and get_threads_user_replies accept a username; the other three are always 2. Prefer user_id - a handle buys a second upstream lookup.

Kuaishou (China)

Tool

Description

get_kuaishou_profile

Profile details for a Kuaishou user (10 credits)

get_kuaishou_user_posts

A user's top posts, cursor-paginated

get_kuaishou_user_live

A user's current live-stream status

resolve_kuaishou_user

Turn a Kuaishou share link into a user id

get_kuaishou_video

A single video by photo id or URL (2 credits)

get_kuaishou_video_comments

Comments on a video, cursor-paginated

get_kuaishou_comment_replies

Replies under a root comment

get_kuaishou_videos_batch

Up to 20 videos in one call (40 credits)

search_kuaishou

Mixed-result search across Kuaishou (10 credits)

search_kuaishou_videos

Video search results (10 credits)

search_kuaishou_users

User search results (10 credits)

search_kuaishou_live

Live-stream search results (10 credits)

get_kuaishou_tag_feed

Posts under a hashtag, cursor-paginated

get_kuaishou_trending

Hot, live, shopping, brand and music leaderboards

Kuaishou is priced per endpoint, not at a flat rate: get_kuaishou_profile and all four search tools cost 10, get_kuaishou_video 2, get_kuaishou_videos_batch 40, and every other tool 1.

eBay

Tool

Description

search_ebay

Search live or SOLD listings: price, condition, bids, shipping, seller feedback

get_ebay_product

One listing in full: price, condition, images, item specifics, shipping, returns, auction state

get_ebay_seller

Seller profile card: store name, feedback score, items sold, followers, location

1 credit per call. get_ebay_seller is a profile card and cannot enumerate a catalogue - list a seller's inventory with search_ebay and seller set and no keyword. sold: true searches completed listings that actually sold; on that view eBay publishes no headline count, so total_results is null. per_page accepts only 60, 120 or 240.

Target

Tool

Description

search_target_products

Search Target.com: prices, ratings, badges and promotions

get_target_category

Products in a category, same shape as search plus the breadcrumb

get_target_product

Product details by TCIN: price, images, specifications, variants, fulfillment

get_target_reviews

Reviews with the rating breakdown, per-attribute averages and guest photos

1 credit per call. get_target_product and get_target_reviews are single-shot; search and category page with page + count.

Home Depot

Tool

Description

search_home_depot

Search Home Depot: price, brand and model, ratings, per-store pickup/delivery

get_home_depot_product

Full item detail: pricing, media, spec table, dimensions, documents, return policy

get_home_depot_reviews

Full review bodies, rating distribution, per-attribute ratings, seller responses

2 credits per call. Search page size is fixed at 12 and cannot be changed. Reviews return 30 per page; total_pages is the last page that exists and asking past it is a 404.

Booking.com

Tool

Description

search_booking

Properties for a destination and stay: live nightly price, review score, room type

get_booking_hotel

One property in full: rooms and rate plans, facilities, house rules, policies, images

get_booking_reviews

Guest reviews with the score breakdown by category and Booking's own summary

1 credit per call. Search returns 25 properties per page; get_booking_hotel and get_booking_reviews are single-shot.

Airbnb

Tool

Description

search_airbnb

Stays with stay-total and per-night price, the full discount ledger, rating, coordinates

get_airbnb_listing

One listing in full: description, capacity, grouped amenities, host, house rules, rating breakdown

get_airbnb_reviews

Review bodies with per-review rating, date and reviewer profile

1 credit per call. search_airbnb takes page XOR cursor - sending both is rejected, and cursor wins. 18 listings per page. get_airbnb_reviews pages with limit + offset.

Tripadvisor

Tool

Description

resolve_tripadvisor_location

START HERE - resolve a place or business name to the geo_id / location_id pair

search_tripadvisor

Restaurants, hotels or attractions in a geo, TripAdvisor-ranked

get_tripadvisor_location

One location in full: rating histogram, sub-ratings, city ranking, amenities, first review page

get_tripadvisor_reviews

A page of reviews: rating, trip date and type, reviewer profile, management response

2 credits per call. Start with resolve_tripadvisor_location for the geo_id / location_id pair everything else needs. Search returns 30 per page and a page past the last is a 404, not an empty result. Reviews return 15 per page for restaurants and 10 for hotels and attractions, so category must match the location's own type on any page past the first.

Yelp

Tool

Description

search_yelp

Businesses in Yelp's ranked order: rating, review count, price band, categories, hours

get_yelp_business

One business in full: per-star histogram, contact, hours, amenities, health inspections, Q&A

get_yelp_reviews

A page of reviews: rating, full text, author profile, photos, owner response

2 credits per call. Yelp fixes the page size at 10. get_yelp_business already includes the first page of reviews at no extra cost. A review page past the last is a 404, not an empty result.

Zillow

Tool

Description

search_zillow

Listings in a region: price, beds, baths, living area, Zestimate, coordinates, days on market

get_zillow_property

Full listing: price and price history, Zestimate, tax history, RESO facts, schools, photos

get_zillow_agent_reviews

A Zillow AGENT's profile and reviews, specialties, licenses, service areas, sales counts

1 credit per call. Only search_zillow paginates. get_zillow_agent_reviews is an AGENT profile, not a property.

Redfin

Tool

Description

search_redfin

Listings: price, price per sqft, beds, baths, living area, lot size, year built, photos

get_redfin_property

Full listing: Redfin Estimate, MLS fact sheet, price and tax history, schools, climate risk, comps

get_redfin_market

Market stats for a region: median list and sale price, sale-to-list ratio, days on market, compete score

1 credit per call. search_redfin pages with page + limit, up to 350 listings per page; the other two are single-shot.

Indeed

Tool

Description

search_indeed_jobs

Job postings: title, employer, rating, location, salary range, job type, apply route

get_indeed_job

One posting in full: description text and HTML, structured salary, benefits, original ATS link

get_indeed_company

Employer profile: industry, HQ, size, revenue, CEO approval, per-category ratings, open roles

get_indeed_company_reviews

Employee reviews with per-category ratings, pros/cons, reviewer job title and location

2 credits per call. Job search returns 10 postings per page, company reviews 20 per page. get_indeed_job and get_indeed_company are single-shot.

Glassdoor

Tool

Description

resolve_glassdoor_company

START HERE - resolve a company name to the employer_id the other tools need

get_glassdoor_company

Employer profile: ratings, star distribution, CEO approval, size and revenue bands, awards

get_glassdoor_reviews

Up to three full reviews with per-axis scores and employer response, plus complete rating statistics

get_glassdoor_salaries

Salaries by job title: base-pay and total-pay percentiles P10-P90, sample counts, pay period

1 credit per call. Start with resolve_glassdoor_company for the employer_id. Only get_glassdoor_salaries paginates (10 job titles per page; page_count is how many exist). get_glassdoor_reviews returns up to three full reviews plus complete rating statistics - it is not a paginated review feed.

Apple App Store

Tool

Description

search_app_store

Up to 200 fully-shaped apps - doubles as a bulk metadata fetch and a publisher lookup

get_app_store_app

Full listing: developer identity, price, all-time and current-version ratings, release notes, screenshots

get_app_store_reviews

A page of reviews: star rating, title, full text, author, and the app version reviewed

1 credit per call. Reviews page 1-10 at 50 per page and stop hard at page 10: 500 reviews per storefront is Apple's anonymous ceiling, and you reach further by asking a different country. Search and app detail do not paginate.

Google Play

Tool

Description

search_google_play

Ranked apps: package name, developer, rating, install count, price and IAP range, screenshots

get_google_play_app

Full store listing: the real install count, star histogram, IAPs, permissions, Data safety table

get_google_play_reviews

A page of reviews: star score, full text, thumbs-up count, developer reply, app version

2 credits per call - a separate namespace from google and not on the Google-exempt price. Reviews are cursor-paginated, and the cursor is opaque, single-use and encodes the sort as well as the position, so send it back with the same sort it came from. A cursor past the last review is a 404. Search and app detail do not paginate.

G2 Software Reviews

Tool

Description

search_g2_software

Search B2B software: star rating, review count, vendor, categories; each row carries product_id

get_g2_product

Full profile: per-star histogram, pricing editions, feature groups, integrations, alternatives, AI pros/cons

get_g2_reviews

A page of reviews: rating, likes/dislikes, problems solved, reviewer firmographics, validated flags

5 credits per call - the most expensive platform on Scavio. search_g2_software pages with page + limit (capped at 100 on our side); get_g2_reviews is fixed at 10 per page and paginates well past the 10 pages G2's own widget links to. get_g2_product is single-shot.

Capterra Software Reviews

Tool

Description

search_capterra_software

Search B2B software: 20 ranked products with rating, review count and paid-placement flag

get_capterra_product

Full profile: per-star histogram, four scored criteria, pricing table, features, plus 25 recent reviews

get_capterra_reviews

A page of reviews: overall plus five per-criterion scores, pros, cons, alternatives considered

2 credits per call. Only get_capterra_reviews paginates: 25 per page, capped at page 100 - past it Capterra answers 200 with page one, so check what came back. get_capterra_product already includes the 25 most recent reviews.

Google Ads Transparency

Tool

Description

resolve_google_ads_advertiser

START HERE - resolve a brand name or domain to the advertiser_id

search_google_ads

Every ad Google is running for one advertiser, with first/last seen dates and days actually run

get_google_ads_creative

One creative in full - the only tool carrying size variations, impression bucket and region breakdown

1 credit per call. Start with resolve_google_ads_advertiser to turn a brand name or domain into an advertiser_id. search_google_ads is cursor-paginated at 100 ads per page - re-send the same filters alongside the cursor. get_google_ads_creative is the only tool carrying a creative's history, region breakdown and impression bucket.

Meta Ad Library

Tool

Description

search_meta_ads

Search the Meta Ad Library with full creative: ad copy, headline, CTA, media, platforms, run dates

get_meta_ads_advertiser

Every ad a Facebook Page is running, by numeric page id, with the same creative detail

get_meta_ad

One ad in full by archive id: creative, advertiser, run dates, platforms, political disclosure

1 credit per call, and every cursor page is another credit: page 1 returns 30 ads, then 10 per page thereafter, so the cost of walking a whole query scales with depth. search_meta_ads and get_meta_ads_advertiser both cursor-paginate - walk has_next_page. get_meta_ad is single-shot.

SEC EDGAR

Tool

Description

resolve_sec_company

START HERE - resolve a company name or ticker to the CIK everything else is keyed by

get_sec_company

Filer profile: legal and former names, SIC industry, EIN, LEI, fiscal year end, tickers

get_sec_filings

A page of one filer's filings: accession number, form, dates, 8-K item codes, document links

get_sec_concept

Every value a filer reported for one XBRL concept, newest first, with its source filing

get_sec_facts

The index of every XBRL concept a filer reports - use it to find what to ask get_sec_concept for

search_sec_filings

EDGAR full-text search, 2001-today, with facets by company, form, industry and state

1 credit per call on the official free EDGAR JSON API. Start with resolve_sec_company to turn a name or ticker into a CIK. get_sec_filings pages with page + limit; search_sec_filings pages up to 100, because the index refuses a result window past 10,000.

Companies House

Tool

Description

search_companies_house

START HERE - search the UK register by name for the company_number

get_companies_house_company

Full register entry: status, type, dates, registered office, SIC codes, accounts due dates

get_companies_house_officers

Officers current and resigned: role, appointment and resignation dates, nationality, DOB

get_companies_house_filing_history

Filings most recent first: date, type code, description, link to the filed PDF

1 credit per call on the official UK register. Start with search_companies_house for a company_number. Search returns 20 per page and is capped at page 50 - the register serves a 1000-result window per term whatever hit count it prints, then answers page 51 with a 416. Officers (35/page) and filing history have no upper page bound; past the last page they return an ordinary 200 with an empty list, which looks identical to having none.

Account

Tool

Description

get_usage

Check credit balance, plan, and usage stats


About Scavio

Scavio is a unified search API for AI agents and a data API for developers. One key, structured JSON, no scraping or proxies:

Teams use it as a SerpAPI alternative with structured multi-platform data — see Tavily vs Scavio for a head-to-head comparison.

Get a free Search API key at scavio.dev.


License

MIT

Available Tools

21 tools
get_amazon_productAInspect

Get detailed information for an Amazon product by its ASIN. Returns title, full description, price, rating, review count, images, variants, and seller info. Use when the user has a specific Amazon product URL or ASIN and wants full details.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesAmazon ASIN — the 10-character product ID, e.g. 'B09V3KXJPB'. Extract from the Amazon URL (/dp/ASIN).
domainNoAmazon domain suffix, e.g. 'com', 'co.uk', 'de'.com

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes return fields but does not mention any behavioral aspects like authentication, rate limits, or whether it's read-only. With no annotations, more behavioral detail would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no waste. First sentence states function and output, second gives usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately lists return fields. For a simple info retrieval tool, it provides sufficient context for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema adequately documents parameters. The description adds no significant semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool retrieves detailed information for an Amazon product by ASIN, lists specific return fields, and distinguishes from sibling tools like search_amazon and get_walmart_product.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: when user has a specific URL or ASIN. Lacks explicit when-not-to-use or alternatives, but context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reddit_postAInspect

Get a full Reddit post by URL as JSON, including body, score, upvote ratio, flair, awards, and the full comment tree. Comments are a flat array in traversal order; use depth (0-indexed) or parentId to reconstruct the thread hierarchy. contentUrl is the external article for link posts. Slower than other platforms (5-15 seconds).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull Reddit post URL, e.g. 'https://www.reddit.com/r/Python/comments/1smb9du/fastapi_vs_django/'.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses speed (5-15 seconds), comment structure (flat array, reconstruct hierarchy via depth/parentId), and contentUrl for link posts. Lacks info on auth or rate limits, but otherwise transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (three sentences), front-loaded with the main purpose, then provides essential details. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers returned fields (body, score, etc.), comment structure, and contentUrl. Single parameter is fully explained. Complete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter ('url') with 100% schema description coverage. The description adds no extra meaning beyond the example URL format provided in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets a full Reddit post as JSON with specific included fields ('body, score, upvote ratio, flair, awards, and full comment tree'). It distinguishes from siblings like search_reddit (which searches) and other get_* tools for different platforms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when you need a full Reddit post's data by URL. It mentions slower performance (5-15 seconds) setting expectations. However, it does not explicitly state when not to use or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tiktok_comment_repliesAInspect

Get replies to a specific comment on a TikTok video as JSON. Each reply has the same structure as a comment. Requires both video_id and comment_id. Use data.cursor for next page; stop when data.has_more is 0.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYesTikTok video ID.
comment_idYesComment ID (cid) from the get_tiktok_video_comments response.
cursorNoPagination cursor. Use data.cursor from previous response for next page.0
countNoNumber of replies per page (1-50).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It explains the return format (JSON with each reply same structure as a comment) and pagination behavior. However, it does not disclose potential issues like rate limits, authentication requirements, or error handling. The description is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: the first states the purpose, the second adds context about reply structure, and the third provides pagination instructions. Every sentence adds value, and the description is front-loaded with the core function. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four parameters and no output schema, the description covers the core functionality and pagination. It assumes knowledge of comment structure from a sibling tool, which is reasonable. Missing details like error handling or rate limits lower the score slightly, but it is largely complete for an API tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all four parameters with descriptions. The description adds context about the relationship between comment_id and get_tiktok_video_comments response, and pagination cursor usage. Since schema coverage is 100%, the description provides marginal additional meaning, warranting a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies 'Get replies to a specific comment on a TikTok video as JSON.' This clearly identifies the action (get), resource (replies to a specific comment), and output format (JSON). It distinguishes itself from sibling tools like get_tiktok_video_comments, which retrieves top-level comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states that both video_id and comment_id are required, and provides pagination guidance: 'Use data.cursor for next page; stop when data.has_more is 0.' This tells the agent when and how to use the tool effectively. However, it does not explicitly mention when not to use it or provide alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tiktok_hashtagAInspect

Get TikTok hashtag details and stats as JSON. Returns hashtag ID, title, description, video count, and view count. Provide either hashtag_name or hashtag_id. Use the returned ID with get_tiktok_hashtag_videos.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashtag_nameNoHashtag text without the # symbol, e.g. 'fyp'.
hashtag_idNoNumeric hashtag ID. Use if you already have it from a previous request.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses the output format (JSON) and the fields returned. The parameter constraint (provide either hashtag_name or hashtag_id) is stated. It implies read-only operation. No rate limit or auth info, but for a simple read tool this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: two sentences. The first sentence states the purpose and return format, the second explains parameter usage and connection to a sibling tool. No wasted words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description adequately explains the return values (ID, title, description, video count, view count). The parameters are well-documented in both schema and description. The sibling tool connection is explicitly mentioned, providing complete context for an agent to use this tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions (e.g., 'Hashtag text without the # symbol'). The description restates the mutual exclusivity and adds a minor clarification ('hashtag_id: Numeric'). But overall, the schema already does the heavy lifting, so the description adds limited semantic value beyond what's in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'TikTok hashtag details and stats', and lists the returned fields (ID, title, description, video count, view count). It distinguishes from sibling tools by mentioning the returned ID can be used with get_tiktok_hashtag_videos.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use (need hashtag details) and the parameter choices (either name or ID). It also provides a clear next step: use the returned ID with a sibling tool. However, it doesn't explicitly state when not to use or discuss alternatives beyond that one sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tiktok_hashtag_videosAInspect

List TikTok videos for a given hashtag as JSON. Each video includes ID, caption, author, stats, and video URLs. Requires hashtag_id from the get_tiktok_hashtag response. Use data.cursor for next page; stop when data.has_more is 0.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashtag_idYesHashtag ID from the get_tiktok_hashtag response.
cursorNoPagination cursor. Use data.cursor from previous response for next page.0
countNoNumber of results per page (1-30).

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses pagination behavior and output format but does not mention rate limits, authentication, or data freshness. Adequate for a read-only tool but could be more transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. First sentence states purpose and output, second explains pagination. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description covers return fields and pagination. Complete for a listing tool with clear input and usage instructions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. Description adds value by explaining hashtag_id's source, cursor usage for pagination, and count range, going beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists TikTok videos for a given hashtag, specifying included fields (ID, caption, author, stats, video URLs). It distinguishes from siblings like get_tiktok_video (single video) and search_tiktok_videos (search-based).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells when to use it (given hashtag_id from get_tiktok_hashtag) and explains pagination using cursor and has_more. It could explicitly state when not to use, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tiktok_profileAInspect

Get a TikTok user's profile data as JSON. Returns username, display name, bio, follower/following counts, video count, total likes, and avatar URL. Use when the user wants info about a TikTok account. Provide either username or sec_user_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoTikTok handle without the @ symbol, e.g. 'charlidamelio'.
sec_user_idNoSecure user ID. Use this if you already have it from a previous request.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must cover behavior. It describes the output (JSON with specific fields) and implies a read operation. However, it does not mention potential constraints like public profile requirements, rate limits, or error handling, leaving room for improvement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and front-loaded, stating the function first then usage. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with no output schema, the description adequately covers purpose, input requirements, and output fields. It is complete enough for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for both parameters. The tool description adds the context that either parameter can be provided, which is helpful but not a significant addition beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a TikTok user's profile as JSON and lists the returned fields, distinguishing it from sibling tools that handle followers, followings, posts, or videos.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies when to use the tool ('when user wants info about a TikTok account') and provides the requirement to provide either username or sec_user_id. It does not explicitly exclude other scenarios, but the sibling names make the distinction clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tiktok_user_followersAInspect

Get a TikTok user's follower list as JSON. Each follower includes username, display name, sec_uid, follower count, video count, bio, and avatar. Pass both page_token and min_time from previous response for pagination; stop when data.has_more is false.

ParametersJSON Schema
NameRequiredDescriptionDefault
sec_user_idYesSecure user ID from the get_tiktok_profile response.
countNoNumber of results per page (1-20).
page_tokenNoPagination token from previous response.
min_timeNoPagination timestamp from previous response. Must be passed together with page_token.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations present; description covers pagination behavior and return fields but does not explicitly state that the operation is read-only or mention authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no redundancy, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lists follower fields but does not describe overall response structure beyond mentioning data.has_more; adequate for a simple list retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters; description adds context beyond schema by linking sec_user_id to get_tiktok_profile and explaining pagination token usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool retrieves a TikTok user's follower list as JSON and lists the fields included, distinguishing it from siblings like get_tiktok_user_followings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit pagination instructions (page_token and min_time) and a stopping condition, but does not contrast with siblings or specify when to choose followers over followings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tiktok_user_followingsAInspect

Get the list of accounts a TikTok user follows as JSON. Each entry includes username, display name, sec_uid, follower count, video count, bio, and avatar. Pass both page_token and min_time from previous response for pagination; stop when data.has_more is false.

ParametersJSON Schema
NameRequiredDescriptionDefault
sec_user_idYesSecure user ID from the get_tiktok_profile response.
countNoNumber of results per page (1-20).
page_tokenNoPagination token from previous response.
min_timeNoPagination timestamp from previous response. Must be passed together with page_token.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It discloses pagination behavior and required parameters (sec_user_id from get_tiktok_profile). It does not mention rate limits or authentication, but for a straightforward read operation, this is acceptable and no contradictions exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste: first sentence states purpose and output structure, second provides pagination guidance. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must explain return values. It lists the fields per entry and describes the pagination termination condition (has_more false). For a list tool, this is complete and actionable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds significant context beyond the schema: it explains that page_token and min_time must be passed together from previous response, and that sec_user_id comes from get_tiktok_profile. This helps the agent use parameters correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'list of accounts a TikTok user follows', and specifies the output format 'as JSON'. It also lists the fields included, distinguishing it from siblings like get_tiktok_user_followers which returns followers in the opposite direction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit pagination instructions: 'Pass both page_token and min_time from previous response for pagination; stop when data.has_more is false.' It does not explicitly state when not to use or compare to alternatives, but the pagination guidance is clear and sufficient for correct usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tiktok_user_postsAInspect

List a TikTok user's videos with pagination as JSON. Each video includes ID, caption, timestamp, and stats (likes, comments, views, shares, bookmarks). Requires sec_user_id from the profile endpoint. Use data.max_cursor for next page; stop when data.has_more is 0.

ParametersJSON Schema
NameRequiredDescriptionDefault
sec_user_idYesSecure user ID from the get_tiktok_profile response.
cursorNoPagination cursor. Use data.max_cursor from previous response for next page.0
countNoNumber of results per page (1-30).
sort_typeNoSort order. '0' = latest first, '1' = most popular first.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses output fields (ID, caption, timestamp, stats), pagination behavior (cursor, has_more), and a dependency (profile endpoint). It does not cover rate limits or error handling, but for a read-oriented tool, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose and output format, followed by essential usage context. Every sentence is valuable and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no output schema, and no annotations, the description explains the prerequisite, pagination pattern, and output fields. It does not cover sort_type enum values (schema does) or all edge cases, but it is complete enough for typical usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description repeats some schema info (e.g., 'requires sec_user_id') but adds pagination context. It does not add new parameter-specific meaning beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'List a TikTok user's videos with pagination as JSON', providing a specific verb and resource. It distinguishes from siblings like get_tiktok_profile (profile info) and get_tiktok_video (single video) by focusing on listing multiple posts with pagination.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly explains the prerequisite ('Requires sec_user_id from the profile endpoint') and gives explicit pagination instructions ('Use data.max_cursor for next page; stop when data.has_more is 0'). It does not compare to alternatives like search_tiktok_videos but provides sufficient guidance for proper usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tiktok_videoAInspect

Get detailed info for a single TikTok video by ID as JSON. Returns caption, author, music, stats (likes, comments, views, shares, bookmarks), play/download URLs, cover image, duration, hashtags, and mentions. Use when the user has a specific TikTok video URL or ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYesTikTok video ID. Extract from a TikTok URL if the user provides one.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the return format (JSON with specific fields) but does not disclose behavioral traits such as authentication requirements, rate limits, error handling, or whether the request is destructive. The description adds some value but lacks transparency on these important aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, consisting of two short sentences. The first sentence front-loads the core purpose and output format. Every word adds value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single required parameter, no output schema, no nested objects), the description is largely complete. It provides enough detail for an AI agent to use it correctly. However, it could mention potential error cases (e.g., invalid ID) or rate limits, but these are not critical for a basic retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the single parameter with a description explaining to extract the video ID from a URL. The tool description reinforces this by mentioning 'URL or ID'. Since schema coverage is 100%, the description provides additional context on how to derive the ID, going beyond the schema's basic definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves detailed info for a single TikTok video by ID as JSON. It lists the specific data returned (caption, author, music, stats, URLs, etc.), distinguishing it from sibling tools that handle other entities like hashtags, profiles, or comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Use when the user has a specific TikTok video URL or ID.' This provides clear context. However, it does not mention when not to use it or suggest alternative tools for searches or multiple videos, which are available as siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tiktok_video_commentsAInspect

Get comments on a TikTok video as JSON. Each comment includes ID, text, timestamp, like count, reply count, commenter info, and whether the video creator liked it. Use data.cursor for next page; stop when data.has_more is 0.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYesTikTok video ID.
cursorNoPagination cursor. Use data.cursor from previous response for next page.0
countNoNumber of comments per page (1-50).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses pagination behavior and output structure, but does not mention potential errors, rate limits, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first for purpose and output, second for pagination. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers output fields and pagination well, but lacks mention of prerequisites (e.g., video must be public) or error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage, but description adds pagination usage hints (cursor, has_more) beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it gets comments on a TikTok video, with specific output fields listed. Distinguishes from siblings like get_tiktok_comment_replies and get_tiktok_video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit pagination instructions but lacks guidance on when to use this tool versus alternatives like get_tiktok_comment_replies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usageAInspect

Get the current user's credit balance, plan, searches used this month, and auto-recharge settings. Use when the user asks how many credits they have left, what plan they're on, or about their usage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility. It indicates a read operation ('Get...') but does not disclose authentication requirements, side effects, or rate limits. The description is adequate for a simple retrieval but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The first sentence states the outputs, the second gives usage context. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no output schema, and no annotations, the description is mostly complete. It could mention authentication or that data is for the current user, but it already implies 'current user's'. Slight lack of behavioral depth prevents a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the baseline is 4. The description adds no parameter-level detail, but none is needed. The schema already covers 100% of parameters (none).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies exactly what the tool retrieves: credit balance, plan, searches used this month, and auto-recharge settings. It clearly distinguishes from sibling tools, which are all external platform queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: when the user asks about credits, plan, or usage. While it doesn't mention alternatives or when not to use it, the context is clear and the sibling tools are unrelated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_walmart_productAInspect

Get detailed information for a Walmart product by its product ID. Returns title, full description, price, rating, images, and seller info. Use when the user has a specific Walmart product URL or product ID and wants full details.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesWalmart product ID — numeric string from the product URL (/ip/name/PRODUCT_ID).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so description bears full transparency burden. It discloses that the tool returns title, description, price, rating, images, and seller info, which is helpful. However, it doesn't mention potential error on invalid ID, rate limits, or auth requirements. For a simple read operation, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant fluff. The first sentence states the purpose and return fields, the second gives usage guidance. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description adequately covers input and output expectations by listing returned fields. It could mention error handling (e.g., invalid ID) or that images require a separate call, but overall it's reasonably complete given the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes the product_id parameter as a numeric string from the URL. The description adds no additional meaning beyond the schema, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states action (get detailed information), resource (Walmart product by product ID), and lists specific return fields (title, description, price, rating, images, seller info). It distinguishes from siblings like search_walmart (searching) and get_amazon_product (different retailer).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: 'when the user has a specific Walmart product URL or product ID and wants full details.' This provides clear context for appropriate invocation, though it doesn't explicitly state when not to use or mention alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_youtube_metadataAInspect

Get metadata for a YouTube video by its video ID. Returns title, description, channel, duration, view count, like count, publish date, and thumbnail URLs. Use when the user has a specific video ID or URL and wants details about that video.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYesYouTube video ID, e.g. 'dQw4w9WgXcQ'. Extract from URL if the user provides a youtube.com link.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description clearly indicates read-only metadata retrieval with no destructive or side effects. Sufficiently transparent for a simple read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Front-loaded with action and parameter, then lists returned fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one param and no output schema, description fully explains purpose, input, and output. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter video_id is well-described with example and extraction hint from URLs. Schema coverage is 100%, and description adds value with usage context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool gets metadata for a YouTube video by ID, listing specific fields returned. Distinct from sibling tools like search_youtube.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: 'when the user has a specific video ID or URL and wants details.' Implicitly excludes search scenarios, but no direct mention of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_amazonAInspect

Search Amazon and return product listings as JSON. Each result includes title, ASIN, price, rating, review count, and image URL. Use when the user wants to find products on Amazon or compare prices.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesProduct search query, e.g. 'wireless noise cancelling headphones'.
domainNoAmazon domain suffix, e.g. 'com' (US), 'co.uk' (UK), 'de' (Germany), 'co.jp' (Japan).com
sort_byNoSort order for results.featured
start_pageNoStarting page number.
min_priceNoMinimum price filter in the domain's local currency.
max_priceNoMaximum price filter in the domain's local currency.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It mentions returning JSON but does not address side effects, authentication needs, rate limits, or data freshness. The read-only nature is implied but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The first sentence front-loads purpose and output; the second provides usage guidance. Highly concise and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains return fields but lacks details on pagination (start_page), sort behavior, domain handling, or error scenarios. For a search tool with 6 parameters and no output schema, more completeness is needed, but the basics are covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds no additional parameter semantics beyond what the schema already provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Search Amazon', the resource 'Amazon', and the output format 'JSON' with specific fields. It distinguishes from sibling tools like search_google and search_walmart by specifying Amazon and product listings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use when the user wants to find products on Amazon or compare prices,' providing clear usage context. It does not mention when not to use or list alternatives, but the context is sufficient for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_googleAInspect

Search Google and return structured results as JSON. Each result includes title, URL, and snippet. Also returns top stories, knowledge graph, local results, news, images, and related searches depending on search type. Use when the user asks to search the web, find current information, or look something up online. Returns 1 credit (light) or 2 credits (full).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query.
search_typeNoType of search. Use 'news' for recent articles, 'maps' for local results, 'images' for image results.classic
country_codeNoISO 3166-1 alpha-2 country code, e.g. 'us', 'gb', 'fr'.us
languageNoLanguage code, e.g. 'en', 'fr', 'de'.en
pageNoPage number, 1-indexed.
deviceNoDevice type for results.desktop
light_requestNotrue = 1 credit (fewer results). false = 2 credits (full results). Use false only when the user needs comprehensive results.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses return format (JSON with title, URL, snippet), additional result types depending on search type, and credit cost (light vs full). No annotations provided, but description covers key behavioral aspects without contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with purpose, then output details, then usage guidance. Every sentence adds value, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a search tool: covers what it does, output structure, parameter semantics (via schema), usage context, and cost. No output schema, but description adequately describes returned data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage, but description adds context on credit cost for light_request and explains result types (top stories, knowledge graph) that depend on search_type, adding value beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Search Google' and mentions returning structured results as JSON, clearly distinguishing it from sibling tools that search specific platforms like Amazon or Reddit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance: 'Use when the user asks to search the web, find current information, or look something up online.' Does not explicitly list exclusions, but the sibling context implies when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_redditAInspect

Search Reddit posts across all of Reddit as JSON. Each post includes title, URL, subreddit, author, timestamp, and NSFW flag. Use data.nextCursor as the cursor parameter for the next page; stop when nextCursor is null. Slower than other platforms (5-15 seconds).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (1-500 chars).
sortNoSort order. 'relevance' (default), 'hot', 'top', 'new', or 'comments'.relevance
cursorNoPagination token. Use data.nextCursor from previous response for next page.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that results are returned as JSON with specific fields, mentions pagination behavior (cursor-based), and notes slowness. It does not mention rate limits, authentication, or error handling, but for a search tool of this type, the disclosed behaviors are sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with purpose, includes key output details and pagination instructions. No superfluous information. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 3 parameters, no output schema. The description covers the output format (fields), pagination mechanism, and performance caveat. It lacks error scenarios or authentication requirements, but given the tool's simplicity, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds the detail that cursor comes from 'data.nextCursor' and that stop condition is null, which is already in the schema's cursor description. It also describes output fields, not input parameters. Therefore, minimal added value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and the resource 'Reddit posts across all of Reddit' with output format 'as JSON'. It lists included fields (title, URL, subreddit, author, timestamp, NSFW flag), distinguishing it from siblings like search_google or search_amazon which have different scopes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains pagination: 'Use data.nextCursor as the cursor parameter for the next page; stop when nextCursor is null.' It also notes that the tool is 'Slower than other platforms (5-15 seconds)', which sets expectations. However, it does not explicitly state when to prefer this tool over alternatives or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tiktok_usersAInspect

Search TikTok users by keyword as JSON. Each result includes user ID, username, display name, sec_uid, follower count, and bio. Use data.cursor for next page; stop when data.has_more is 0.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesSearch query.
cursorNoPagination cursor. Use data.cursor from previous response for next page.0
countNoNumber of results per page (1-30).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the output structure (JSON with specific fields) and pagination behavior (using data.cursor and data.has_more), which are important behavioral traits. It does not cover error conditions or rate limits, but the pagination detail adds significant value beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences, front-loading the main action and result format. Every sentence serves a purpose: stating the action and output, and providing pagination instructions. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing output fields and explaining pagination. The schema covers parameters well. It lacks error handling or fallback behavior, but for a search tool with siblings covering other platforms and TikTok-specific queries, the description is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters. The description adds value by explaining how to use the cursor parameter for pagination, but does not add meaning for keyword or count beyond what the schema provides. Baseline 3 is appropriate given high schema coverage and the additional cursor context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and the resource 'TikTok users', specifies the output format (JSON) and key fields included in each result. This distinguishes it from sibling tools like search_tiktok_videos which search videos, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for using the tool (searching users by keyword) and includes pagination instructions, but does not explicitly advise when not to use it or mention alternative tools. However, sibling tool names like get_tiktok_profile and search_tiktok_videos make the differentiation fairly obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tiktok_videosAInspect

Search TikTok videos by keyword as JSON. Each result includes video ID, caption, author, music, stats, and video URLs. Supports sorting by relevance or likes, and filtering by publish time. Use data.cursor for next page; stop when data.has_more is 0.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesSearch query.
cursorNoPagination cursor. Use data.cursor from previous response for next page.0
countNoNumber of results per page (1-30).
sort_typeNoSort order. '0' = relevance, '1' = most likes.0
publish_timeNoTime filter. '0'=all time, '1'=last day, '7'=week, '30'=month, '90'=3 months, '180'=6 months.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses pagination behavior (cursor, has_more), sorting/filtering support, and that output is JSON with specific fields. No annotations present; description carries burden well. Lacks mention of authentication or rate limits, but these are common for search tools.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, then core features, then pagination detail. Highly efficient, no redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key behaviors: output format, result fields, sorting, filtering, pagination. Lacks error handling or rate limit info, but for a search tool with no output schema, it is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 5 parameters have descriptions in schema (100% coverage). Description adds value by explaining pagination flow ('Use data.cursor...') and summarizing result contents beyond schema. Baseline 3, plus extra informativeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Search', resource 'TikTok videos', and specifies output format 'as JSON' with result fields. Distinguishes from siblings like 'get_tiktok_video' (single video) and 'search_tiktok_users' (users).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to use (searching videos by keyword) and pagination instructions, but does not explicitly mention when not to use or compare to alternative sibling tools like 'get_tiktok_hashtag_videos'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_walmartAInspect

Search Walmart and return product listings as JSON. Each result includes title, product ID, price, rating, and image URL. Use when the user wants to find products on Walmart or compare prices with Amazon.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesProduct search query, e.g. 'air fryer 6 quart'.
sort_byNoSort order for results.best_match
min_priceNoMinimum price filter in USD.
max_priceNoMaximum price filter in USD.
fulfillment_speedNoDelivery speed filter.anytime

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes return format (JSON with specific fields) and implies read-only behavior. No annotations provided, so description carries the burden. Could mention pagination or result limits, but overall adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-loaded with purpose and usage. No unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core functionality and usage context. With 5 parameters and no output schema, could benefit from a brief note on sorting/filtering, but still complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in the schema. Description does not add additional meaning beyond the schema, which is acceptable per baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action 'Search Walmart' and resource 'product listings as JSON'. Distinguishes from sibling tools like search_amazon by mentioning price comparison with Amazon.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage: 'Use when the user wants to find products on Walmart or compare prices with Amazon.' This guides the agent on when to invoke this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_youtubeAInspect

Search YouTube and return video results as JSON. Each result includes video ID, title, channel, duration, view count, and upload date. Use when the user asks to find YouTube videos on a topic.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYesYouTube search query.
sort_byNoSort order. Use 'date' for most recent, 'view_count' for most watched.relevance
typeNoResult type filter.video
upload_dateNoFilter by upload date. Omit for all time.
durationNoFilter by duration. short=<4min, medium=4-20min, long=>20min.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden. It discloses that results include specific fields (video ID, title, channel, etc.), but does not mention any behavioral traits like rate limits, authentication, or error handling. Adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: the first states purpose and output, the second provides usage guidance. No redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description is fairly complete. It explains the output format and when to use. However, it implies only video results yet the 'type' parameter allows channels and playlists, which is a slight inconsistency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description does not add significant meaning beyond what the schema already says (e.g., sort_by options, type filter, duration). The description restates output fields but does not clarify parameter nuances further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and resource 'YouTube', and specifies that it returns JSON with video details (ID, title, channel, etc.). This differentiates it from sibling tools like search_google or search_tiktok_videos.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit guidance: 'Use when the user asks to find YouTube videos on a topic.' While it does not mention when not to use or provide alternatives, this is clear enough for an AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 21 tool updatesv0.1.1
    • First observedget_amazon_product
    • First observedget_reddit_post
    • First observedget_tiktok_comment_replies
    • First observedget_tiktok_hashtag
    • First observedget_tiktok_hashtag_videos
    • First observedget_tiktok_profile
    • First observedget_tiktok_user_followers
    • First observedget_tiktok_user_followings
    • First observedget_tiktok_user_posts
    • First observedget_tiktok_video
    • First observedget_tiktok_video_comments
    • First observedget_usage
    • First observedget_walmart_product
    • First observedget_youtube_metadata
    • First observedsearch_amazon
    • First observedsearch_google
    • First observedsearch_reddit
    • First observedsearch_tiktok_users
    • First observedsearch_tiktok_videos
    • First observedsearch_walmart
    • First observedsearch_youtube

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct platform and action (search vs. get details). Within each platform, tools are clearly differentiated by entity (e.g., video, comments, profile). There is no overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case: search_<platform> or get_<platform>_<entity>. Even get_usage aligns with this pattern. No mixed conventions.

Tool Count4/5

21 tools is on the higher end but appropriate given the coverage of multiple platforms (Amazon, Reddit, TikTok, Walmart, YouTube, Google). Each tool serves a distinct purpose, and the number is reasonable for the scope.

Completeness4/5

The tool set covers core operations for each platform: search and get details. TikTok has extensive coverage (profile, posts, follows, comments, etc.). Minor gaps exist (e.g., no Reddit user profile, no Amazon reviews), but the core workflows are well-supported.

Maintenance

ActivityNo data
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A general-purpose MCP server providing web search, persistent memory storage, and secure code execution capabilities. It enables AI agents to search the web, store and retrieve data, and run Python/JavaScript code in sandboxed environments.
    8
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides 13 internet platforms as MCP tools for AI agents, enabling read, search, and interaction with services like web, YouTube, Twitter, and Reddit via a production-grade MCP server.
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP tool server that gives any AI agent the ability to search, scrape, and analyze content across the internet.
    42
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/scavio-ai/scavio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server