# Fetch [Verified] [Health: Active]

**Category:** 🔎 Search & Data Extraction  
**Repository:** https://github.com/modelcontextprotocol/servers/tree/main/src/fetch  
**GitHub Stars:** 91819  
**Views:** 9  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/fetch

## Description
Web content fetching and conversion for efficient LLM usage.

## Tools
Capabilities this server exposes over MCP:

- **fetch** — Fetches a URL from the internet and extracts its contents as markdown.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "fetch": {
    "command": "uvx",
    "args": ["mcp-server-fetch"]
  }
}
```

## Documentation

## What Fetch MCP server does

Fetch MCP server retrieves content from URLs on the internet and presents it to an MCP-compatible client. Its primary `fetch` tool converts HTML into markdown so language models can work with page text more efficiently. A matching `fetch` prompt is also available for requesting a URL and extracting its contents.

The tool is read-only and can reach arbitrary internet hosts. It is suited to agents that need to inspect documentation, articles, public reference pages, or other web resources without a separate site-specific integration.

## How it works

The required `url` argument identifies the page to retrieve. Results are limited to 5,000 characters by default; `max_length` changes that limit, while `start_index` begins extraction at a later character position. Agents can use successive requests with different offsets to read longer pages in sections. Set `raw` to true to receive the response without markdown conversion.

Fetch speaks MCP over stdio and supports both the 2025-11-25 initialization flow and the newer 2026-07-28 discovery flow. Tool results report fetch failures, schema errors, refused addresses, HTTP failures, robots.txt refusals, and unusable proxy settings as errors that the model can inspect.

## Setup and configuration

The recommended launch method uses `uvx`, which runs `mcp-server-fetch` without a separate package installation. Alternatively, install the package with pip and start it with `python -m mcp_server_fetch`. A Docker image is also available as `mcp/fetch`.

Claude Desktop configurations use the `fetch` server name with `uvx`, Python, or Docker. VS Code supports the same launch choices through its MCP configuration, either in user settings or a workspace `.vscode/mcp.json` file. Node.js is optional and enables a different HTML simplifier; it is not required for the basic setup.

## Tools and capabilities

- Fetch a URL and extract its contents as markdown.
- Return raw content instead of converted markdown.
- Limit response size with `max_length`.
- Read truncated pages incrementally using `start_index`.
- Respect robots.txt rules for model-initiated tool requests by default.
- Check redirect destinations and robots.txt hosts for non-public addresses.

## Limitations and notes

By default, requests to loopback, private, link-local, cloud metadata, and other non-globally routable addresses are blocked. The `--allow-private-ips` argument disables this protection for use cases such as development servers or intranet pages, but doing so can expose sensitive internal data. The address check occurs before requests and redirects, yet it cannot prevent every DNS rebinding scenario.

Tool fetches obey robots.txt by default, and failures to retrieve or interpret a site’s rules can cause the request to be refused. Add `--ignore-robots-txt` to the launch arguments to disable that behavior. The server requires the MCP Python SDK 2.x, within the `mcp>=2.3,<3` range.

_Full upstream README: https://allmcps.com/mcp/fetch/readme_

