Playwright Fetch MCP Server

by ThreatFlux

4 449 downloads Not rated yet MIT
GitHub

About

A Model Context Protocol server that uses Playwright browser automation to fetch and extract JavaScript-rendered web content. It converts HTML to clean markdown for easier consumption by large language models. Created by Wyatt Roersma.

Details

License
MIT

Explore

- Browser Automation: Uses Playwright to render web pages with full JavaScript support
- Content Extraction: Automatically identifies and extracts main content areas from web pages
- Markdown Conversion: Converts HTML to clean, readable markdown
- Pagination Support: Handles large content through pagination
- Robots.txt Compliance: Respects robots.txt directives for autonomous fetching
- Proxy Support: Allows routing requests through a proxy server
- Docker Ready: Available as pre-built Docker images via Docker Hub and GitHub Container Registry

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Playwright Fetch MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

- Python 3.13.2 or newer
- uv package manager
- Playwright browsers installed

uv pip install git+https://github.com/ThreatFlux/playwright-fetch.git

uv pip exec playwright install

Alternatively, clone the repository and install:

git clone https://github.com/ThreatFlux/playwright-fetch.git
cd playwright-fetch
uv pip install -e .

Add to your Claude settings:

<details>
<summary>Using uvx</summary>

json
"mcpServers": {
"playwright-fetch": {
"command": "uvx",
"args": ["mcp-server-playwright-fetch"]
}
}
</details>

<details>
<summary>Using docker</summary>

json
"mcpServers": {
"playwright-fetch": {
"command": "docker",
"args": ["run", "-i", "--rm", "threatflux/playwright-fetch"]
}
}
</details>

For manual installation, add the following JSON block to your User Settings (JSON) file in VS Code.

<details>
<summary>Using uvx</summary>

json
{
"mcp": {
"servers": {
"playwright-fetch": {
"command": "uvx",
"args": ["mcp-server-playwright-fetch"]
}
}
}
}
</details>

<details>
<summary>Using Docker</summary>

json
{
"mcp": {
"servers": {
"playwright-fetch": {
"command": "docker",
"args": ["run", "-i", "--rm", "threatflux/playwright-fetch"]
}
}
}
}
</details>

bash

playwright-fetch

Fetches a URL using Playwright browser automation and extracts its contents as markdown.

url

(string, required): URL to fetch

max_length

(integer, optional): Maximum number of characters to return (default: 5000)

start_index

(integer, optional): Start content from this character index (default: 0)

raw

(boolean, optional): Get raw content without markdown conversion (default: false)

wait_for_js

(boolean, optional): Wait for JavaScript to execute (default: true)

- playwright-fetch - Fetches a URL using Playwright browser automation and extracts its contents as markdown.
- url (string, required): URL to fetch
- max_length (integer, optional): Maximum number of characters to return (default: 5000)
- start_index (integer, optional): Start content from this character index (default: 0)
- raw (boolean, optional): Get raw content without markdown conversion (default: false)
- wait_for_js (boolean, optional): Wait for JavaScript to execute (default: true)

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "playwright fetch mcp server": {
            "playwright-fetch": {
                "command": "uv",
                "args": [
                    "pip",
                    "install",
                    "git+https://github.com/ThreatFlux/playwright-fetch.git"
                ]
            }
        }
    }
}

McpServers

{
    "playwright-fetch": {
        "command": "uv",
        "args": [
            "pip",
            "install",
            "git+https://github.com/ThreatFlux/playwright-fetch.git"
        ]
    }
}

GitHub release (latest by date)
CI
codecov
License: MIT
Python Version
Playwright
MCP
Code style: black

A Model Context Protocol server that provides web content fetching capabilities using Playwright for browser automation. This server enables LLMs to retrieve and process JavaScript-rendered content from web pages, converting HTML to markdown for easier consumption.

Author

Created by Wyatt Roersma with assistance from Claude Code.

Key Features

- Browser Automation: Uses Playwright to render web pages with full JavaScript support
- Content Extraction: Automatically identifies and extracts main content areas from web pages
- Markdown Conversion: Converts HTML to clean, readable markdown
- Pagination Support: Handles large content through pagination
- Robots.txt Compliance: Respects robots.txt directives for autonomous fetching
- Proxy Support: Allows routing requests through a proxy server
- Docker Ready: Available as pre-built Docker images via Docker Hub and GitHub Container Registry

Available Tools

- playwright-fetch - Fetches a URL using Playwright browser automation and extracts its contents as markdown.
- url (string, required): URL to fetch
- max_length (integer, optional): Maximum number of characters to return (default: 5000)
- start_index (integer, optional): Start content from this character index (default: 0)
- raw (boolean, optional): Get raw content without markdown conversion (default: false)
- wait_for_js (boolean, optional): Wait for JavaScript to execute (default: true)

Prompts

- playwright-fetch
- Fetch a URL using Playwright and extract its contents as markdown
- Arguments:
- url (string, required): URL to fetch

Requirements

- Python 3.13.2 or newer
- uv package manager
- Playwright browsers installed

Installation

1. Install with uv (recommended)

```bash
uv pip install git+https://github.com/ThreatFlux/playwright-fetch.git

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.