Fetcher MCP logo

Fetcher MCP

by jae-jae

Fetches JavaScript-rendered web pages with Playwright and returns extracted Markdown or HTML, including parallel multi-URL retrieval.

Install Fetcher MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "jae-jae-fetcher-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "fetcher-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command started, but didn't respond the way we expected when we tried to talk to it.

npx -y fetcher-mcp

initialize succeeded but no response to tools/list.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 1mo ago.

Overview

The jae-jae/fetcher-mcp MCP server loads web pages in a Playwright headless browser, executes JavaScript, and returns page content as Markdown or HTML. It can extract the main readable content, limit response length, wait for additional navigation, and disable unnecessary resources. Use it for dynamic sites, content extraction, batch URL retrieval, or pages that require browser-based loading rather than simple HTTP requests. It runs locally through npx, can expose HTTP and SSE transports, and supports visible-browser debugging for manual authentication.

Use cases

  • Fetch JavaScript-rendered documentation pages
  • Extract readable article content as Markdown
  • Retrieve multiple URLs in parallel
  • Preserve complete page HTML for downstream processing
  • Log in manually before fetching protected pages

Key features

  • Playwright-based JavaScript rendering
  • Readability content extraction
  • Markdown or HTML output
  • Parallel multi-URL fetching
  • Configurable timeouts and navigation waits
  • Optional resource blocking and visible debugging

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

28/29 checks healthy over the last 77d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 6d ago via OSV.dev · fetcher-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars1.1kStargazers on the source repository.
npm downloads16kPackage downloads in the last 30 days.
Last commit9mo agoMost recent push to the default branch.
Install checkInconclusiveStarted but did not complete the MCP handshake in our test.
Directory activity8 viewsConfig copies, upvotes, and views on AllMCPs.

How Fetcher MCP works

What jae-jae/fetcher-mcp MCP server does

The jae-jae/fetcher-mcp MCP server retrieves web pages through Playwright and is intended for sites whose content depends on JavaScript execution. It can return either the page's main readable content or the broader page content. By default, extracted content is returned as Markdown; callers can request HTML instead.

The server exposes three tools:

  • fetch_url loads one URL and returns its content.
  • fetch_urls loads several URLs concurrently using multiple browser tabs and combines the results with separators.
  • browser_install installs the Chromium binary required by Playwright.

Content extraction uses a Readability-based approach to remove elements such as navigation and advertisements. Resource blocking can disable images, stylesheets, fonts, and media to reduce unnecessary loading.

How it works

Each fetch runs in a browser context rather than using a basic HTTP request. The request can specify when navigation is considered complete: load, domcontentloaded, networkidle, or commit. The default navigation timeout is 30 seconds, while an optional second navigation wait can handle redirects or verification flows.

fetch_url accepts a required url and optional controls for timeout, extraction, output type, maximum character count, media blocking, and debug mode. fetch_urls accepts a required array of URLs and supports the same fetch settings. The default behavior extracts the main content, returns Markdown, imposes no content-length limit, and disables media resources.

For sites that require an interactive login, jae-jae/fetcher-mcp MCP server can run with a visible browser window. A user can log in manually, after which the authenticated browser session is used for fetching. Debug mode can be enabled when starting the process or for an individual request.

Setup and configuration

Run the server locally with:

Terminal
npx -y fetcher-mcp

Playwright Chromium must be installed separately the first time:

Terminal
npx playwright install chromium

The documented Claude Desktop configuration starts the server over standard input/output with the npx command and the -y fetcher-mcp arguments. The project also provides a Docker image at ghcr.io/jae-jae/fetcher-mcp:latest and documents port 3000 for container deployment.

For network-based clients, start jae-jae/fetcher-mcp MCP server with --transport=http. This provides a Streamable HTTP endpoint at /mcp and an SSE endpoint at /sse; host and port can be set with --host and --port. The --debug flag displays the browser window.

Limitations and notes

A working Chromium installation is required for browser operations. Some pages may need longer timeouts, an additional navigation wait, or visible-browser interaction for verification and login steps. Intelligent extraction may omit content that is not identified as the page's main content; set extractContent to false when the complete page is needed. Set returnHtml to true when downstream processing requires HTML rather than Markdown.

It does not document API-key authentication or server-side credentials.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Fetcher MCP

Run `npx -y fetcher-mcp`, then install the required browser with `npx playwright install chromium`.

Yes. The README provides a Claude Desktop configuration that starts it with `npx` and the `-y fetcher-mcp` arguments.

Yes. It uses Playwright to execute JavaScript in a headless browser before returning page content.

Set the `returnHtml` option to `true` when calling `fetch_url` or `fetch_urls`.

Yes. Use `fetch_urls` with an array of URLs; it processes them concurrently with multiple tabs.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewFetcher MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/jae-jae-fetcher-mcp?style=directory)](https://allmcps.com/mcp/jae-jae-fetcher-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/jae-jae-fetcher-mcp"><img src="https://allmcps.com/api/badge/jae-jae-fetcher-mcp?style=directory" alt="Fetcher MCP on AllMCPs" /></a>