
Scavio
@scavio-ai
About Scavio
MCP server connecting AI agents to Google, YouTube, Amazon, Walmart, TikTok, and Reddit. 21 tools for web search, product lookup, video discovery, and social media data.



Config
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"scavio": {
"type": "http",
"url": "https://mcp.scavio.dev/mcp",
"headers": {
"x-api-key": "SCAVIO_API_KEY"
}
}
}
}Tools
106Read any web page. Returns the page as clean Markdown, plain text, or raw HTML. This is the general read-a-page primitive: point it at any http(s) URL - an article, a docs page, a product page, a changelog, a competitor's pricing page - and get the body back as text you can reason over. Returns { url, format, mode, content, content_length }. Formats: 'markdown' (readability extraction, the default and the best choice for reading), 'text' (that Markdown flattened to plain prose), 'html' (the raw unprocessed page). COST IS TIER-PRICED BY THE mode PARAMETER, NOT FLAT: mode='normal' (plain fetch) costs 1 credit, mode='advanced' (full JavaScript rendering, for React/Vue pages that are empty without it) costs 1 credit, mode='ultra' (residential proxy, for hard bot walls and heavy protection) costs 2 credits. Start at 'normal' and escalate only when the content comes back empty or blocked. Billing happens ONLY on a successful extraction - a dead link, a bot wall or a timeout costs nothing. http(s) URLs only; a bare host like 'example.com' is upgraded to https, and loopback, private, link-local and cloud-metadata hosts are rejected with a 400. Returns the whole page in one call - there is no pagination.
Search Google (v2) and return structured SERP results as JSON: organic results (title, URL, snippet), ads, and the AI Overview when Google shows one. Use when the user asks to search the web, find current information, or look something up online. Costs 1 credit.
Get a Google AI Mode conversational answer with references as JSON. Use when the user wants a synthesized, AI-generated answer to a question with cited sources rather than a plain list of links. Costs 1 credit.
Search Google Maps for local businesses as JSON. Each result includes name, address, rating, review count, place_id, data_cid, and coordinates. Use when the user wants to find places, businesses, or points of interest. Costs 1 credit.
Get Google Maps place details as JSON: name, address, phone, hours, rating, categories, and more. Provide one of place_id or data_cid. Costs 1 credit.
Get Google Maps reviews for a place as JSON. Each review includes author, rating, text, and timestamp. Provide one of data_id or place_id. Use next_page_token for pagination. Costs 1 credit.
Search Google Shopping product listings as JSON. Each result includes title, price, source/store, rating, and product identifiers. Use when the user wants to compare products and prices across retailers. Costs 1 credit.
Get Google Shopping product detail and sellers as JSON. Pass catalog_id together with query for full data. Costs 1 credit.
Get more sellers for a Google Shopping product as JSON (paginate google_shopping_product). Requires catalog_id and next_page_token. Costs 1 credit.
Search Google Flights as JSON: itineraries with prices, durations, airlines, and stops. Requires departure_id, arrival_id, and outbound_date; set return_date when type=1 (round trip). Costs 1 credit.
Search Google Hotels as JSON: properties with prices, ratings, and detail_tokens. Requires query, check_in_date, and check_out_date. Pass a returned detail_token to google_hotels_detail. Costs 1 credit.
Get Google Hotels property details as JSON from a hotels listing detail_token. Requires detail_token, check_in_date, and check_out_date. Costs 1 credit.
Get Google News results as JSON. Provide a query, or browse via a topic/story/publication token. Costs 1 credit.
Get Google Trends interest data as JSON. Requires a query (comma-separate terms to compare). Choose the dataset via data_type (interest over time, geo map, related queries/topics). Costs 1 credit.
Get Google Trending Now searches for a country as JSON. Requires geo (country code). Costs 1 credit.
Search YouTube and return video results as JSON. Each result includes video ID, title, channel, duration, view count, and upload date; the response also groups shorts, channels, and playlists. Use data.next_cursor as the next cursor while has_more is true. Costs 2 credits. Use when the user asks to find YouTube videos on a topic.
Search YouTube Shorts and return short-form video results as JSON. Each result includes video ID, title, URL, thumbnail, view count, and upload time. Use data.next_cursor as the next cursor while has_more is true. Costs 2 credits.
Get YouTube search autocomplete suggestions for a partial query as JSON. Returns a list of suggested search strings in data.suggestions. Use to expand a seed keyword or surface what people search for. Costs 1 credit.
Get full details for a YouTube video as JSON. Returns title, author, channel, publish date, description, length in seconds, view count, keywords, thumbnail, playability status, chapters, and available captions. Accepts a video ID or a watch URL. Use when the user has a specific video and wants details about it. Costs 1 credit.
Deprecated alias of get_youtube_video, kept for backward compatibility. Get details for a YouTube video by its video ID or watch URL. Prefer get_youtube_video for new integrations. Costs 1 credit.
Get comments on a YouTube video as JSON. Each comment includes its ID, text, like count, reply count, publish time, a reply_cursor for fetching its replies, and author details. Accepts a video ID. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Get replies to a specific YouTube comment as JSON. Requires the video ID and the reply_cursor from a comment in the get_youtube_comments response. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Get the transcript of a YouTube video as JSON. Returns the caption text for the requested language. Use format 'text' for a plain transcript or 'srt' for timed subtitles. Accepts a video ID. Costs 8 credits. Use when the user wants to read, summarize, or analyze a video's content.
Get videos related to a YouTube video as JSON. Each result includes video ID, title, URL, channel, thumbnail, view count, publish time, and length, under data.results with data.total_count. Accepts a video ID. Use to discover similar or recommended videos. This endpoint returns no next_cursor and no has_more, so treat the response as a single page. Costs 1 credit.
Search YouTube channels by keyword as JSON. Each result includes channel ID, name, handle, URL, thumbnail, subscriber count, and description. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Get a YouTube channel's profile as JSON. Returns channel ID, title, description, handle, URL, subscriber/video/view counts, country, creation date, verified flag, avatar, banner, and external links. Accepts a channel ID, an @handle, or a channel URL. Costs 1 credit.
List a YouTube channel's videos as JSON. Each result includes video ID, title, URL, thumbnail, duration, view count, publish time, and live flag. Accepts a channel ID, an @handle, or a channel URL. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
List a YouTube channel's Shorts as JSON. Each result includes video ID, title, URL and thumbnail only - there is no view count, because the upstream field for Shorts carries promo text rather than a count. Accepts a channel ID, an @handle, or a channel URL. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
List a YouTube channel's community posts as JSON, under data.posts (the only YouTube endpoint whose list key is not results). Each post includes its ID, URL, text, author, publish time, vote count, comment count, attached images, and attachment type. Accepts a channel ID, an @handle, or a channel URL. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Resolve a YouTube @handle or channel URL to its canonical channel ID and URL, returned as JSON. The other channel tools accept a handle or URL directly, so this is only needed when you want the id itself. Costs 1 credit.
Get direct media stream URLs for a YouTube video as JSON. Returns progressive and adaptive formats with itag, URL, mime type, bitrate, resolution, quality label, fps, and audio details, plus available qualities and URL expiry. Accepts a video ID. Costs 3 credits.
Search an Amazon marketplace and return the product grid as JSON: query, page, total_results, count, products, filters and related_searches. Each product has asin, title, url, image, price (number) with currency, rating, reviews_count, is_sponsored, position, badge, sales_volume and delivery { is_free, date, fastest_date }. Use it to find products, compare prices or collect ASINs to pass to get_amazon_product and get_amazon_offers. There is NO sort option. The marketplace ignores every sort value and always returns its default relevance ranking, so results are unordered with respect to price, rating and date. To answer "the cheapest" or "the best rated", fetch the results and sort them yourself; do not expect the API to do it. There is also no category, merchant or price-range filter - filters[] carries the marketplace's own refinement URLs for reference only, and cannot be sent back as a param. Two fields to read carefully: reviews_count is derived from Amazon's rounded display value, so anything above 1000 is approximate (a page showing "1.3K" returns 1300); position is Amazon's grid slot index including ad and carousel slots, so it starts above 1 and has gaps. Costs 1 credit per page.
Get the full product page for an Amazon ASIN as JSON: title, brand, url, description, features, price, list_price, currency, rating, reviews_count, is_prime, has_buy_box, availability (free text such as "In Stock"), max_quantity, sold_by, other_sellers_count, sales_volume, climate_pledge_friendly, image, images, videos, best_sellers_rank, categories, specifications, variants and shipping { is_prime, zipcode, options }. Use it when you have a specific ASIN or Amazon product URL and need details, pricing or specs. Caveats worth knowing: price is the current buy-box price and other_sellers_count only counts the rest - call get_amazon_offers for the actual competing sellers and their prices. reviews[] carries review metadata only (id, author, date, verified_purchase); there is no review text and no per-review rating anywhere in the response. availability is marketplace- and language-specific free text, so match on the ASIN's own wording rather than parsing it for stock status. Costs 1 credit.
List every seller currently offering an Amazon ASIN, as JSON: asin, title, image, rating, reviews_count, note, count, total_offers, has_more_pages, page and offers. Each offer has condition (New, Used - Like New, ...), seller_id, seller_name, ships_from, is_fulfilled_by_amazon, is_buy_box_winner, is_prime, is_national_prime, price with currency, list_price, shipping_price, discount_percentage, discount_amount, quantity, delivery { min_hours, max_hours, date, is_free } and prime_delivery { date, order_deadline }. Use it to find the cheapest seller for a known ASIN, to check who holds the buy box, to compare new against used pricing, or to see whether a third-party seller undercuts Amazon. This returns the first page of the offer list only - has_more_pages may be true, and there is no way to request the next page. An ASIN sold only by Amazon returns an empty offers list plus an explanatory note, which is a normal answer, not an error. Costs 1 credit.
List the Amazon marketplaces the API supports, as JSON: countries (the two-letter codes to pass as the country param on search_amazon, get_amazon_product and get_amazon_offers) and domains (the matching amazon.* suffixes, for display only - the API does not take a domain). Two rows break the pattern a model usually assumes: amazon.com is 'us' and amazon.co.uk is 'gb'. The response also carries languages and currencies, which are always empty arrays because language and currency are not request params anywhere. Takes no arguments, costs no credits.
Search Walmart.com and return structured product rows as JSON. Returns data.products, each with id (usItemId), title, url, image, price, currency, rating, rating_count, brand, seller_name, seller_catalog_id, sponsored, out_of_stock, availability_status, fulfillment and variants — plus products_count, page, max_page, has_more_pages, total_results (Walmart's own headline count, larger than what is returned), location, breadcrumb and related_searches. Page through results with the page parameter while data.has_more_pages is true. Costs 1 credit on walmart.com (default) and walmart.ca, and 2 credits on walmart.com.mx — the domain parameter sets the price. Results are always returned against Walmart's default store: delivery ZIP, store id and device emulation are not supported, and the store actually used is reported in data.location.
Get the full detail page for one Walmart product as JSON. Returns id/sku, title, url, image and images, price, price_strikethrough, currency, rating, rating_count, brand, model, gtin, product_type, short_description, long_description, specifications, variants, availability_status, out_of_stock, fulfillment, category_path, offer_count, location, and the seller (seller_name, seller_id as a GUID, and seller_catalog_id — the NUMERIC id that get_walmart_seller and get_walmart_seller_products require). Does NOT include review text (call get_walmart_reviews) or the seller offer list (call get_walmart_offers). Not paginated. walmart.com (US) only — there is no domain parameter, because walmart.ca product pages cannot be fetched. Costs 1 credit.
Get customer reviews for a Walmart product as JSON. Returns data.reviews (review_id, rating, title, text, author, author_location, submitted_at, verified_purchase, helpful_count, unhelpful_count, photos), plus average_rating, total_review_count, reviews_with_text_count, recommended_percentage, rating_breakdown (the 1-5 star histogram), and top_positive_review / top_negative_review. Returns 10 reviews per page — page through with the page parameter, using total_review_count to know how many pages exist. Costs 1 credit per page.
Browse the products inside a Walmart category as JSON, without a search query. Returns exactly the same shape as search_walmart: data.products (id, title, url, image, price, rating, brand, seller_catalog_id, sponsored, fulfillment, variants), products_count, page, max_page, has_more_pages, location and breadcrumb. Page through with the page parameter while data.has_more_pages is true. The limit parameter trims the returned list after Walmart has been fetched — it does NOT reduce the cost of the call. Costs 1 credit on walmart.com (default) and walmart.ca, and 2 credits on walmart.com.mx — the domain parameter sets the price.
Get the BUY-BOX offer for a Walmart product as JSON — which seller currently wins the listing, at what price. Returns product_id, title, url, count, total_offer_count (Walmart's own tally of purchasable offers, which is usually larger) and data.offers, each with offer_id, seller_name, seller_id, seller_catalog_id, seller_rating, seller_review_count, price, list_price, currency, condition, availability_status, shipping_price, fulfillment, wfs and is_buy_box_winner. This is NOT the full competing-offer list: Walmart server-renders only the buy-box winner, so expect one offer even when total_offer_count is higher. Not paginated. Costs 1 credit.
Get a Walmart marketplace seller's storefront as JSON. Returns seller_id (numeric) and seller_guid, name, display_name, about, logo_url, url, seller_type (EXTERNAL is a marketplace seller, INTERNAL is Walmart itself), is_marketplace_seller, has_pro_seller_badge, is_active, is_alcohol_seller, rating, review_count, reviews_with_text_count, rating_breakdown and a sample of reviews. Business contact fields (email, phone, address) come back only for sellers whose details Walmart publishes; they are null for every seller Walmart marks as exempt. IMPORTANT: seller_id must be the NUMERIC catalog seller id, which is the seller_catalog_id field on a product, search or offers response — passing the GUID seller_id from those same responses returns 404. Not paginated. Costs 1 credit.
List the products a Walmart marketplace seller sells, as JSON. Returns seller_id, seller_name, seller_display_name, count, products_count, total_count and data.products in the same shape as search_walmart (id, title, url, image, price, rating, brand, fulfillment, variants). HARD CAP: Walmart server-renders only roughly the FIRST 40 items and paginates the rest client-side, so this returns about 40 products no matter how large the catalog is, and there is no page or cursor parameter. Read total_count to see the seller's real catalog size and to know you are looking at a slice. IMPORTANT: seller_id must be the NUMERIC catalog seller id (the seller_catalog_id field on a product, search or offers response); the GUID form 404s. Costs 1 credit.
Search Reddit posts across all of Reddit as JSON. Returns data.results, each with post_id, title, text, url, subreddit, author, score, upvote_ratio, num_comments, created_at, is_nsfw, is_video, thumbnail, and media. Use data.next_cursor as the cursor parameter for the next page while data.has_more is true. Results cannot be sorted or filtered by type - the API returns relevance order only. Slower than other platforms (5-15 seconds). Costs 1 credit.
Get a single Reddit post by URL or post id as JSON. Returns a flat post object: post_id, title, text, url, subreddit, author, score, upvote_ratio, num_comments, created_at, is_nsfw, is_video, thumbnail, and media. Does NOT return comments - call get_reddit_post_comments with the post_id for those. Pass post_id or url (at least one is required). Slower than other platforms (5-15 seconds). Costs 1 credit.
Get Reddit search autocomplete suggestions for a query as JSON. Returns a list of suggested search strings. Use to expand a seed keyword or surface what people search for. Costs 1 credit.
Get the top-level comments for a Reddit post as JSON. Each comment includes its ID, text, author, score, timestamp, and a reply_cursor for fetching its replies. Accepts a post fullname (t3_...). Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Get the replies to a specific Reddit comment as JSON. Requires the post fullname and the reply_cursor from a comment in the get_reddit_post_comments response. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Get metadata for a subreddit as JSON, including its name, title, description, subscriber count, type, NSFW flag, icon, banner, primary color, and creation date. Accepts a subreddit name (without r/). Costs 1 credit.
List a subreddit's post feed as JSON. Each post includes its ID, title, URL, text, author, score, comment count, timestamp, and NSFW flag. Accepts a subreddit name (without r/). Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Get a redditor's profile as JSON, including their ID, name, employee/verified flags, account type, and whether they accept private messages. Accepts a username (without u/). Costs 1 credit.
List a redditor's submitted posts as JSON. Each post includes its ID, title, URL, subreddit, score, comment count, and timestamp. Accepts a username (without u/). Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
List a redditor's comments as JSON. Each comment includes its ID, text, author, the post it belongs to (ID and title), score, and timestamp. Accepts a username (without u/). Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Get the site-wide popular feed as JSON. Each post includes its ID, title, subreddit, author, score, comment count, URL, and timestamp. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Get Reddit's current trending search queries as JSON. Each entry includes the display query and the raw query. Takes no parameters. Costs 1 credit.
Get a TikTok user's profile data as JSON under data.user: 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. This is also how you obtain the sec_user_id that get_tiktok_user_posts, get_tiktok_user_followers and get_tiktok_user_followings require. Costs 1 credit.
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. Costs 1 credit.
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. Costs 1 credit.
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. Costs 1 credit.
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. Costs 1 credit.
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. Costs 1 credit.
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. Costs 1 credit.
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. Costs 1 credit.
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. Costs 1 credit.
Get a TikTok user's follower list as JSON. Each follower includes username, display name, sec_uid, follower count, video count, bio, and avatar. For the next page pass data.next_page_token as page_token and data.min_time as min_time, both together; stop when data.has_more is false. Costs 1 credit.
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. For the next page pass data.next_page_token as page_token and data.min_time as min_time, both together; stop when data.has_more is false. Costs 1 credit.
Search TikTok Shop products by keyword as JSON (US catalog only). Returns up to 30 products per page, each with the product ID, title, product URL, image, exact price (current, original, discount, savings, min/max across variants), rating, sold count, variant count, brand and shop. This is one of the endpoints that carries exact prices; get_tiktok_shop_product does not. Use data.next_cursor as the next cursor while has_more is true, and dedupe by product_id across pages. Product IDs returned here are not guaranteed to resolve on get_tiktok_shop_product: only about 44% do, because upstream has no detail data for the rest. Treat search as a standalone source of product and price data, not as the first step of a reliable search-to-detail pipeline. Costs 1 credit.
Get TikTok Shop keyword autocomplete and expansion for a partial query as JSON, in any of 8 marketplace regions. Returns a plain list of suggestion strings (20 to 50). Suggestions are not guaranteed prefix matches: a misspelling returns typo corrections, and results can include brand and shop names. Costs 1 credit.
Get full TikTok Shop product detail as JSON: title, plain-text description, images, variants with stock and dimensions, shipping, full shop profile (followers, shop rating, sold count), category path, breadcrumbs and top reviews. Two hard limits you must plan for. First, this endpoint does NOT return a price: TikTok masks prices on the product page upstream, so read exact prices from search_tiktok_shop, get_tiktok_shop_shop_products or get_tiktok_shop_category_products instead. Second, only about 44% of the product IDs returned by search_tiktok_shop resolve here (11 of 25 measured), because upstream has no detail data for the rest. That miss is identified by the HTTP 404 status, never by a field in the body. A 404 is a NORMAL outcome, not an error and not a transient failure: this tool returns it as a plain (non-error) result with status "no_detail_data", so do not retry it, do not treat it as a broken tool, and do not switch region hoping to recover it; skip that product and move on. Search to product is not a reliable pipeline. When you still need data about an unresolvable product, try get_tiktok_shop_product_reviews: in a measured sample of 8 IDs that this endpoint could not resolve, all 8 returned HTTP 200 on reviews and 7 of 8 returned at least one review. Costs 1 credit (a 404 is billed, since the lookup still ran).
Get paginated TikTok Shop product reviews as JSON, up to 200 per call. Each review includes the review ID, star rating, text, ISO timestamp, masked reviewer name, images, verified-purchase and incentivized flags, variant and country. Also returns the star distribution and total_reviews. total_reviews drifts between calls and must not be used to compute a page count: page with has_more instead. Reviews often work for products that get_tiktok_shop_product cannot resolve, which makes this a useful fallback detail source: in a measured sample of 8 product IDs that failed on get_tiktok_shop_product, 8 of 8 returned HTTP 200 here and 7 of 8 returned at least one review (counts 15, 0, 2, 20, 4, 6, 20, 11). That is a small sample, not a guarantee. Costs 1 credit.
Get the global TikTok Shop category tree as JSON: 28 top-level categories, 240 nodes, exactly two levels deep. Each node has a category ID, English name, slug, level, parent ID and image. Category IDs are identical in every region and names are always English. Takes no parameters. Use the returned IDs with get_tiktok_shop_category_products. Costs 1 credit.
List TikTok Shop products under a category ID from get_tiktok_shop_categories as JSON, with exact prices (this is one of the endpoints that carries real prices, unlike get_tiktok_shop_product). Level 1 and level 2 category IDs both work. Page size is inconsistent upstream (15 to 20 per page), so always paginate with data.next_cursor rather than assuming a fixed page size. Category listings are shallow: after a few pages the source stops returning new products and has_more turns false, which is the end of the listing rather than an error. Costs 1 credit.
List a TikTok Shop seller's product catalog as JSON, 30 per page, with exact prices (this is one of the endpoints that carries real prices, unlike get_tiktok_shop_product). Accepts a shop ID (also called seller ID elsewhere on TikTok). Use data.next_cursor as the next cursor while has_more is true. Shop follower count, location and shop-level rating are not available here; call get_tiktok_shop_product for the full shop profile. Costs 1 credit.
Resolve any TikTok Shop URL or share link to a product_id or shop_id as JSON, ready to pass to the other TikTok Shop tools. Accepts shop.tiktok.com product and store pages, tiktok.com/view/product and /view/shop links, affiliate-*.tiktok.com share links, and vt.tiktok.com or tiktok.com/t short links. Returns the type ('product' or 'shop'), the ID, a canonical shop.tiktok.com URL, and how it was resolved. Note that a product_id resolved from a link is not guaranteed to resolve on get_tiktok_shop_product either; prices always come from the listing tools. Costs 1 credit.
Get an Instagram user's profile as JSON. Returns user ID, username, full name, biography, external URL, profile picture, verified/private flags, and follower/following/post counts. The profile fields are inlined at the root of data, there is no data.user wrapper. Provide either username or user_id. Costs 10 credits.
List an Instagram user's posts (timeline media) with pagination as JSON. Provide username or user_id. The response shape depends on which upstream leg served it: posts arrive either in data.data with data.pagination_token, or in data.items with data.next_max_id. Pass whichever token is present back as the cursor; stop when neither is present. Costs 2 credits, the cheapest Instagram endpoint - prefer it over get_instagram_user_reels when plain posts will do.
List an Instagram user's Reels with pagination as JSON. Provide username or user_id. Reels arrive in data.items; use data.next_max_id as the next cursor and stop when it is absent. Costs 10 credits.
List posts an Instagram user is tagged in, with pagination as JSON. Provide username or user_id. Posts arrive in data.items; use data.next_max_id as the next cursor and stop when data.more_available is false. Costs 10 credits.
Get an Instagram user's currently active stories as JSON. Returns each story's media URLs, type, and timestamp in data.items. Stories are not paginated. Provide either username or user_id. Costs 10 credits.
Get a single Instagram post (or reel) as JSON, including caption, author, media URLs, and engagement stats. The post is data.items[0]: video URLs are in video_versions[].url (there is no video_url), the cover is in image_versions2.candidates (there is no thumbnail_url), and media_type is 1 for an image, 2 for a video, 8 for a carousel. Provide one of: url (a /p/, /reel/, /reels/, or /tv/ link), media_id, or shortcode. Costs 8 credits.
Get comments on an Instagram post as JSON. Each comment includes ID (pk), text, author, timestamp, and like count, under data.comments. Provide shortcode or url; media_id is not accepted here. Use data.next_min_id as the next cursor; stop when it is absent or data.has_more_comments is false. Costs 10 credits.
Get replies to a specific Instagram comment as JSON, under data.child_comments. Requires the post's media_id and the parent comment_id (the pk from get_instagram_post_comments). get_instagram_post_comments does not return a media_id, so resolve it with get_instagram_post first. Use data.next_min_child_id as the next cursor. Costs 8 credits.
Search Instagram users by keyword as JSON. Each result includes user ID, username, full name, verified flag, and follower count, under data.users. Pass data.rank_token from a previous response as the cursor for the next page; pagination is best effort because the fallback upstream leg drops the cursor and re-serves page 1. Page size is not controllable. Costs 10 credits.
Search Instagram hashtags by keyword as JSON. Each result includes the hashtag name, ID, and media count, under data.hashtags. Pass data.rank_token from a previous response as the cursor for the next page; pagination is best effort because the fallback upstream leg drops the cursor and re-serves page 1. Page size is not controllable. Costs 10 credits.
Get an Instagram user's follower list as JSON, under data.users. Each follower includes user ID, username, full name, and verified flag. Provide username or user_id. Use data.next_max_id as the next cursor when present; stop when it is absent or data.has_more is false. Costs 10 credits.
Get the list of accounts an Instagram user follows as JSON, under data.users. Each entry includes user ID, username, full name, and verified flag. Provide username or user_id. Use data.next_max_id as the next cursor; stop when it is absent or data.has_more is false. Costs 10 credits.
Search X for tweets and people as JSON. Each result includes the tweet ID, author handle, text, language, timestamp, and engagement counts (favorites, retweets, replies, quotes, bookmarks, views). Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit. Use when the user asks to find tweets or accounts about a topic.
Get full details for a single tweet as JSON. Returns the tweet ID, text, display text, timestamp, language, engagement counts (favorites, retweets, replies, quotes, bookmarks, views), source, and reply-to reference. Accepts a tweet ID. Costs 1 credit.
Get replies to a tweet as JSON, ranked or chronological. Each reply includes the tweet ID, author handle, text, timestamp, and engagement counts. Accepts a tweet ID. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Get the users who retweeted a tweet as JSON. Each user includes the user ID, handle, name, description, follower/friends/statuses/media counts, and profile image. Accepts a tweet ID. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Get an X user's profile as JSON. Returns the rest ID, handle, name, description, follower/friends/statuses/media counts, verified flag, avatar, header image, location, website, and creation date. Accepts a handle (without @). Costs 1 credit.
List an X user's tweets as JSON in data.timeline, plus data.pinned (a pinned tweet or null) and data.user (the author's profile). Each tweet includes the tweet ID, text, timestamp, engagement counts, and conversation ID. Accepts a handle (without @). Use data.next_cursor as the next cursor; this endpoint returns no has_more, so stop when next_cursor is absent or the timeline comes back empty. Costs 1 credit.
List an X user's tweets and replies as JSON in data.timeline, plus data.user (the author's profile). Each entry includes the tweet ID, text, timestamp, and engagement counts. Accepts a handle (without @). Use data.next_cursor as the next cursor; this endpoint returns no has_more, so stop when next_cursor is absent or the timeline comes back empty. Costs 1 credit.
List an X user's media tweets (posts with photos or videos) as JSON in data.timeline, plus data.user (the author's profile). Each entry includes the tweet ID, text, timestamp, and engagement counts. Accepts a handle (without @). Use data.next_cursor as the next cursor; this endpoint returns no has_more, so stop when next_cursor is absent or the timeline comes back empty. Costs 1 credit.
List an X user's followers as JSON. Each follower includes the user ID, handle, name, description, follower count, verified flag, and location. Accepts a handle (without @). Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
List the accounts an X user follows as JSON, under data.following (singular, unlike the tool name). Each account includes the user ID, handle, name, description, follower count, verified flag, and location. Accepts a handle (without @). Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.
Get trending topics on X for a country as JSON. Each trend includes its name, description, and context. Costs 1 credit.
Get a LinkedIn member's full profile as JSON: name, headline, about text, location, avatar, banner, follower and connection counts, current company, full work experience (including grouped multi-role entries), education, honours, bio links and similar profiles. Provide a vanity handle or a full profile URL. Costs 1 credit.
Get the about/overview slice of a LinkedIn member's profile as JSON: about text, headline, work experience, education, honours and bio links. Use this instead of get_linkedin_person when you only need the narrative sections. Provide a vanity handle or a full profile URL. Costs 1 credit.
Get a LinkedIn member's posts as JSON, each with text, url, timestamps, a full reaction breakdown (likes, appreciations, empathy, interest, praise), comment and repost counts, attached images, article metadata and the author. Set type to also fetch the posts the member commented on or reacted to. Returns 50 per page with next_cursor and has_more; pass next_cursor back to get the following page. Provide a vanity handle or a full profile URL. Costs 10 credits per page.
Get a LinkedIn company profile as JSON: name, about, description, website, industries, specialties, company size, employee and follower counts, headquarters, all office locations, logo, a small sample of featured employees, similar and affiliated companies, and recent updates. Provide a company slug or a full company URL. Costs 1 credit.
Get a LinkedIn company's recent posts as JSON, in the same shape as member posts (text, url, reaction breakdown, comment and repost counts, images, author). Returns 50 per page with next_cursor and has_more; pass next_cursor back for the following page. Provide a company slug or a full company URL. Costs 10 credits per page.
Search LinkedIn job listings by keyword as JSON, returning title, company, company URL and logo, location, posted time, workplace type and salary for each hit. Returns 25 per page with next_cursor. Note the provider rotates its result set, so pages overlap slightly and repeating the same search returns different listings - dedupe by job id and do not treat it as an exhaustive list. Pass a company name as the search term to approximate a per-company job listing. Costs 10 credits per page.
Get full details for one LinkedIn job listing as JSON: title, full description, location, employment type, experience level, job functions, industries, benefits, skills, remote flag, closed/expiry state, applicant and view counts, salary, plus the hiring company (name, size, follower count and headquarters). Provide a job id or a full job URL. Costs 30 credits - the most expensive LinkedIn tool, so prefer the fields already present in search_linkedin_jobs when they are enough. A listing with no detail record upstream returns an unbilled 404.
Get full details for one LinkedIn post as JSON: title, headline, body text, url, timestamp, hashtags, embedded links, images, video and document metadata, like and comment counts, tagged companies and people, the top visible comments, and the author with their follower and post counts. Provide a post id, activity urn, or a full post URL. Costs 1 credit.
Get the comments on a LinkedIn post as JSON, each with text, permalink, timestamp, pinned flag, the commenter (name, headline, avatar, profile URL) and any nested replies. Paginated via a 1-based page number; page size varies, so keep incrementing page until a page returns no comments. The total is reported on page 1 only. Provide a post id, activity urn, or a full post URL. Costs 10 credits per page.
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.
Overview
What is Scavio?
Scavio gives AI agents one API key for structured web data across 31 platforms, returning clean JSON instead of HTML you have to parse - no per-site scrapers, proxies or rotating keys.
How to use Scavio
Connect over HTTP MCP transport to https://mcp.scavio.dev/mcp and pass your key in the x-api-key header. Nothing to install - the server is hosted. Get a key at https://scavio.dev.
The tool surface is chosen with the x-scavio-platforms header, or SCAVIO_PLATFORMS when running locally over stdio. Unset registers the default 106 tools across 11 platforms; all registers 191. Keeping the default small matters: all 191 tool definitions add roughly 70k tokens to every session before you type anything.
Key features of Scavio
- Google: organic SERP, News, Maps, Shopping, Trends, Flights, Hotels, AI Overview
- Commerce: Amazon, Walmart, eBay, Target, Home Depot
- Social: YouTube, TikTok, TikTok Shop, Instagram, Threads, X, Reddit, Kuaishou
- Travel and local: Booking.com, Airbnb, Tripadvisor, Yelp
- Property: Zillow, Redfin
- Jobs and employers: LinkedIn, Indeed, Glassdoor
- Software reviews: G2, Capterra
- App stores: Apple App Store, Google Play
- Ad libraries: Google Ads Transparency, Meta Ads
- Company filings: SEC EDGAR, UK Companies House
- Extract: any URL to clean markdown, text or HTML
Use cases of Scavio
- Ground agent answers in live web data instead of stale model weights
- Price and product monitoring across retailers
- Brand and community monitoring on Reddit, X and TikTok
- Competitor ad research from the Google and Meta ad libraries
- Lead and market research from Yelp, LinkedIn, Indeed and Companies House
- RAG pipelines that need current, citable sources
Basic information
More AI & Agents MCP servers
Sphere
dtajitdinov-arisOpen marketplace where AI agents register, publish services, and transact via escrowed contracts. Live at starsphera.com.
🛡️ A.I.G(AI-Infra-Guard)
TencentA full-stack AI Red Teaming platform securing AI ecosystems via OpenClaw Security Scan, Agent Scan, Skills Scan, MCP scan, AI Infra scan and LLM jailbreak evaluation.

Lumify Sports Intelligence
LumifyAgent-ready sports intelligence API: live scores, odds, line movement, public betting splits, and explainable bet confidence — via 16 MCP tools at https://lumify.ai/mcp. Get a free key instantly — no signup, email, or ca
早起鸟儿喊真人验真
shenshaoyin早起鸟儿喊真人验真 is a remote MCP server available at http://121.40.18.232.

Magic Hour
Magic Hour MCP lets AI agents create and edit images, videos, and audio using Magic Hour’s hosted generation tools.
Comments