Menu

AI

Fetch MCP Server: Tools, Setup and Security

The MCP project's Fetch reference server lets an AI app read web pages as markdown. Its one tool, setup configs, SSRF guard, robots.txt rules and limits.

By: Irina ShvayaOctober 28, 2026

Fetch MCP Server: Tools, Setup and Security

This profile is part of our MCP server directory, within The MCP Guide. Profiles are checked against each vendor's own documentation. Need a server built? See MCP development.

The Fetch MCP server lets an AI app download a web page and read it as markdown. It is one of the reference servers published by the Model Context Protocol project in the modelcontextprotocol/servers repository on GitHub. It is a teaching example, not a commercial product.

Checked against: Fetch MCP Server README on 28 October 2026. eSEOspace did not install or test this server.

The repository is clear about what these servers are. In its own words: "The servers in this repository are intended as reference implementations to demonstrate MCP features and SDK usage. They are meant to serve as educational examples for developers building their own MCP servers, not as production-ready solutions."

Key Takeaways

  • Fetch is a reference implementation from the MCP project, meant for learning, not a production-ready web reader.
  • It exposes one tool, fetch, plus one prompt of the same name, and returns pages as markdown in chunks.
  • By default it refuses private, loopback and cloud metadata addresses, which guards against server-side request forgery (SSRF).
  • The README warns the guard does not stop DNS rebinding, and --allow-private-ips turns it off.
  • It runs locally over stdio, needs no account, and is free under the MIT License.

At a glance

FieldDetail
PublisherModel Context Protocol project (reference servers maintained by the MCP steering group)
Official?Yes, an MCP project reference server
HostingLocal package (mcp-server-fetch via uvx or pip), or Docker image mcp/fetch
Transportstdio
Sign-inNone
Read or writeRead only (tool annotated readOnlyHint: true)
PriceFree and open source (MIT License)
Source codegithub.com/modelcontextprotocol/servers/src/fetch
StatusReference implementation, "not production-ready" per the repo

What it can do

The README documents a single tool:

  • fetch: fetches a URL and extracts its contents as markdown. Inputs are url (required), max_length (default 5,000 characters), start_index (default 0) and raw (skip markdown conversion).

Because responses are cut at max_length, the model can call again with a higher start_index. That lets it read a long page in chunks until it finds what it needs.

The server also offers a fetch prompt. It takes a url and is meant for user-started fetches rather than model-started ones. That difference matters for robots.txt, covered below.

Failed fetches come back as tool errors the model can read. Examples include a robots.txt refusal, an HTTP error or a refused private address.

How to connect it

The README recommends running it with uvx, which needs no separate install. This is the Claude Desktop config it gives:

{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": ["mcp-server-fetch"]
    }
  }
}

It also documents a Docker option:

{
  "mcpServers": {
    "fetch": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "mcp/fetch"]
    }
  }
}

You can install with pip install mcp-server-fetch and run python -m mcp_server_fetch instead. The README also has VS Code configs and a Windows tip: set PYTHONIOENCODING to utf-8 if you see timeouts.

To debug, the README suggests the MCP Inspector:

npx @modelcontextprotocol/inspector uvx mcp-server-fetch

Security notes

The README opens with a caution: "This server can access local/internal IP addresses and may represent a security risk."

It then describes the default guard. The server refuses addresses that are not publicly routable. That includes loopback, private ranges, link-local and cloud metadata endpoints such as 169.254.169.254. It checks every redirect hop the same way.

Three limits are worth knowing:

  1. DNS rebinding. The README says the guard checks addresses before each request, "so it does not protect against DNS rebinding between that check and the connection."
  2. The off switch. Adding --allow-private-ips disables the guard. Only use it when you need to read a local dev server or intranet page.
  3. Proxies. A hostname only a proxy can resolve is not checked by the server.

On robots.txt, the server obeys a site's rules when the model asks for a page through the tool. It does not apply them when a user starts the fetch through the prompt. You can disable the check with --ignore-robots-txt.

The bigger risk is not the fetch itself. Any page the model reads can contain hidden instructions. Treat fetched text as untrusted input, as our page on prompt injection through MCP tool results explains. For SSRF background, see SSRF in MCP, and for the full picture visit the MCP security center.

Alternatives

You can browse more options on our MCP server profiles hub.

Next step

Fetch is a good way to learn how a tool call works end to end. If you want a hardened version for your team, with logging and network rules, our MCP development team can scope it with you.

Frequently asked questions

Is the Fetch MCP server safe to use?

It has a sensible default guard against private and metadata addresses. The repository still calls it a reference implementation, not a production-ready solution. Use it for learning and low-risk tasks, and treat every fetched page as untrusted text.

Does the Fetch server render JavaScript?

The README does not describe a browser. It converts HTML to markdown with readabilipy, using Mozilla's Readability.js when Node.js is installed. For pages that need a real browser, look at a browser-based server instead.

Does it respect robots.txt?

Yes, for fetches the model starts through the fetch tool. Fetches a user starts through the fetch prompt skip the check. You can turn the check off with --ignore-robots-txt.

Does it cost anything?

No. It is open source under the MIT License and needs no account. You run it on your own machine with uvx, pip or Docker.

You Might Also like to Read

Get a FREE Website Audit

Enter your website and get a 20–30 page SEO, GEO, AEO & CRO audit within 24 hours. Completely free.

Don't have a site yet? Get in touch →

Ready to speak with a marketing expert?
Give us a call! (916) 866-7893

Websites Launched
1407
Websites Launched
Marketing Experts
29
Marketing Experts
Hours of Dedicated Work
204533
Hours of Dedicated Work
Irina S.Benjamin G.Jeanette M.David G.