The simplest web tool that matters — fetch any URL and get model-ready markdown back.
Fetch is the smallest useful web server in the MCP ecosystem: one tool that takes a URL, retrieves the page, and returns its content converted to markdown. No index, no API key, no crawling — just "go read this page for me," done properly.
The markdown conversion is the quietly important part. Raw HTML is a terrible input for language models — navigation chrome, scripts and markup noise eat tokens and bury the content. Fetch strips pages down to headings, paragraphs, lists and links, which typically shrinks a page to a fraction of its raw size while keeping everything the model actually needs. There's also a max_length and start_index mechanism for reading long pages in chunks, so a 20,000-word doc doesn't blow the context window in one gulp.
Its natural habitat is link-driven work: paste a documentation page and ask for an implementation; drop a blog post and ask for the three key claims; give it a changelog and ask what breaks your code. Paired with a search server (Brave, say), it completes the loop — search finds the pages, Fetch reads them.
Honest limitations: it does plain HTTP fetching, so JavaScript-rendered SPAs may come back thin — that's browser-automation territory (Playwright) or crawler territory (Firecrawl). It can also fetch internal URLs reachable from your machine, so treat it accordingly on sensitive networks. Within its lane, it's the highest value-per-kilobyte server you can install, and for many people the correct first MCP server, full stop.
max_length truncates silently, and a model handed a cut-off document will summarise it as if it were the whole thing — walk forward with start_index instead.raw option returns unconverted HTML. Reach for it when the markdown conversion mangles a table or you genuinely need the markup; otherwise it's just tokens.localhost, link-local metadata addresses and internal hostnames are all in reach. The robots.txt override flag exists for sites you control, not as a general escape hatch.Paste any article, doc page or README and work with its actual content.
A search server finds candidates; Fetch reads the winners in full.
Chunked fetching walks through big pages without flooding the context window.
| Tool | What it does |
|---|---|
| fetch | Fetch a URL and return its content as markdown, with chunked reading via max_length and start_index |
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}Python 3.10+ with uv. No accounts or keys.
Industrial-strength web extraction — render, scrape, crawl and search entire sites into clean markdown.
Puppeteer-powered browser control that drives pages from the accessibility tree instead of pixels.
Search built for AI, not humans — semantic web search that returns model-ready content, plus code context.
Answers, not links — delegate questions to Perplexity's search-grounded models and get cited responses back.
Put 6,000+ pre-built scrapers at your assistant's fingertips through one MCP endpoint.
Independent-index web search for assistants — fresh results without the Google API maze.