fetcher
MCP server for fetch web page content using Playwright headless browser.
claude mcp add --transport stdio jae-jae-fetcher-mcp npx -y fetcher-mcp
How to use
Fetcher MCP runs a headless Playwright-based browser to retrieve and intelligently extract content from web pages. It supports both HTML and Markdown outputs, making it suitable for downstream content pipelines, documentation generation, or CMS ingestion. The server can fetch a single URL or multiple URLs in parallel and can optimize resources by blocking unnecessary assets. Use the included fetch_url for individual page extraction, fetch_urls for batch processing, and browser_install to ensure the required Chromium binary is present. You can access both modern MCP and legacy SSE endpoints via the HTTP transport configuration when started with the appropriate flags.
To use, start the MCP server with npx, specify transport if needed, and invoke the provided endpoints. For example, running with HTTP transport exposes a Streamable HTTP endpoint at /mcp and an SSE endpoint at /sse. You can also enable a debug browser window to troubleshoot rendering by using the --debug option or the equivalent prompt-style instruction during a fetch operation. The included fetch_urls tool enables parallel fetching for improved throughput when handling large URL lists.
How to install
Prerequisites:
- Node.js (and npm/yarn) installed on your system
- Basic command-line usage familiarity
Install and run (local):
- Install Node.js from https://nodejs.org/ if not already installed.
- Run the MCP server using npx (no local installation required):
npx -y fetcher-mcp
To ensure Playwright can launch Chromium (required by the server for rendering JS-heavy pages):
npx playwright install chromium
Transport options:
- HTTP transport (default):
npx -y fetcher-mcp --log --transport=http --host=0.0.0.0 --port=3000
Endpoints after startup:
- /mcp — Streamable HTTP endpoint (modern MCP protocol)
- /sse — SSE endpoint (legacy MCP protocol)
Docker deployment (optional):
# Pull and run the image exposing port 3000
docker run -p 3000:3000 ghcr.io/jae-jae/fetcher-mcp:latest
For production deployments, you can use Docker Compose with the provided example in the README as a starting point.
Additional notes
Tips and notes:
- The server exposes two endpoints: /mcp (HTTP) and /sse (SSE). Use whichever protocol your client supports.
- The fetch_url tool supports options like timeout, waitUntil, extractContent, maxLength, returnHtml, waitForNavigation, navigationTimeout, disableMedia, and debug. These can be combined to tailor content extraction and performance.
- The fetch_urls tool enables parallel batch retrieval and returns aggregated results with clear page boundaries.
- To reduce bandwidth, the server automatically blocks non-essential resources such as images, stylesheets, and fonts by default (configurable via parameters).
- If you encounter anti-bot challenges, you can enable waitForNavigation and extended timeouts, or run in debug mode to inspect the automated browser session.
- Browser installation is automatic via browser_install if needed; ensure chromium dependencies are satisfied on your host if you encounter installation errors.
- Claude Desktop configuration samples are provided in the README under Configuration MCP for integration with Claude.
Related MCP Servers
mcp -browserbase
Allow LLMs to control a browser with Browserbase and Stagehand
CanvasMCPClient
Canvas MCP Client is an open-source, self-hostable dashboard application built around an infinite, zoomable, and pannable canvas. It provides a unified interface for interacting with multiple MCP (Model Context Protocol) servers through a flexible, widget-based system.
docmole
Dig through any documentation with AI - MCP server for Claude, Cursor, and other AI assistants
obsidian
MCP server for Obsidian vault management - enables Claude and other AI assistants to read, write, search, and organize your notes
GameMaker
GameMaker MCP server for Cursor - Build GM projects with AI
xgmem
Global Memory MCP server, that manage all projects data.