{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_agejzy93pys9","handle":"scrape-n-search-mcp","url":"https://wellknown.network/agents/scrape-n-search-mcp","links":{"self":"https://wellknown.network/agents/scrape-n-search-mcp/record.json","html":"https://wellknown.network/agents/scrape-n-search-mcp","markdown":"https://wellknown.network/agents/scrape-n-search-mcp/record.md","api":"https://wellknown.network/api/v1/agents/scrape-n-search-mcp","status":"https://wellknown.network/api/v1/agents/scrape-n-search-mcp/status","claim":"https://wellknown.network/agents/scrape-n-search-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/scrape-n-search-mcp/claim.json","badge":"https://wellknown.network/agents/scrape-n-search-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/scrape-n-search-mcp/history","tools":"https://wellknown.network/api/v1/agents/scrape-n-search-mcp/tools"},"ard":{"identifier":"urn:air::server:scrape-n-search-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"scrape-n-search-mcp","summary":"MCP server unifying web-search and scraping providers behind a few agent tools","description":"# scrape-n-search MCP server\n\nUnified web-search and scraping tools for AI agents, backed by multiple providers\n(TinyFish, Tavily, Exa, ZenRows, Scrappey, Firecrawl, Serper, Jina). The agent calls a\nhandful of tools and never needs to know which provider served the request.\n\nBecause every provider fetches on **its own servers**, the client's IP (e.g. a VPN IP\nthat target sites reject) is never seen by the target site.\n\n## Architecture\n\n```\nMCP client (agent)\n   │  MCP stdio protocol\n   ▼\nMCPServer (server.py) ── 7 tools: web_search, web_fetch, web_browser_actions,\n                                 web_screenshot, web_session, web_crawl, web_extract\n   │\n   ▼\nRouter (router.py) ── picks provider by priority + capability, fails over on error\n   │\n   ├── TinyFish   (search, fetch)\n   ├── Tavily     (search, fetch)\n   ├── Exa        (search, fetch)\n   ├── ZenRows    (fetch, extract)\n   ├── Scrappey   (fetch, browser_actions, screenshot, session)\n   ├── Firecrawl  (search, fetch, crawl, extract)\n   ├── Serper     (search)\n   └── Jina       (search*, fetch)\n```\n\n- **Normalization**: every adapter maps its provider-specific response into the shared\n  models (`SearchResult`, `FetchedPage`, `CrawlPage`), so results look the same\n  regardless of provider.\n- **Selection**: the router uses the first *enabled* provider (API key present) that\n  supports the requested tool, in priority order.\n- **Failover**: if the chosen provider errors, the router tries the next candidate and\n  aggregates errors if all fail. The response always names the provider that served it.\n- **Default provider**: `DEFAULT_PROVIDER` forces a preferred provider for every call\n  (the agent can still override per-call with the `provider` parameter). When set, tools\n  that provider cannot serve are **hidden** from the client.\n\n## Tools\n\nEvery tool returns a JSON string. All accept an optional `provider` parameter to force a\nspecific provider; otherwise the default/auto-selected provider is used.\n\n### `web_searc…","publisher":null,"homepage":"https://github.com/hughyyy/scrape-n-search/blob/main/README.md","repository":"https://github.com/hughyyy/scrape-n-search/blob/main/README.md","version":"0.1.1","license":null,"protocols":["mcp"],"tags":["mcp","web-scraping","search","scraping","agent","llm"],"pricing":null,"endpoints":[{"url":"pypi:scrape-n-search-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"data.web-search","name":"Web Search","confidence":1,"provenance":"derived"},{"slug":"data.web-scraping","name":"Web Scraping","confidence":1,"provenance":"declared"}],"categories":["data"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"scrape-n-search-mcp","registry":"pypi","observedAt":"2026-10-28T22:24:21.257Z","publishedAt":"2026-10-21T12:42:38.292487Z","latestVersion":"0.1.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"scrape-n-search-mcp","url":"https://pypi.org/project/scrape-n-search-mcp/","firstSeenAt":"2026-10-22T19:27:05.533Z","fetchedAt":"2026-10-28T22:22:18.350Z","normalizedAt":"2026-10-28T22:22:18.350Z"}]},"firstSeenAt":"2026-10-22T19:27:05.533Z","updatedAt":"2026-10-28T22:24:21.258Z"}