Fetcher MCP
An MCP server that opens pages in headless Chromium through Playwright and hands the agent the main text as Markdown, even from JavaScript-heavy sites
- 1,088 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The server visits any address the agent names and runs third-party page scripts in a browser
- With --debug and a manual login the agent reads pages under your account, and page text may carry instructions aimed at the model
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/fetcher-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The server visits any address the agent names and runs third-party page scripts in a browser
- With --debug and a manual login the agent reads pages under your account, and page text may carry instructions aimed at the model
This is third-party code. Review the repository files before installing.
What it does
Fetcher MCP loads a web page in a real browser and returns its content to the agent. Scripts on the page run before rendering, so sites whose text appears only after JavaScript runs can be read too. The Readability algorithm strips ads and navigation and keeps the main text, and Turndown converts it to Markdown. When you need the page source, the returnHtml parameter returns HTML. The server has three tools. fetch_url grabs one page, fetch_urls opens several addresses in parallel tabs and joins the answers with separators, and browser_install installs the Chromium binary when it is missing. Parameters set the timeout, the readiness moment (waitUntil), the maximum response length and a mode that blocks images, styles, fonts and media, on by default. The server starts with npx -y fetcher-mcp over stdio. The --transport=http option brings up /mcp and /sse endpoints, and the ghcr.io/jae-jae/fetcher-mcp image works for Docker. With the --debug flag a browser window opens: you can log into a site by hand, and the server then loads the page with your session.
Who it is for. For people who ask Claude or another MCP-capable agent to read a page that a plain HTTP request cannot return, such as a React site or a page behind a manual login.
Good fit when
- A page is built by scripts and a plain request returns an empty shell: Playwright runs the JavaScript and waits for the right state
- You need the content of a dozen addresses in one call: fetch_urls opens them in parallel tabs
- You want only the main text of an article in Markdown, without menus and ads
- The page sits behind a login: start the server with --debug, log in by hand and the agent reads the page inside your session
- A site is slow or checks the browser: raise timeout and turn on waitForNavigation to wait for the redirect
Not a fit when
- You need to drive a page with clicks and typed text: the server only loads and returns content, and scripted actions need a different browser tool
- You need a search query rather than a page address: search is not implemented, and the author points to a separate g-search-mcp project
- Chromium cannot be downloaded on the machine: Playwright will not run without it
- You need a guaranteed way past bot protection: the wait options help on some sites, but the server promises no bypass
Example request
Open these three documentation pages through fetcher and come back with a short comparison of the pricing. Wait until the pages are fully loaded.MCP
- Transport
- stdio, http, sse
- Authentication
- not required
Limitations
- Node.js and the Chromium browser are required: on first run execute npx playwright install chromium or call the browser_install tool.
- No keys or accounts are needed.
- By default the server blocks images, styles, fonts and media to load pages faster. For the full page pass disableMedia: false.
- HTTP mode with --host=0.0.0.0 exposes the server on the network, and the README describes no built-in authorization.
How to disable. Remove the fetcher entry from mcpServers in the client config and restart it. If the server runs in Docker, stop the container with docker stop fetcher-mcp. The downloaded Chromium stays on disk in the Playwright directory.
FAQ
How do I connect Fetcher MCP to Claude Desktop?
Add a fetcher server with the command npx and the arguments -y, fetcher-mcp to claude_desktop_config.json. The file lives in ~/Library/Application Support/Claude on macOS and %APPDATA%/Claude on Windows. Then install Chromium with npx playwright install chromium.
Can Fetcher MCP read JavaScript sites?
Yes. The server opens the page in headless Chromium through Playwright, runs the scripts and only then extracts the text. The waitUntil parameter sets the readiness moment: load, domcontentloaded, networkidle or commit.
How do I open a page that needs an account login?
Start the server with --debug or ask the agent to enable debug mode for that request. A browser window opens, you log in by hand, and the content is then loaded inside your session.
How do I run Fetcher MCP in Docker over HTTP?
Run docker run -p 3000:3000 ghcr.io/jae-jae/fetcher-mcp:latest. The server exposes /mcp for Streamable HTTP and /sse for the legacy protocol. Without Docker, npx -y fetcher-mcp --transport=http brings up the same endpoints.
Which tools does Fetcher MCP provide?
Three: fetch_url for one page, fetch_urls for parallel loading of several addresses and browser_install for installing Chromium. Shared parameters are timeout, waitUntil, extractContent, maxLength, returnHtml and disableMedia.
Discussion
No questions or reviews yet.
Related
MCP serversHyperbrowser MCP
Hyperbrowser MCP Server
The official MCP server for Hyperbrowser cloud browsers: page scraping and crawling, structured data, Bing search and three browser agents
An MCP server and Chrome extension that let the agent drive your already open browser with your logged-in sessions, all locally
Microsoft's official MCP server for driving a browser with Playwright through the accessibility tree, no screenshots needed
A Rust server that turns pages into Markdown or JSON: search, scrape, site map, crawl and PDF through MCP, a CLI and a Firecrawl-compatible API
MCP Server Playwright by Automata Labs
MCP Server Playwright
Playwright-based MCP server for browsing sites, clicking, filling forms, taking screenshots and running JavaScript in a browser
An MCP server that lets an agent drive a real browser: open pages, click and fill forms through Playwright
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Fetcher MCP (this entry) | no | not required | 1,088 | |
| Firecrawl MCP Server | yes | API key | 7,672 | Firecrawl's official server with search, site crawling and page actions, while Fetcher only loads pages in a local Chromium |
| Jina AI MCP | yes | key is optional | 893 | Jina's remote server with web search and embeddings, while Fetcher renders pages on your own machine |
| MarkItDown | yes | not required | 191,675 | converts files and documents to Markdown, while Fetcher reads live web pages |
README in short
The README opens with a list of strengths: JavaScript support, main-content extraction, HTML or Markdown output, parallel loading and bandwidth savings. The quick start boils down to one npx command and a Chromium install, followed by the HTTP and debug modes, the Claude Desktop config and Docker deployment. The features section lists the parameters of the three tools in detail, and the tips explain how to phrase requests to the agent for tricky sites. It closes with development notes and the related g-search-mcp project.