Fetch MCP server
Last verified: 2026-09
Fetch a URL and turn the page into readable text.
Official reference Browser & search Needs a secret Claude Desktop, Cursor, Windsurf, Claude Code, VS Code
What it does
Fetches a URL and returns readable text. No JavaScript, no cookies, no login. Use it when the page is public HTML. Use Playwright or Puppeteer when the content only appears after the page runs JS.
It sits in Browser & search: Three different jobs get mixed up here.
Good for
- Paste a docs URL and get the main text without a browser.
- Read a public changelog or RFC the model has not seen.
- Pull one HTML article into the chat as markdown-ish text.
- Check a status page that is public and does not need login.
Tools
- fetch — GET a URL and extract the main text.
Config (Claude Desktop / Cursor / Windsurf)
Paste the JSON below. Same mcpServers shape. Replace placeholder paths and secrets.
Windows paths look like C:\\Users\\you\\project, not /path/to.
Host-side steps →
Claude Desktop
| OS | Config file |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json
(usually C:\Users\<you>\AppData\Roaming\Claude\) |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Cursor
| Scope | macOS / Linux | Windows |
|---|---|---|
| This project | .cursor/mcp.json in the repo root | |
| This user | ~/.cursor/mcp.json |
%USERPROFILE%\.cursor\mcp.json |
Windsurf
| OS | Config file |
|---|---|
| macOS / Linux | ~/.codeium/windsurf/mcp_config.json |
| Windows | %USERPROFILE%\.codeium\windsurf\mcp_config.json |
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": [
"mcp-server-fetch"
],
"env": {
"USER_AGENT": "AIKetra-MCP/1.0"
}
}
}
}
Windsurf remote MCP: use serverUrl instead of url if the block below is HTTP.
One-liner: uvx mcp-server-fetch
Secrets it wants: optional USER_AGENT
How to get started
- Add the JSON below. No API key.
- Ask the model to fetch a specific public URL and summarize it.
- Set USER_AGENT if a site blocks the default client.
Access risk
The model chooses the URL. That can hit internal hostnames if the machine can reach them (SSRF). Do not run it on a box that can see staging or metadata endpoints you care about.
When to skip it
Skip it for search (Brave / Exa / Tavily) or for logged-in / JS-heavy apps (Playwright).
Instead: Brave Search, Playwright, Firecrawl.
Vs alternatives
| Server | Official? | Needs a secret? | Best for |
|---|---|---|---|
| Fetch | Yes | Yes | Fetch a URL and turn the page into readable text. |
| Brave Search | Yes | Yes | Web search via the Brave Search API. |
| Playwright | No | No | Microsoft's browser automation MCP for Chromium, Firefox, and WebKit. |
| Firecrawl | No | Yes | Crawl and scrape sites into clean markdown. |
More in Browser & search
FAQ
Does Fetch run JavaScript?
No. No cookies, no login. If the content only appears after the page runs JS, use Playwright or Puppeteer.
Can it hit localhost or staging?
Yes, from your laptop — that is SSRF. Do not run it on a box that can see internal metadata or admin UIs.
Fetch or Firecrawl?
One known public URL → Fetch, no key. Multi-page crawl or cleaner extraction → Firecrawl.
Do I need an API key?
No. Optional USER_AGENT only.