Get the FREE Ultimate OpenClaw Setup Guide →

fetcher

MCP server for fetch web page content using Playwright headless browser.

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
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):

  1. Install Node.js from https://nodejs.org/ if not already installed.
  2. 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

Sponsor this space

Reach thousands of developers