Official Model Context Protocol (MCP) server for fetcher.sh — web data API for agents. Search 111 endpoints across Twitter/X, YouTube, TikTok, Instagram, Reddit, Google, and more via Claude Desktop, Cursor, or any MCP client.
Five tools with clear verb-noun naming (search_, describe_, fetch_, check_, topup_). All have descriptions (avg 180 chars, within 10-1024 baseline). Input schemas present with Zod types and descriptions. However, output schemas are NOT documented, LLMs cannot predict response structure. Parameter descriptions are adequate but lack format constraints (e.g., endpoint path pattern, param value ranges). Error handling exists but lacks recovery guidance. fetch_data and topup_credits have concerning design: fetch_data accepts open-ended params object (no validation hints), and topup_credits returns an error response for a free tool, which is confusing.
Free. Show the remaining credit balance for FETCHER_API_KEY. Call this before a long run of paid requests.
Free. Show the full call signature for one endpoint: required and optional parameters, allowed values, price, and response shape. Call this before fetch_data if you are unsure about parameters.
Paid. Fetch live data from any fetcher.sh endpoint. Pass the endpoint path plus its parameters (path and query parameters together in `params`). Priced per call; spends prepaid credits from FETCHER_API_KEY. Call describe_endpoint first if unsure. For a named tool per endpoint of one service, set FETCHER_SERVICE in the client config (e.g. twitter).
🎯 START HERE. Free. Search fetcher.sh's web-data endpoints (Twitter/X, YouTube, TikTok, Instagram, Reddit, Google Search, Google Maps, Google News, Google Play, App Store, Yelp) by keyword and/or service. Returns paths, descriptions and per-call prices. Then call describe_endpoint, then fetch_data.
Prepaid credits are bought on the web, not over stdio. Returns the top-up URL (minimum $1). After topping up, put the bby_live_… key in FETCHER_API_KEY.
Output schemas not documented. LLMs cannot predict response structure for any tool. search_endpoints, describe_endpoint, fetch_data, check_balance all return unspecified JSON. This violates pattern:tool and forces LLMs to guess field names and types.
fetch_data params parameter is open-ended Record<string, string|number|boolean> with no validation hints. LLMs cannot know which params are required, which are optional, or what values are valid. No enum constraints or format documentation.
topup_credits is a free tool but returns ok:false with an error message. This is confusing, the tool succeeds (returns a URL) but the response structure signals failure. Violates pattern:response-shaper expectations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
No pagination support documented. search_endpoints may return many endpoints; no limit, offset, or cursor parameters visible. Large result sets risk context window exhaustion.
Error responses lack recovery guidance. FetcherApiError thrown in runPaidFetch but no actionable next steps provided to LLM (e.g., 'Call check_balance first' or 'Try describe_endpoint to validate parameters').