Fetch MCP server

  • MCP server
  • Official
  • Tested by us

The MCP project's reference server for reading web pages: Claude fetches a URL and gets it as Markdown, in chunks, with private addresses blocked.

On this page10 sections

Best for

  • Letting Claude Desktop read a specific web page
  • Pulling an article or docs page into a chat as clean text
  • A simple first Python-based MCP server

Quick install

Local stdio server run with uvx (Python), pip or Docker

  1. Install uv, which provides the uvx command (the README recommends it).

  2. Claude Desktop: Claude menu > Settings... > Developer > Edit Config, then add a fetch entry with command uvx and args ["mcp-server-fetch"].

  3. Quit and reopen Claude Desktop; check + > Connectors > Manage connectors.

  4. Claude Code:

    claude mcp add fetch -- uvx mcp-server-fetch

At a glance

Type
MCP server
Made by
Model Context Protocol project (official)
Tested by us
Yes
Works with
  • Claude Desktop
  • Claude Code
Sign-in needed
NoNo account or API key.
Cost
Free and open source. Pages are fetched from your own computer.
License
MIT
Registry name
io.github.modelcontextprotocol/server-fetch
Facts checked

Fetch gives Claude one simple ability: open a URL and read it. You paste a link, Claude calls the server, and the page comes back as Markdown, which is cleaner for Claude to read than raw HTML. It is one of the seven reference servers the MCP steering group still maintains.

What it does (plain English)

The server has one tool, fetch, plus a matching prompt. The tool takes four inputs:

InputDefaultWhat it does
urlrequiredThe page to fetch
max_length5000Maximum characters returned
start_index0Where to start, so Claude can read long pages in chunks
rawfalseReturn raw content instead of Markdown

Long pages are cut at max_length, and the response tells Claude which start_index to use next, so it can keep reading until it finds what it needs.

Its built-in rules:

  • Private addresses are refused by default. It will not fetch localhost, home-network addresses or cloud metadata addresses such as 169.254.169.254, and it checks every redirect. Add --allow-private-ips to reach a local dev server.
  • robots.txt is obeyed when the model asks for a page, but not when you trigger the fetch yourself through the prompt. --ignore-robots-txt turns this off.
  • It identifies itself with a ModelContextProtocol/1.0 user agent unless you set --user-agent.
  • Proxies are supported through --proxy-url or the standard proxy environment variables.

Is it for you?

Pick it if you use Claude Desktop with local servers and want Claude to read specific pages you point it at: documentation, an article, a product page. It is small, has no API key and is easy to understand.

It is not a search engine and not a browser. It cannot click, log in or run a page’s JavaScript. Claude’s built-in web search in claude.ai, or a browser automation server, covers those jobs.

What you can do with it

  1. Summarize a page. “Fetch https://example.com/pricing and list the plans and prices.”
  2. Read docs in chunks. “Read this changelog page from the start and tell me what changed in version 3.” Claude pages through with start_index.
  3. Compare pages. “Fetch these two product pages and compare their return policies.”
  4. Test your local site. With --allow-private-ips added: “Fetch http://localhost:4321 and check the page title.”

How to set it up

Claude Desktop

  1. Install uv so the uvx command works (the README links to uv’s install guide). Alternatives: pip install mcp-server-fetch, or Docker.
  2. Open the Claude menu > Settings… > Developer > Edit Config.
  3. Add the server:
{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": ["mcp-server-fetch"]
    }
  }
}

With Docker instead: "command": "docker", "args": ["run", "-i", "--rm", "mcp/fetch"]. 4. Fully quit and reopen Claude Desktop, then check + > Connectors > Manage connectors. 5. On Windows, the README suggests setting PYTHONIOENCODING if you see timeouts.

Claude Code

claude mcp add fetch -- uvx mcp-server-fetch

Then claude mcp list should show fetch as Connected.

What we tested

On 2026-10-18 we ran uvx mcp-server-fetch (version 2026.10.10) and called it directly. It listed one tool, fetched https://modelcontextprotocol.io/ with max_length 600 and returned Markdown with a note to continue from index 600. A request to http://127.0.0.1:8080/ was refused as “not a public address”. claude mcp add in Claude Code 2.1.302 registered it and claude mcp list reported Connected. Evidence: research/tests/fetch-mcp-server.txt.

Watch out for

  • The README’s own caution. The server “can access local/internal IP addresses and may represent a security risk.” The default guard helps, but the README notes it does not protect against DNS rebinding. Do not add --allow-private-ips unless you need it.
  • Prompt injection. A web page can contain text written to manipulate an AI. Treat instructions that appear in fetched content as data, and watch what Claude proposes to do next.
  • SDK note. The README says the server requires MCP Python SDK 1.x and a port to SDK 2.0 is in progress. uvx handles this for you.
  • Reference status. The MCP repo calls its servers educational examples rather than production-ready solutions.

Brave Search: status

People often pair fetch with the Brave Search reference server. That server is archived: the MCP servers README lists it under archived servers and says it was replaced by Brave’s official server, published on npm as @brave/brave-search-mcp-server (repository brave/brave-search-mcp-server). We did not open or test it for this page.

Alternatives

  • Brave’s official Brave Search MCP server for web search results rather than single pages.
  • Firecrawl or Exa MCP servers for crawling and search at larger scale.
  • Filesystem MCP server to save what Claude reads into local files.

Sources

Facts checked against these sources on . Page updated . How we check facts

  1. github.com/modelcontextprotocol/servers (opens in a new tab)
  2. github.com/modelcontextprotocol/servers/tree/main/src/fetch (opens in a new tab)
  3. modelcontextprotocol.io/docs/develop/connect-local-servers (opens in a new tab)
  4. code.claude.com/docs/en/mcp (opens in a new tab)
  • Context7

    by Upstash

    • MCP server
    • Official

    Context7 feeds Claude current, version-specific library docs and code examples, so it stops writing code against APIs that no longer exist.

    Works with
    • Claude.ai
    • Claude Desktop
    • Claude Code
  • Notion MCP

    by Notion

    • MCP server
    • Official

    Notion's hosted MCP server lets Claude search your workspace, read pages as Markdown, and create or update pages and databases you can access.

    Works with
    • Claude.ai
    • Claude Desktop
    • Claude Code
  • Claude in Chrome

    by Anthropic

    • Connector
    • Official

    Anthropic's Chrome extension lets Claude click, type and read pages in your own signed-in browser, from a side panel, Claude Desktop or Claude Code.

    Works with
    • Claude.ai
    • Claude Desktop
    • Claude Code
  • Exa MCP Server

    by Exa

    • Connector
    • Official

    Exa's hosted MCP server adds Exa web search and clean page fetching to Claude, with an optional research agent for multi-step lookups.

    Works with
    • Claude.ai
    • Claude Desktop
    • Claude Code