
Fetch MCP Server: Setup for Claude, Cursor and Other Apps
Lets Claude, Cursor and other assistants open a web page and read it as clean markdown.
Fetch is a small server from the Model Context Protocol project. It lets your assistant read any web page you point it at, turns the page into markdown, and can read long pages in chunks. It runs on your computer and needs no account or API key. By default it refuses private network addresses and pages that robots.txt blocks.
Good for
- Anyone who wants Claude to read a link instead of pasting the text
- Developers who need an assistant to read docs pages while they code
- Researchers who want pages summarized without leaving their chat
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install fetch MCP
Claude Code
- 1
Copy this prompt.
Add the fetch MCP server to Claude Code. Run this command: claude mcp add fetch -- uvx mcp-server-fetch Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires uv (Python).
Built from the package data we hold. Not yet tested by us.
Tools
Opens a web page and returns its text as markdown
Downloads the page at a web address and turns it into markdown your assistant can read. It returns the first 5,000 characters by default, and the assistant can ask for the next part or for the raw page.
Try: “Read https://modelcontextprotocol.io/docs and tell me what the three main sections are.”
Network ·
fetch
Read from the source code
Permissions
low risk · 4 things to watch · 3 advisories
Low risk
It only reads web pages, and it reaches out from your computer to whatever address the assistant asks for. Leave the private-address check on unless you really need local pages.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
The address check has two known gaps
The README says it does not stop DNS rebinding between the check and the connection, and it cannot check a hostname that only a proxy can resolve. Do not rely on it as a security boundary. github.com
It may start Node.js when it is installed
With Node.js on your PATH it runs Readability.js in a subprocess that has no timeout, so a hang can stall a call. The no-readability-js option keeps it in pure Python. github.com
Private network addresses are blocked by default
It refuses local, private and cloud metadata addresses, and checks every redirect. Adding the allow-private-ips option turns this off, so leave it out unless you need an intranet page. github.com
It obeys robots.txt for the assistant's requests
Fetches the assistant starts are checked against the site's robots.txt, and the check is skipped for the user-started prompt. The ignore-robots-txt option disables it. github.com
Security advisories
3 known advisories, all fixed in a newer version.
- fetch: private-address guard bypass via IDNA hostnames (check and connect resolve different names)medium · Fixed in 2026.10.24 · GHSA-v38p-wf49-hx2j
- fetch server: SSRF guard treats the well-known NAT64 prefix 64:ff9b::/96 as public, so a metadata address is reachable on NAT64/DNS64 egresslow · Fixed in 2026.10.24 · GHSA-66qx-2266-pmj6
- robots.txt enforcement bypass via HTTP redirects in mcp-server-fetchlow · Fixed in 2026.10.24 · GHSA-3jqg-r5pp-rmp2
Technical details
| Turning on read-only | The single tool is marked read-only in the README, so there is nothing to switch off. |
|---|---|
| Talks to | Any public web address the assistant asks it to fetch |
| Sign-in and keys | No credentials needed. |
Questions
Does the Fetch MCP server need an API key?
No. It runs on your computer with no account, sign-in or API key. The PyPI package is MIT licensed.
Can Fetch read pages on my local network?
Not by default. It refuses loopback, private and cloud metadata addresses, including after redirects. The allow-private-ips option in the config turns that off.
Does Fetch obey robots.txt?
Yes, for requests the assistant makes through the tool. A page that robots.txt blocks, or a robots.txt that cannot be read, makes the fetch fail. The ignore-robots-txt option turns this off.
Why does Fetch cut off long pages?
It returns 5,000 characters by default. The assistant can ask for a longer limit or continue from a later character position, so it can read a long page in chunks.
Does Fetch need Node.js or Python?
It needs uv, which runs the Python package for you. Node.js is optional: if it is installed, the server uses a more robust page cleaner.
Which apps does Fetch work in?
The README gives setup for Claude and VS Code. Any app that can run a local server with a command should work the same way, so use the install box above for your app.
Can Fetch run in Docker?
Yes. The README documents a Docker image and shows the config for it. The install box above has the uv command, which is simpler if you already have uv.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
mcp-server-fetch- Registry
- PyPI
- Transport
- stdio
- Auth
- None
- Version
- 2026.10.28
- License
- MIT
- Last commit
- Oct 29, 2026
- Open issues
- 26
- Listed in
- Docker MCP Catalog
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 1Hide
- Fetch MCP Server README · github.com