All MCP Servers
Web & SearchOfficial referencepypi1 toolsA · 93

Fetch MCP server

MIT

Fetch web pages and convert them to markdown for efficient LLM consumption, with chunked reading for long documents.

At a glance

Fetch is the official MCP reference server in the Web & Search category. It runs locally over stdio via `uvx mcp-server-fetch`, and declares no required credentials. It exposes 1 tool, including fetch. It scores A (93/100) on the MCP Skills Hub health score as of Oct 27, 2026.

Source 92kGitHub stars

One-click install

Opens your editor and pre-fills the config. Your editor will ask before adding it.

How to install Fetch in your AI client

Setup for Claude Code, Claude Desktop, Cursor, Codex, Windsurf, Cline and VS Code — copy-paste ready.

How to install Fetch in Claude CodeAnthropic's agentic CLI

  1. Add the server

    bash
    claude mcp add fetch -- uvx mcp-server-fetch
  2. Verify it's connected

    bash
    claude mcp list
  3. Sharing it with your team?

    Add `--scope project` to write it to .mcp.json in the repository root, which you can commit (with the secrets left as environment variables).

  4. Use it in a session

    Ask Claude to use the tools this server exposes (e.g. fetch). It discovers them automatically.

What tools does Fetch expose? (1)

Taken from the project's README — the server itself was not queried, so check its docs for the exact schemas.

  • fetchFetches a URL from the internet and extracts its contents as markdown.

What the code can do

Source analysis currently covers npm packages only. This server ships as a Python package, which needs a different parser.

Before you install

Signals gathered from the source repo and package registry — not a safety verdict.

What it can reach

  • Runs code on your machine — Executes as a local process with your user's permissions, including filesystem access.
  • Downloads at launch — The package is fetched from its registry each run unless you pin a version.
  • Last commit today — Actively maintained.
  • 92k GitHub stars — Community adoption signal.

Client compatibility

Claude Code: NativeClaude Desktop: NativeCursor: NativeCodex CLI: NativeWindsurf: NativeCline: NativeVS Code: Native

Health score

A · 93

Maintenance, adoption, transparency and packaging — not a safety audit. How this is calculated

  • Maintenance30%100%

    Last commit 0 days ago.

  • Adoption20%100%

    91630 stars.

  • Transparency20%100%

    4/4: ✓ public source repo, ✓ declared license, ✓ documentation, ✓ discoverable tool list.

  • Provenance15%100%

    Official reference implementation, maintained by the MCP steering group.

  • Packaging15%50%

    No pinned version — installs resolve to whatever is latest at launch.

Documentation

Full README

Fetch MCP Server

A Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.

Source: https://github.com/modelcontextprotocol/servers/tree/main/src/fetch

Requires MCP Python SDK 2.x (mcp>=2.3,<3).

[!CAUTION] This server can access local/internal IP addresses and may represent a security risk. Exercise caution when using this MCP server to ensure this does not expose any sensitive data. By default the server refuses to fetch private, loopback, link-local and other non-public addresses, including cloud metadata endpoints such as 169.254.169.254, and checks every redirect hop the same way. The --allow-private-ips argument turns this guard off; see Customization - Private addresses. The guard checks the addresses a hostname resolves to before each request, so it does not protect against DNS rebinding between that check and the connection, and a hostname the server cannot resolve itself (one only a proxy can resolve) is not checked.

The fetch tool will truncate the response, but by using the start_index argument, you can specify where to start the content extraction. This lets models read a webpage in chunks, until they find the information they need.

Available Tools

  • fetch - Fetches a URL from the internet and extracts its contents as markdown.
  • url (string, required): URL to fetch
  • max_length (integer, optional): Maximum number of characters to return (default: 5000)
  • start_index (integer, optional): Start content from this character index (default: 0)
  • raw (boolean, optional): Get raw content without markdown conversion (default: false)
  • Annotations: readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true (it only reads, and it reaches arbitrary hosts on the internet)

Prompts

  • fetch
  • Fetch a URL and extract its contents as markdown
  • Arguments:
  • url (string, required): URL to fetch

Errors

  • A failed fetch (a robots.txt refusal, an unreachable page, an HTTP error status, a refused private address, an unusable proxy setting) and arguments that do not match the tool's schema are returned as a tool result with isError: true, whose text starts Error executing tool fetch: and says what went wrong, so the model can read it and decide what to do.
  • Calling a tool the server does not have is a JSON-RPC protocol error, -32602 (Unknown tool: <name>), as the specification requires. So is getting a prompt it does not have (Unknown prompt: <name>), or the fetch prompt without its url (URL is required).
  • When the fetch prompt's fetch fails, the prompt still returns: its message holds the reason the fetch failed.

The server is built on the MCP Python SDK's high-level MCPServer: the tool and the prompt are decorated functions, and their type hints and field descriptions are the input schema and the prompt's arguments.

Protocol versions

Excerpt — the full document is on GitHub.

Maintain Fetch? Add a badge to your README

Shows its health grade, and links readers to install steps for every client.

markdown
[![Fetch on MCP Skills Hub](https://mcp-skills-hub.vercel.app/badge/official-fetch)](https://mcp-skills-hub.vercel.app/mcps/official-fetch)

Catalog data refreshed . Something wrong? Report it.