mrkeyoor.com_
Tue 01 Sept 16:13 UTC
WebMCP servermeasured 19 Aug 2026

Fetch

Fetch is Anthropic's reference MCP server for pulling a web page into a model's context. It retrieves a URL, converts the HTML to markdown, and hands back a chunk your agent can read, with an offset argument for walking long pages. One tool, one job, no account and no API key anywhere in it.

BootBOOTS ✓We started it and initialize came back in 3.1s.
Tools1tools/list payload 1,104 bytes
Context tax~276estimated tokens for the whole tools/list, chars/4 estimate
Resources / prompts / 1counts returned by resources/list and prompts/list
Measured19 Aug 2026one run of the harness, clean environment, no credentials · how we test

How we started it

uvx mcp-server-fetch
Verdict

Use it. When we booted it the whole tools/list payload came back at roughly 276 tokens (chars/4 estimate, measured 2026-08-19), which is about as cheap as a capability gets, and the single tool does what its name says. The honest cost is that it is genuinely primitive: no JavaScript rendering, no search, no caching, and pages behind Cloudflare or a login will hand your agent a challenge page that it will happily summarize as if it were content. Treat it as curl with a markdown converter, not as a research stack.

Use it if

You want an agent that can read a documentation page or a changelog you already have the URL for
You are counting context and refuse to spend thousands of tokens on tool schemas before any work happens
You want a first-party Anthropic server so you are not auditing a stranger's package for the privilege of reading HTML
You are running locally and are fine with the server making outbound requests from your own machine's IP

Skip it if

Your targets are React apps that render their content client-side; you will get an empty shell back
You need the agent to find pages, not just read them, since there is no search here at all
You are hitting sites that gate on Cloudflare, paywalls, or logins, and you cannot pass cookies through
You want extraction guarantees, like tables surviving as tables or code blocks staying intact across the markdown conversion
You are deploying somewhere the outbound request itself is the problem, because this server will fetch whatever a prompt tells it to fetch

The bill for your context window

ToolEst. tokensDescribed?Required params
fetch~276yes (307 chars)1

This is the cheap end of the directory. One tool, a 307-character description, and a tools/list payload of 1,104 bytes, which works out to about 276 tokens on the chars/4 estimate. Nothing here is carrying dead weight because there is nothing else to carry: no auth tools, no list-your-workspaces preamble, no forty verbs you will never call. Compared with the Notion server we measured in the same batch, whose tool list runs to five figures of tokens, Fetch costs you a rounding error and still buys the single most-requested agent capability. If you are budgeting a context window, this one goes in first and you argue about the rest.

Setup reality

It runs under uvx with no configuration: the harness started it with a clean environment, no secrets, and it came up anyway. Boot took 3,054 ms, most of which was uv downloading and installing the dependency tree on first run, so a warm cache is considerably faster. The stderr showed lxml, cryptography, and pydantic-core arriving before the server said hello. It reported protocol 2025-06-18 and identified itself as version 1.29.0. The one thing worth reading the README about is robots.txt: by default the server respects it for model-initiated fetches, and there is a flag to turn that off if you know why you are doing it.

Questions people ask

Does the Fetch MCP server run JavaScript?

No. It makes an HTTP request and converts the returned HTML to markdown, so anything a browser would have rendered after page load is simply absent. For single-page apps you need a browser-driving server like Playwright instead.

Does Fetch need an API key?

It does not. We started it with a clean environment and no credentials and it initialized fine, reporting no missing environment variables. That also means there is no per-request quota and no vendor watching what your agent reads.

Can it read a page that is longer than the context window?

Partly. The tool takes a start offset and a max-length argument, so an agent can walk a long document in pieces rather than truncating it. Whether the agent bothers to do that is between you and your prompt.

Does it obey robots.txt?

By default the README says it checks robots.txt for fetches the model initiated, and skips the check when a human explicitly asks for a URL. There is a command-line flag to disable the check entirely, which you should think about before using.

Other web servers we started

ServerVendorBootsContext tax
Apify ActorsApify~0 tokens
FirecrawlFirecrawl~9,077 tokens

How this page is made: the server is spawned as an unprivileged user with a clean environment and no credentials, then asked for its tools, resources and prompts over stdio. Token figures are estimates at four characters per token, not a tokenizer count. One run, one machine. Corrections: contact the desk.

← All measured MCP servers