Playwright Fetch MCP Server
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:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Playwright Fetch MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- 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>
bashplaywright-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"
]
}
}
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
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



