MCP Fetch Server
Official Model Context Protocol reference server that lets any MCP-compatible LLM fetch web pages and read them as clean markdown.
Developers wiring MCP-compatible LLMs (Claude Desktop, Claude Code, Cursor, VS Code) into everyday workflows that need clean, chunkable web reads — docs, READMEs, changelogs, articles.
Teams that need JavaScript-rendered pages, Cloudflare-gated sites, structured extraction, or crawling at scale — reach for Firecrawl-MCP or a Playwright-based server instead.
MCP Fetch Server is one of the reference servers shipped in Anthropic's official modelcontextprotocol/servers repository. It exposes a single, focused capability to any MCP-compatible client (Claude Desktop, Claude Code, Cursor, VS Code's MCP support, Zed, Continue, and others): given a URL, it retrieves the page, strips boilerplate, and returns the content as markdown that an LLM can actually reason over. A `raw` flag lets you keep the original HTML when the markdown conversion loses something important, and if Node.js is present on the host the server switches to a more robust HTML simplifier automatically.
The design accounts for the fact that models have finite context windows. Rather than dumping an entire page, `fetch` truncates by default and takes `max_length` and `start_index` arguments so a model can walk a long document in chunks until it finds what it needs. That pattern shows up in real workflows constantly: pulling changelogs, reading a spec section by section, checking a package's README before you install it, or grabbing a single answer from a StackOverflow thread without paying for the whole page.
Runtime is deliberately boring. You install nothing globally if you use `uvx mcp-server-fetch`; there is a `pip install mcp-server-fetch` path and a published `mcp/fetch` Docker image for sandboxed setups. Configuration is a three-line JSON block in your client's MCP settings. Command-line flags let you disable robots.txt obedience, override the User-Agent, or route through a proxy — useful when you want the model's traffic to look like your normal browser or to go through a rotating residential IP.
Because it is a reference implementation maintained inside the MCP repo itself, it tracks the spec closely and is the fetch server most tutorials, examples, and MCP marketplaces point to. It is intentionally small: no headless browser, no JavaScript execution, no bot-wall bypass. For those you reach for a heavier server (Firecrawl-MCP, browser-use, Playwright-MCP). For 80% of "just let the model read this page" moments, this is the right tool.
This is the fetch server I recommend by default. It is small, honest about what it does, and maintained in the same repo as the MCP spec itself. Ninety percent of "can the model just read this page?" moments end here; the other ten percent are JS-rendered sites where you were always going to need a browser.
— The AI Tool Bible editorial team
Pros
- ✅ Official reference implementation maintained in the modelcontextprotocol/servers repo — tracks the spec and won't rot behind third-party churn.
- ✅ Zero-install path via `uvx mcp-server-fetch`; Docker image and pip package also available for sandboxed or reproducible setups.
- ✅ HTML-to-markdown conversion produces context-window-friendly output instead of raw tag soup.
- ✅ `max_length` + `start_index` let a model chunk through long pages without blowing its context.
- ✅ Optional Node.js fallback swaps in a more robust HTML simplifier when present.
- ✅ First-class configuration for User-Agent, robots.txt obedience, and outbound proxy — practical knobs for real-world scraping etiquette.
- ✅ Works out of the box with every major MCP client (Claude Desktop, Claude Code, VS Code, Cursor, Zed, Continue).
Cons
- ⚠️ No JavaScript rendering — SPAs, Cloudflare-challenged pages, and content loaded after DOMContentLoaded come back empty or as a shell.
- ⚠️ No built-in anti-bot handling; sites that block plain HTTP clients (many news sites, LinkedIn, X) will 403.
- ⚠️ Security caveat called out in the README: the server can reach local/internal IPs, so it is a genuine SSRF risk if exposed to an untrusted model or user.
- ⚠️ Single tool, single verb — for crawling, sitemap walks, or extracting structured data you need a heavier server like Firecrawl-MCP or a Playwright-based one.
- ⚠️ Truncation defaults to 5,000 characters; models that don't understand `start_index` can silently miss content below the fold.
Use cases
Explore related
Compare with similar tools
All in MCP Servers →Airtable MCP Server
Model Context Protocol server that gives LLMs full read/write access to your Airtable bases.
Apple Notes MCP
Let Claude read your local Apple Notes over the Model Context Protocol.
AWS MCP Servers
Official AWS Labs collection of Model Context Protocol servers for connecting AI coding assistants and agents to AWS services and documentation.
Azure MCP Server
Official Microsoft MCP server that exposes 40+ Azure services to AI agents under the developer's own Entra ID credentials.
Blender MCP
Give Claude hands inside Blender — an MCP server for natural-language 3D modeling.
Brave Search MCP
Give any MCP client web and local search powered by the Brave Search API.