{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_96u4d4feurhs","handle":"web-fetch-mcp-2","url":"https://wellknown.network/agents/web-fetch-mcp-2","links":{"self":"https://wellknown.network/agents/web-fetch-mcp-2/record.json","html":"https://wellknown.network/agents/web-fetch-mcp-2","markdown":"https://wellknown.network/agents/web-fetch-mcp-2/record.md","api":"https://wellknown.network/api/v1/agents/web-fetch-mcp-2","status":"https://wellknown.network/api/v1/agents/web-fetch-mcp-2/status","claim":"https://wellknown.network/agents/web-fetch-mcp-2/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/web-fetch-mcp-2/claim.json","badge":"https://wellknown.network/agents/web-fetch-mcp-2/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:web-fetch-mcp-2","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"web-fetch-mcp","summary":"Resilient web-fetch MCP server: 3-tier escalation (curl_cffi -> Patchright -> nodriver) that fails honestly, with article-extraction mode and automatic content-type handling (HTML/JSON/PDF/image).","description":"# web-fetch-mcp\n\n[![PyPI](https://img.shields.io/pypi/v/web-fetch-mcp.svg)](https://pypi.org/project/web-fetch-mcp/)\n[![Python](https://img.shields.io/pypi/pyversions/web-fetch-mcp.svg)](https://pypi.org/project/web-fetch-mcp/)\n[![CI](https://github.com/Dutta-SD/web-fetch-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Dutta-SD/web-fetch-mcp/actions/workflows/ci.yml)\n[![License](https://img.shields.io/pypi/l/web-fetch-mcp.svg)](https://github.com/Dutta-SD/web-fetch-mcp/blob/main/LICENSE)\n\n*A Python MCP server using browser fingerprint impersonation, headless Chrome,\nand multi-tier anti-detection to reliably fetch web pages for AI agents —\npublished on PyPI with CI/CD pipeline and test coverage.*\n\n---\n\n## What is this?\n\n`web-fetch-mcp` is an [MCP](https://modelcontextprotocol.io) server that lets AI\nassistants (like Claude, Cursor, or any MCP-compatible client) fetch web pages\n**reliably**.\n\n### The problem it solves\n\nWhen an AI agent fetches a web page, many sites return a CAPTCHA, a JavaScript\nchallenge, or a login wall — but still send HTTP status `200 OK`. A naive\nfetcher hands this garbage to the AI, which then reasons from nonsense.\n\n### How this tool fixes it\n\n`web-fetch-mcp` **detects** when a site returns a block page instead of real\ncontent, and either:\n\n1. **Escalates** to a stronger fetching strategy (there are 3 tiers), or\n2. **Fails loudly** with a clear error (`FetchBlocked`) — never silently\n   returning junk.\n\n> **Status:** Alpha. Core logic is tested, but real-world bypass benchmarks are\n> in progress.\n\n---\n\n## Installation\n\n**Requirements:** Python 3.11+\n\n```bash\npip install web-fetch-mcp\n```\n\nThat's it. This installs the `web-fetch-mcp` command on your system.\n\n---\n\n## Quick Start\n\n### 1. Run the server\n\n```bash\nweb-fetch-mcp\n```\n\nThis starts the MCP server in the background. It doesn't show anything on its\nown — your AI client talks to it automatically.\n\n### 2. Register with your MCP client\n\nAdd this to your MCP client's configuratio…","publisher":null,"homepage":"https://github.com/Dutta-SD/web-fetch-mcp","repository":"https://github.com/Dutta-SD/web-fetch-mcp","version":"1.0.0","license":null,"protocols":["mcp"],"tags":["anti-bot","curl-cffi","fetch","llm","mcp","model-context-protocol","nodriver","playwright","web-scraping"],"pricing":null,"endpoints":[{"url":"pypi:web-fetch-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-scraping","name":"Web Scraping","confidence":1,"provenance":"declared"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":1,"provenance":"derived"},{"slug":"infra.browser-automation","name":"Browser Automation","confidence":1,"provenance":"declared"}],"categories":["data","dev","infra"],"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":"web-fetch-mcp","registry":"pypi","observedAt":"2026-09-10T15:25:25.329Z","publishedAt":"2026-06-29T13:18:34.117292Z","latestVersion":"1.0.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"web-fetch-mcp","url":"https://pypi.org/project/web-fetch-mcp/","firstSeenAt":"2026-09-10T15:24:22.507Z","fetchedAt":"2026-09-10T15:24:22.507Z","normalizedAt":"2026-09-10T15:24:22.507Z"}]},"firstSeenAt":"2026-09-10T15:24:22.507Z","updatedAt":"2026-09-10T15:25:25.329Z"}