
Fetch (Reference)
OfficialOfficial MCP reference server that fetches a URL and returns its content as clean Markdown, with chunking.
Add to your client
Copy the config for your MCP client and paste it into its config file.
uvx mcp-server-fetchPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"fetch-reference": {
"command": "uvx",
"args": [
"mcp-server-fetch"
]
}
}
}Requires `uv` (the Python package runner). Install it from https://docs.astral.sh/uv/ if `uvx` is not found.
Before you start
- Python 3.10+ with `uv`/`uvx` installed (recommended), or `pip` to install the package
- Optionally Node.js — if present, it is used for better HTML-to-Markdown simplification
- Alternatively Docker, to run the prebuilt `mcp/fetch` image
- No API key or account required (auth: none)
About Fetch (Reference)
Fetch is one of the official reference MCP servers maintained by the Model Context Protocol project. It takes a single URL, retrieves the page, strips it down to clean Markdown, and returns the text to the model — turning arbitrary web pages into LLM-friendly content.
Its standout feature is built-in chunking. Responses are truncated to a configurable max_length (default 5000 characters), and the model can page through long documents by passing an increasing start_index, so it can read a large article in segments without blowing the context window. A raw flag returns the unmodified HTML when Markdown conversion would lose information.
It runs over stdio with no authentication or API key. By default it honors a site's robots.txt for model-initiated requests (this can be disabled), and it supports a custom User-Agent and an outbound proxy. Because it is a reference implementation, it is intentionally small and dependency-light — a good baseline for web access in any MCP client.
Tools & capabilities (2)
fetchFetch a URL and return its content as Markdown; supports max_length, start_index (for chunked paging), and raw (return unconverted HTML).
fetch (prompt)A bundled prompt that instructs the model to retrieve and summarize a URL's contents as Markdown.
When to use it
- Use it when you want a model to read a specific web page or article and reason over its content.
- Use it when a long document must be consumed in pieces via start_index paging to stay within context limits.
- Use it as a zero-config, no-auth web-reading baseline in any MCP client.
- Use it when you need raw HTML (raw=true) because Markdown conversion would drop tables or structure.
- Use it when you must respect or deliberately bypass a site's robots.txt for automated fetches.
Quick setup
- 1Install via `uvx mcp-server-fetch`, `pip install mcp-server-fetch`, or pull the `mcp/fetch` Docker image.
- 2Add it to your MCP client config (e.g. Claude Desktop) as a stdio server running `uvx mcp-server-fetch`.
- 3Optionally pass flags like `--ignore-robots-txt`, `--user-agent=`, or `--proxy-url=`.
- 4Restart the MCP client so it picks up the new server.
- 5Verify by asking the model to fetch a known URL and return its Markdown.
Security notes
Because it fetches from the local machine, it can reach internal/private IPs and intranet services, which is an SSRF risk; restrict which URLs you allow it to fetch in sensitive networks. It honors robots.txt by default for model-initiated requests unless explicitly disabled.
Fetch (Reference) FAQ
Does it need an API key?
No. The fetch server uses stdio with no authentication, so there is nothing to sign up for.
Why is my response cut off?
Output is truncated to max_length (default 5000 chars). Have the model call fetch again with a higher start_index to page through the rest of the document.
It refuses to fetch a page citing robots.txt — why?
By default the server obeys robots.txt for model-initiated requests. Run it with --ignore-robots-txt to bypass this.
Do I need Node.js?
No, it is optional. When Node is available the server uses it for higher-quality HTML simplification, but it runs fine on Python alone.
Is this the official server?
Yes. It lives under modelcontextprotocol/servers/src/fetch and is one of the project's official reference implementations, licensed MIT.
Alternatives to Fetch (Reference)
Official Firecrawl MCP server — scrape, crawl, map, search, and structured extraction for any LLM client.
Exa's neural web search and crawling MCP server — runs locally via npx or as a hosted remote endpoint.
Official Perplexity MCP server — web search, ask, deep research, and reasoning via Sonar models.
Compare Fetch (Reference) with: