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.
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
Add the server
bashclaude mcp add fetch -- uvx mcp-server-fetchVerify it's connected
bashclaude mcp listSharing 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).
Use it in a session
Ask Claude to use the tools this server exposes (e.g. fetch). It discovers them automatically.
How to install Fetch in Claude DesktopDesktop app (MCP config)
Open your MCP config
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this server
json{ "mcpServers": { "fetch": { "command": "uvx", "args": [ "mcp-server-fetch" ] } } }Restart Claude Desktop
The tools appear under the 🔌 menu once the app reloads.
How to install Fetch in CursorAI-first code editor
Create / edit .cursor/mcp.json in your project
json{ "mcpServers": { "fetch": { "command": "uvx", "args": [ "mcp-server-fetch" ] } } }Enable it
Cursor Settings → MCP → toggle the server on. Tools become available to the Composer/Agent.
How to install Fetch in Codex CLIOpenAI coding agent
Add to ~/.codex/config.toml
toml[mcp_servers.fetch] command = "uvx" args = ["mcp-server-fetch"]Run Codex
Codex loads MCP servers from config.toml on startup and exposes their tools to the agent.
How to install Fetch in WindsurfCodeium's agentic IDE
Edit ~/.codeium/windsurf/mcp_config.json
json{ "mcpServers": { "fetch": { "command": "uvx", "args": [ "mcp-server-fetch" ] } } }Reload
Windsurf → Cascade → refresh MCP servers. Cascade can now call the tools.
How to install Fetch in ClineVS Code autonomous agent
Open Cline → MCP Servers → Configure
Adds to cline_mcp_settings.json.
Add the server
json{ "mcpServers": { "fetch": { "command": "uvx", "args": [ "mcp-server-fetch" ] } } }
How to install Fetch in VS CodeCopilot / MCP support
Create .vscode/mcp.json
json{ "servers": { "fetch": { "type": "stdio", "command": "uvx", "args": [ "mcp-server-fetch" ] } } }Start it
VS Code shows a ▶ Start action above the server entry. Agent mode (Copilot Chat) can then use the tools.
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
Health score
A · 93Maintenance, 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 READMEFetch 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 fetchmax_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 startsError 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 thefetchprompt without itsurl(URL is required). - When the
fetchprompt'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.
Alternatives to Fetch
- Yab, Yet Another BrowserA · 87Your own signed-in Mac browser for any agent: open, read and act in tabs. Local and free.
- NeonA · 93Official Neon MCP server for managing Neon projects and Lakebase Postgres databases.
- Apple-rag MCPA · 89Apple developer docs and WWDC transcripts with RAG retrieval and Jev relevance ranking.
- korea-realtyB · 73Korean real estate: court auctions, 10M+ MOLIT records, subscription notice facts, loan/DSR rules
Maintain Fetch? Add a badge to your README
Shows its health grade, and links readers to install steps for every client.
[](https://mcp-skills-hub.vercel.app/mcps/official-fetch)Catalog data refreshed . Something wrong? Report it.