# Scavio MCP Server ![GitHub Repo stars](https://img.shields.io/github/stars/scavio-ai/scavio-mcp?style=social) ![License](https://img.shields.io/github/license/scavio-ai/scavio-mcp) [Scavio](https://scavio.dev?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) is a unified [Web Search API](https://scavio.dev/docs/search-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) 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. 266 tools across 38 platforms plus Extract, map, crawl and batch, one API key. **The 22 platforms added in 0.13.0 are opt-in.** Registering all 266 tools puts 253KB of tool definitions — roughly 64k tokens — into every session before you type anything. So the default is the platform set 0.12.x already had, plus Extract: 142 tools, 112KB. Upgrading never removes a tool you were using. Everything else is one env var away: see [Choosing which tools load](#choosing-which-tools-load). ## Remote MCP Server Connect directly to Scavio's remote MCP server without any local installation: ``` https://mcp.scavio.dev/mcp ``` Two ways to authenticate: - **Sign in with OAuth, no key to copy.** Claude Desktop, claude.ai and Claude Code sign in to your Scavio account through the server. In Claude Desktop or claude.ai: Settings > Connectors > Add custom connector, name it Scavio, paste the URL, then Connect and Authorize. In Claude Code: `claude mcp add --transport http scavio https://mcp.scavio.dev/mcp`, then run `/mcp` and choose Authenticate. - **API key.** Pass it in the `x-api-key` header. Get your key at [scavio.dev](https://scavio.dev?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme). --- ## 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 ```bash 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.) ```json { "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](https://scavio.dev?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme). --- ## Install ### Claude Code Sign in with OAuth, then run `/mcp` inside Claude Code and choose Authenticate: ```bash claude mcp add --transport http scavio https://mcp.scavio.dev/mcp ``` Or pass an API key: ```bash claude mcp add --transport http scavio https://mcp.scavio.dev/mcp --header "x-api-key: YOUR_SCAVIO_API_KEY" ``` ### Claude Desktop No API key needed: Settings > Connectors > Add custom connector, name it Scavio, paste `https://mcp.scavio.dev/mcp`, then Connect and sign in to your Scavio account. The same steps work on claude.ai. Or run the server locally. Add to `claude_desktop_config.json` (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS, `%APPDATA%\Claude\claude_desktop_config.json` on Windows): ```json { "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](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=scavio&config=eyJ1cmwiOiJodHRwczovL21jcC5zY2F2aW8uZGV2L21jcCIsImhlYWRlcnMiOnsieC1hcGkta2V5IjoiWU9VUl9TQ0FWSU9fQVBJX0tFWSJ9fQ%3D%3D) Or add to `.cursor/mcp.json` in your project root or `~/.cursor/mcp.json` for global: ```json { "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`: ```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: ```json { "servers": { "scavio": { "type": "http", "url": "https://mcp.scavio.dev/mcp", "headers": { "x-api-key": "YOUR_SCAVIO_API_KEY" } } } } ``` ### ChatGPT 1. Go to [ChatGPT](https://chatgpt.com) > **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): ```json { "mcpServers": { "scavio": { "type": "http", "url": "https://mcp.scavio.dev/mcp", "headers": { "x-api-key": "YOUR_SCAVIO_API_KEY" } } } } ``` ### Zed Add to settings (`Cmd+,`): ```json { "assistant": { "mcp_servers": { "scavio": { "type": "http", "url": "https://mcp.scavio.dev/mcp", "headers": { "x-api-key": "YOUR_SCAVIO_API_KEY" } } } } } ``` ### Any MCP-Compatible Client ```json { "type": "http", "url": "https://mcp.scavio.dev/mcp", "headers": { "x-api-key": "YOUR_SCAVIO_API_KEY" } } ``` --- ## Choosing which tools load Scavio exposes 266 tools. Loading all of them costs 253KB of `tools/list` — roughly 64k 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)* or `default` | Every platform 0.12.x had, plus `extract` — **142 tools, 112KB** | | `all` | every platform — **266 tools, 253KB** | | `extract,sec,g2` | just those platforms — 18 tools, 21KB | | `default,zillow,metaads` | the default set plus two more — 148 tools, 120KB | | `default,chatgpt,gemini` | the default set plus ChatGPT and Gemini — 144 tools, 115KB | | `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`, `chatgpt`, `gemini`, `youtube`, `tiktok`, `instagram`, `reddit`, `x`, `linkedin`, `threads`, `kuaishou`, `amazon`, `walmart`, `ebay`, `target`, `homedepot`, `costco`, `mercadolibre`, `tiktok-shop`, `booking`, `airbnb`, `tripadvisor`, `yelp`, `zillow`, `redfin`, `realtor`, `rightmove`, `indeed`, `glassdoor`, `appstore`, `googleplay`, `g2`, `capterra`, `trustpilot`, `googleads`, `metaads`, `sec`, `companieshouse` ### Local (stdio) ```json { "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: ```json { "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. Those platforms keep gaining tools (Walmart grew from 2 to 7; TikTok, YouTube, Reddit and X gained 19 in 0.20.0; Extract gained map, crawl and batch in 0.21.0; Instagram gained 8 in 0.22.0; Google gained google_custom_search in 0.23.0), which is why the default count is now 142. 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](https://scavio.dev/docs/extract?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | Tool | Description | |------|-------------| | `extract_url` | Read any web page and return it as clean Markdown, plain text, or raw HTML | | `map_website` | List a site's page URLs from its sitemaps and start page, path-filtered, with `lastmod` when known | | `crawl_website` | Crawl a site from one URL and extract every same-site page; waits up to `wait_seconds` and returns results, or the job id | | `get_crawl_status` | A crawl's status, page counts, credits used and page results, paged by cursor; can wait for completion | | `cancel_crawl` | Stop a running crawl; nothing more is billed, results so far stay readable | | `batch_extract` | Extract a list of URLs in one job, results in input order; waits up to `wait_seconds` | | `get_batch_status` | A batch's status and results, paged by cursor; can wait for completion | | `cancel_batch` | Stop a running batch | Extract is tier-priced by the `mode` parameter, not flat: `normal` (the default) and `advanced` (renders JavaScript) cost 1 credit, `ultra` (for the hardest pages) 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. **Map, crawl and batch** (new in 0.21.0) are the multi-page operations: - **Pricing.** `map_website` costs 1 credit. Crawl and batch bill per *successful* page at Extract's price for the tier (normal 1, advanced 1, ultra 2); failed and skipped pages are free, and status and cancel calls are free. Credits are taken page by page, and a job stops cleanly with `stopped_reason: "insufficient_credits"` if the balance runs out. - **Plan limits** (max pages per crawl / active jobs / URLs per batch): Free 10 / 1 / 10, PAYG 100 / 1 / 50, Project 500 / 2 / 100, Bootstrap 2,000 / 3 / 500, Startup 5,000 / 5 / 1,000, Growth 10,000 / 10 / 1,000. Starting a job past the active-job limit returns a 429 that names the running jobs. - **Behaviour.** Robots.txt is always obeyed for map and crawl. A crawl stays on the start URL's site (subdomains optional) and visits pages under the start path first. Results are kept for 3 days; a job runs for at most 6 hours. - **Built for tool-call time limits.** MCP clients usually cancel a tool call after about 60 seconds, so a crawl is a job, not one long call. `crawl_website` / `batch_extract` start the job and wait up to `wait_seconds` (default 30, max 50): a small job comes back finished with its first page of results; a large one returns the job id (and `webhook_secret`, shown only once, if you set `webhook_url`). `get_crawl_status` / `get_batch_status` take the same `wait_seconds` to long-poll, and `cursor` to page. - **Output stays small.** Status calls return 10 results per call by default (`limit` up to 100) and clip each page's content to `max_content_chars` (default 4,000); clipped pages carry `content_clipped: true` next to the full `content_length`. `map_website` asks for 200 links when you set no `limit` (the API default is 1,000). Every response that has more to read carries a `_hint` naming the exact next call. Repeat a start call with the same `idempotency_key` and you get the original job back instead of a second one. ### [Google Search API](https://scavio.dev/docs/search-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | Tool | Description | |------|-------------| | `search_google` | Web search (v2) with organic results, ads, and AI Overview | | `google_custom_search` | Google results in the Custom Search JSON API format (`items[]`, `searchInformation`, `queries.nextPage`) for code ported from CSE | | `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 | ### [ChatGPT and Gemini](https://scavio.dev/docs/chatgpt-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | Tool | Description | |------|-------------| | `chatgpt_prompt` | Ask ChatGPT a prompt: the full Markdown answer, every cited page (title, publisher, date), the web searches it ran and the products it recommended | | `gemini_prompt` | Ask Google Gemini a prompt: the full Markdown answer, the URLs it cites and the products it recommended | For AI visibility and brand monitoring: ask what a buyer would ask ("best CRM for small agencies") and see whether a brand is recommended, which competitors are, and which pages the answer cites. Both tools return the same shape (`answer.markdown`, `sources[]`, `search_queries[]`, `shopping[]`), so comparing assistants needs one parser. Every call is a fresh answer and takes 10-40 seconds. ChatGPT costs 2 credits and Gemini 5 credits per answered prompt; failed prompts are free. Opt-in: add `chatgpt` and `gemini` to `SCAVIO_PLATFORMS` (e.g. `default,chatgpt,gemini`). Docs: [ChatGPT](https://scavio.dev/docs/chatgpt-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Gemini](https://scavio.dev/docs/gemini-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme). ### [YouTube Data API](https://scavio.dev/docs/youtube-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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 | | `get_youtube_community_post` | Get one community post: text, author, likes, images, comments cursor | | `get_youtube_community_post_comments` | Get comments on a community post with pagination | Credit cost varies: `get_youtube_transcript` costs 5, `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](https://scavio.dev/docs/amazon-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/walmart-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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 | | `get_walmart_stores` | Stores near a US ZIP or Canadian postal code, nearest first, with `store_id`, address, distance and hours | Walmart is priced by the request body, 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 every `domain`. Store targeting: pass `delivery_zip` and `store_id` together on `search_walmart` or `get_walmart_product` to get one store's assortment and availability. Take the `store_id` from `get_walmart_stores` on the same domain (walmart.com or walmart.ca). A store-targeted call costs 2 credits, takes 10-60 seconds, and echoes the store it used in `data.location`. `get_walmart_product` accepts `domain: "ca"` only together with a store pair. 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](https://scavio.dev/docs/tiktok-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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 | | `get_tiktok_trending_searches` | Search terms trending now (about 90, no region filter) | | `get_tiktok_trending_videos` | A sample of trending videos (about 6 per call) | | `get_tiktok_search_suggestions` | Search autocomplete suggestions for a keyword | | `get_tiktok_music` | Get a sound: artist, album, duration, videos using it, chart rank | | `get_tiktok_music_videos` | List videos that use a sound (about 14 per page) | | `search_tiktok_music` | Search sounds by keyword | | `get_tiktok_music_chart` | Top 50 or Viral 50 sound chart (global) | | `get_tiktok_user_similar` | Creators similar to a user (about 30 per page) | | `get_tiktok_user_playlists` | List a user's playlists (series) | | `get_tiktok_playlist_videos` | List the videos in a playlist | | `get_tiktok_user_live` | Is a user live now: room status, title, viewers | | `get_tiktok_user_region` | The region an account is registered in, plus sec_user_id | Every TikTok tool costs 1 credit. The trending, sound, playlist, similar-creator, live and region tools return TikTok's own payload shape, trimmed for context: large numeric ids can lose precision as JSON numbers, so use the string forms (`id_str`, `sec_uid`, `sec_user_id`). `get_tiktok_trending_videos` returns about 6 videos per call whatever `count` says, and `get_tiktok_music_videos` ignores `count` (about 14 per page). Search suggestions can be empty for long-tail keywords and still bill. An unknown username is a billed 404 on `get_tiktok_user_live` and an unbilled 404 on `get_tiktok_user_region`. ### [Instagram API](https://scavio.dev/docs/instagram-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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 | | `get_instagram_user_highlights` | List a user's story highlights (id, title, cover, item count) | | `get_instagram_highlight_stories` | Get every story in one highlight, with media URLs | | `search_instagram_reels` | Search Reels by keyword with pagination | | `search_instagram_music` | Search audio tracks by song or artist | | `get_instagram_music_posts` | List the Reels that use an audio track, plus its total reel count | | `search_instagram_locations` | Search places by name (id, address, coordinates) | | `get_instagram_user_similar` | Get accounts similar to a creator | | `get_instagram_post_likers` | Get accounts that liked a post, plus its total like count | Instagram is priced per endpoint: `get_instagram_profile`, `get_instagram_user_reels`, `get_instagram_user_tagged` and `get_instagram_music_posts` cost 1 credit (reels and tagged cost 2 the first time a username is looked up), and the other tools cost 2. `search_instagram_users` and `search_instagram_hashtags` cost 8 when you pass a `cursor` for the next page. Any request can cost up to 10 when it needs extra work; `credits_used` in the response is always the exact charge. ### [Reddit API](https://scavio.dev/docs/reddit-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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 | | `search_reddit_comments` | Search comments by keyword, with the post and subreddit each was left on | | `search_reddit_subreddits` | Find subreddits by keyword, with subscriber counts | 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 (`search_reddit_comments` does sort: relevance, hot, top or new) - 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](https://scavio.dev/docs/x-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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 | | `search_x_communities` | Find X Communities by keyword, with member counts | | `get_x_community` | Get a Community's description, member count, topic and rules | | `get_x_community_tweets` | List a Community's posts by relevance or recency | `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](https://scavio.dev/docs/linkedin-person?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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. Member contact info, the company employee directory, per-company job listings, people search and post search are no longer available, 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](https://scavio.dev/docs/tiktok-shop-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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) - 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 TikTok Shop 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](https://scavio.dev/docs/threads-profile?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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 costs a second lookup. ### [Kuaishou (China)](https://scavio.dev/docs/kuaishou-profile?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/ebay-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/target-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/home-depot-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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. ### [Costco](https://scavio.dev/docs/costco-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | Tool | Description | |------|-------------| | `search_costco` | Search by keyword or item number: online and original price, rating, member-only and stock flags, promotions, facets | | `get_costco_category` | Products in a category, same filters and shape as search | | `get_costco_categories` | Department list, or the full subcategory tree under one department | | `get_costco_product` | Full detail for up to 20 items: description, features, specs, variants, purchase limits, delivery fee, promotion dates | | `get_costco_prices` | Online vs in-warehouse price at up to 10 warehouses: discount, final price, promotion dates, per-member limits, price code | | `get_costco_availability` | In-warehouse stock status for one item at up to 10 warehouses, plus pickup and same-day delivery | | `get_costco_reviews` | Reviews with rating distribution and recommend count; sort, star filter, up to 100 per page | | `get_costco_warehouses` | Warehouses near a US zip or coordinates: `warehouse_id`, address, hours, departments, services, gas prices | | `get_costco_gas_prices` | Regular, premium and diesel prices at Costco gas stations near a location or at given warehouses | | `get_costco_coupons` | The current member coupon book: item number, amount off, final price, scope, limits, valid dates | | `get_costco_deals` | Deal feeds: new, while supplies last, treasure hunt, member favorites, online only, on sale | | `get_costco_clearance` | Clearance and manager-markdown items at one warehouse, decoded from the shelf price ending | | `get_costco_search_suggestions` | Search suggestions for a partial query, plus matching warehouses | 1 credit per call, except the multi-warehouse tools: `get_costco_prices` makes one lookup per two locations (online counts as one) and `get_costco_availability` one per warehouse, billed 1 credit per 5 lookups, so 10 warehouses cost 2 credits. `get_costco_warehouses` and `get_costco_gas_prices` cost 2 for `country: "ca"`; gas by `warehouse_ids` is 1 credit per 5 warehouses (2 per warehouse on ca). `search_costco`, `get_costco_category` and `get_costco_deals` take `warehouse_id` to add that warehouse's in-store price, stock and price code to every result. Get the id from `get_costco_warehouses`. `country` is `us` (default) or `ca` everywhere except `get_costco_coupons` (US only); `search_costco`, `get_costco_product` and `get_costco_warehouses` also accept `uk`, `au`, `mx`, `jp`, `kr` and `tw` for keyword, sort and paging only. Price codes in `get_costco_clearance` are the member-community decode (.97 clearance, .00/.88 manager markdown; .49/.79/.89 special buy on request), not something Costco publishes, and only items Costco lists online are covered. `get_costco_coupons` returns the first 50 offers of a ~200-offer book by default; pass `limit` for more. ### [Mercado Libre](https://scavio.dev/docs/mercadolibre-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) Mercado Libre (and Mercado Livre in Brazil) product data for Mexico, Brazil, Argentina and Colombia: listings, prices, sellers, reviews, buyer questions and category best sellers, with no OAuth app to register. | Tool | Description | |------|-------------| | `search_mercadolibre` | Listings by keyword or seller in mx, br, ar or co: price, list price, discount, installments, seller where shown, rating, units sold, free shipping and Full flags, sponsored flag; filters for condition, price range, minimum discount, free shipping, Full, official stores and interest-free installments; sort by relevance or price; about 48 per page | | `get_mercadolibre_product` | One product or listing by URL, product_id or item_id: price, promotions, the buy-box seller with reputation, stock, shipping, star distribution, variations, specs, description, pictures, category | | `get_mercadolibre_reviews` | 15 reviews per page with rating, text, original text when translated, date, likes, reviewer country and photos; filter by star rating | | `get_mercadolibre_questions` | Buyer questions on a listing with the seller's answers and answer dates; page with `next_offset` | | `get_mercadolibre_best_sellers` | The ranked top 20 in a category (mx, ar, co; not Brazil) | 2 credits per call; `get_mercadolibre_reviews` is 1. Search serves up to 42 pages (about 2,000 results) per query, so slice by price range, condition or seller to reach more, and sorts by relevance or price only. Units sold are lower bounds ("at least 500"), not exact counts. Seller name appears on a search row only where Mercado Libre shows it; `get_mercadolibre_product` returns the buy-box seller, and the list of every seller on a product is not available. Mercado Libre may narrow a query on its own (Brazil and Argentina can apply "new"); `auto_applied_filters` lists what it applied. Product, reviews and questions take no `country`: the id prefix (MLM, MLB, MLA, MCO) or URL sets it. Chile is not supported. A zero-result search is an empty, billed page; an unknown product, item or seller nickname, or a listing with no questions, is a billed 404 that says so. ### [Booking.com](https://scavio.dev/docs/booking-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/airbnb-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/tripadvisor-locations?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/yelp-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/zillow-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/redfin-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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. ### [Realtor.com](https://scavio.dev/docs/realtor-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | Tool | Description | |------|-------------| | `search_realtor` | US listings for sale, pending, for rent or sold by location, radius or agent: price, beds, baths, sqft, lot, year built, garage, HOA, type, listed/sold/price-cut within N days, keywords in the listing text (all must match), new construction, foreclosure, open house; up to 200 per call | | `get_realtor_property` | One property by id or URL: price and tax history, three value estimates with history and forecast, schools, flood/wildfire/noise risk, listing agent and office | | `get_realtor_locations` | Autocomplete cities, counties, ZIPs, neighborhoods, schools and addresses, with the slug_id for market and the property_id for an address | | `get_realtor_market` | Market stats for a city, county or ZIP: median list, sold and rent price, price per sqft, days on market, year-over-year and month-over-month change, by property type | | `search_realtor_agents` | Agents by city, ZIP or name: rating, reviews, active listings and price range, homes sold last year, broker and office | | `get_realtor_agent` | One agent's full profile with every review and four sub-ratings | 1 credit per call. `search_realtor` returns up to 200 listings per page (default 50) and serves the first 10,000 results of a search (`page` x `page_size` <= 10,000); slice a big area by price band, property type or radius to reach more. Sold prices are null in US non-disclosure states (Texas, Utah, Wyoming and about nine others), while sold dates still come back. An unknown property or agent id is a billed 404. ### [Rightmove](https://scavio.dev/docs/rightmove-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | Tool | Description | |------|-------------| | `get_rightmove_locations` | UK place, outcode, postcode or station to the `location_id` search and agents take | | `search_rightmove` | UK property for sale or to rent: price (GBP), beds, baths, type, must-haves, exclusions, tenure, added within days, under offer, radius, furnishing, let type; 24-25 per page | | `get_rightmove_property` | One listing in full: tenure and lease years, council tax band, service charge, ground rent, EPC, rooms, floorplans, flood risk, broadband, stations, agent | | `get_rightmove_sold` | Sold prices for a town, outcode or postcode: 25 addresses per page, each with its sale history since 1995, plus the area's average price over the last year | | `get_rightmove_sold_property` | One sold address: every sale with price, date, tenure, new-build flag and percent change, plus the archived last listing | | `search_rightmove_agents` | Estate and letting agent branches for a location: phones, address, brand and company ids, profile URL | | `get_rightmove_agent` | One branch by id or URL: address, phones, affiliations, listing counts and a teaser | 1 credit per call. Rightmove search has no keyword filter: match on the returned `summary` and `key_features` instead. Paging caps per search: 42 pages for `search_rightmove` (about 1,000 listings), 40 for `get_rightmove_sold`, 50 for `search_rightmove_agents`; narrow by price band, type or a smaller area to reach more. Sold prices cover England and Wales only (not Scotland or Northern Ireland). Live listings carry no price history, so use `get_rightmove_sold_property` for an address's past sales. A removed listing or an unknown id is a billed 404. ### [Indeed](https://scavio.dev/docs/indeed-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/glassdoor-companies?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/app-store-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/google-play-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/g2-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/capterra-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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. ### [Trustpilot](https://scavio.dev/docs/trustpilot-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | Tool | Description | |------|-------------| | `search_trustpilot` | Search businesses by keyword in one country: domain, TrustScore, stars, review count, categories, website, published email/phone/address; up to 100 per page | | `get_trustpilot_business` | Full profile by domain or URL: rating distribution, review count per language, claimed and verification status, reply rate and days to reply, consumer alerts, AI summary and topics, similar businesses, 20 newest reviews | | `get_trustpilot_reviews` | A page of 20 reviews filtered by stars, language, date range, topics, text, verified-only and with-replies; sorted by recency or relevance | | `get_trustpilot_categories` | The category tree (22 top-level, 189 subcategories), or categories matching a name | | `get_trustpilot_category` | Businesses ranked in a category by country: sort, minimum star rating (TrustScore rounded to stars, so 4 includes 3.8+), claimed profiles only; 20 per page | | `get_trustpilot_review` | One review by its 24-character id, with the business it is about | 2 credits per call. `get_trustpilot_reviews` serves 10 pages of 20, so 200 reviews per filter combination; to read more, slice into separate sets (each `stars` value, each `language`, each `date_range`) rather than paging further. `total_filtered` with a `date_range` doubles as review velocity. Email and phone appear only when the business published them; the AI summary and topics only when Trustpilot has them for the chosen `language` (default `en`). No TrustScore history. An unknown domain, category or review id is a billed 404 that names what was not found. ### [Google Ads Transparency](https://scavio.dev/docs/google-ads-advertisers?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/meta-ads-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/sec-edgar-lookup?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev/docs/companies-house-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) | 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](https://scavio.dev?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) is a unified [search API for AI agents](https://scavio.dev/search-api-for-ai-agents?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) and a data API for developers. One key, structured JSON: - [Google Search API](https://scavio.dev/google-search-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) — SERP results, news, images, maps, and knowledge graph - [Extract](https://scavio.dev/docs/extract?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) — read any URL as Markdown, plain text or raw HTML - [Amazon Product API](https://scavio.dev/amazon-product-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) and [Walmart Product API](https://scavio.dev/walmart-product-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) — product search and details, alongside [eBay](https://scavio.dev/docs/ebay-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Target](https://scavio.dev/docs/target-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Home Depot](https://scavio.dev/docs/home-depot-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) and [Costco](https://scavio.dev/costco-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) (per-warehouse prices, stock, gas prices, coupon book), and [Mercado Libre](https://scavio.dev/mercadolibre-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) (Mexico, Brazil, Argentina and Colombia listings, sellers, reviews, questions and best sellers) - [TikTok API](https://scavio.dev/tiktok-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Instagram API](https://scavio.dev/instagram-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Reddit API](https://scavio.dev/reddit-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [X API](https://scavio.dev/x-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [LinkedIn API](https://scavio.dev/linkedin-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), and [YouTube API](https://scavio.dev/youtube-transcript-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) — social and video data - Travel and local — [Booking.com](https://scavio.dev/docs/booking-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Airbnb](https://scavio.dev/docs/airbnb-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Tripadvisor](https://scavio.dev/docs/tripadvisor-locations?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Yelp](https://scavio.dev/docs/yelp-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) - Real estate — [Zillow](https://scavio.dev/docs/zillow-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Redfin](https://scavio.dev/docs/redfin-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Realtor.com](https://scavio.dev/realtor-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) (listings, sold comps, market stats, agents), [Rightmove](https://scavio.dev/rightmove-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) (UK listings, England and Wales sold prices since 1995, agents) - Jobs and employer data — [Indeed](https://scavio.dev/docs/indeed-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Glassdoor](https://scavio.dev/docs/glassdoor-companies?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) - Apps, software reviews and ad libraries — [App Store](https://scavio.dev/docs/app-store-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Google Play](https://scavio.dev/docs/google-play-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [G2](https://scavio.dev/docs/g2-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Capterra](https://scavio.dev/docs/capterra-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Trustpilot](https://scavio.dev/trustpilot-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) (business profiles, filtered reviews, category rankings), [Google Ads Transparency](https://scavio.dev/docs/google-ads-advertisers?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Meta Ad Library](https://scavio.dev/docs/meta-ads-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) - Company filings — [SEC EDGAR](https://scavio.dev/docs/sec-edgar-lookup?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme), [Companies House](https://scavio.dev/docs/companies-house-search?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) Teams use it as a [SerpAPI alternative](https://scavio.dev/alternatives/serpapi?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) with structured multi-platform data — see [Tavily vs Scavio](https://scavio.dev/compare/tavily/vs-scavio?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) for a head-to-head comparison. Get a free [Search API](https://scavio.dev/docs/search-api?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme) key at [scavio.dev](https://scavio.dev?utm_source=npm-mcp&utm_medium=package&utm_campaign=readme). --- ## License [MIT](LICENSE)