Playwright Scraper

by dennisgl

1 stars
812 downloads
Not rated
GitHub

About

Leverages Playwright and BeautifulSoup to enable robust web scraping and content extraction, converting complex JavaScript-heavy web pages into high-quality Markdown with browser automation capabilities.

Details

Author
dennisgl
Repository
dennisgl/mcp-playwright-scraper
GitHub stars
1
Downloads
812
License
Apache License 2.0
Categories
Productivity, Design, Developer Tools, Infrastructure, AI
Tags
#web

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 Scraper
    Command (node, npx, python, etc.) uvx
    Arguments
    • Argument 1 mcp-playwright-scraper

    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

Once configured in Claude Desktop, you can explicitly use the scraper with a prompt like:

Use the mcp-playwright-scraper to scrape the content from https://example.com and summarize it.

Add this to your claude_desktop_config.json:

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

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

<details>
<summary>Using pip installation</summary>

"mcpServers": {
  "mcp-playwright-scraper": {
    "command": "python",
    "args": ["-m", "mcp_playwright_scraper"]
  }
}
</details>

$ claude mcp add mcp-playwright-scraper -- python -m mcp_playwright_scraper

<details>
<summary>Development/Unpublished Servers Configuration</summary>

"mcpServers": {
  "mcp-playwright-scraper": {
    "command": "uv",
    "args": [
      "--directory",
      "/path/to/mcp-playwright-scraper",
      "run",
      "mcp-playwright-scraper"
    ]
  }
}
</details>

Add to your Zed settings.json:

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

"context_servers": [
  "mcp-playwright-scraper": {
    "command": {
      "path": "uvx",
      "args": ["mcp-playwright-scraper"]
    }
  }
],
</details>

<details>
<summary>Using pip installation</summary>

"context_servers": {
  "mcp-playwright-scraper": {
    "command": "python",
    "args": ["-m", "mcp_playwright_scraper"]
  }
},
</details>

1. Open Cursor Settings
- Navigate to Cursor Settings > Features > MCP
- Click the "+ Add New MCP Server" button
2. Configure the Server
- Name: mcp-playwright-scraper
- Type: Select stdio
- Command: Enter one of the following:

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

uvx mcp-playwright-scraper
</details>

<details>
<summary>Using pip installation</summary>

python -m mcp_playwright_scraper
</details>

scrape_to_markdown

Scrapes content from a URL and converts it to Markdown. Required parameter: url (string) - The URL to scrape. Optional parameter: verify_ssl (boolean) - Whether to verify SSL certificates (default: true).

The server implements a single tool:

- scrape_to_markdown: Scrapes content from a URL and converts it to Markdown
- Required parameter: url (string) - The URL to scrape
- Optional parameter: verify_ssl (boolean) - Whether to verify SSL certificates (default: true)

Claude Desktop / Cursor

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

{
    "mcpServers": {
        "playwright scraper": {
            "env": {},
            "args": [
                "mcp-playwright-scraper"
            ],
            "command": "uvx"
        }
    }
}

Linux

{
    "env": [],
    "args": [
        "mcp-playwright-scraper"
    ],
    "command": "uvx"
}

Macos

{
    "env": [],
    "args": [
        "mcp-playwright-scraper"
    ],
    "command": "uvx"
}

Windows

{
    "env": [],
    "args": [
        "/c",
        "uvx",
        "mcp-playwright-scraper"
    ],
    "command": "cmd"
}

mcp-playwright-scraper

A Model Context Protocol (MCP) server that scrapes web content and converts it to Markdown.

Overview

This MCP server provides a simple tool for scraping web content and converting it to Markdown format. It uses:

- Playwright: For headless browser automation to handle modern web pages including JavaScript-heavy sites
- BeautifulSoup: For HTML parsing and cleanup
- Pypandoc: For high-quality HTML to Markdown conversion

Tools

The server implements a single tool:

- scrape_to_markdown: Scrapes content from a URL and converts it to Markdown
- Required parameter: url (string) - The URL to scrape
- Optional parameter: verify_ssl (boolean) - Whether to verify SSL certificates (default: true)

Installation

Using uv (recommended)

When using uv no specific installation is needed. We will
use uvx to directly run mcp-playwright-scraper.

Using PIP

Alternatively you can install mcp-playwright-scraper via pip:

pip install mcp-playwright-scraper

After installation, you can run it as a script using:

python -m mcp_playwright_scraper

Prerequisites

- Python 3.11 or higher
- Playwright browser dependencies
- Pandoc (optional, will be automatically installed by pypandoc if possible)

After installation, you need to install Playwright browser dependencies:

playwright install --with-deps chromium

Configuration

Usage with Claude Desktop

Add this to your claude_desktop_config.json:

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

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

<details>
<summary>Using pip installation</summary>

"mcpServers": {
  "mcp-playwright-scraper": {
    "command": "python",
    "args": ["-m", "mcp_playwright_scraper"]
  }
}
</details>

Usage with Claude Code

# Basic syntax
$ claude mcp add mcp-playwright-scraper -- uvx mcp-playwright-scraper

Alternatively, with pip installation

$ claude mcp add mcp-playwright-scraper -- python -m mcp_playwright_scraper

<details>
<summary>Development/Unpublished Servers Configuration</summary>

"mcpServers": {
  "mcp-playwright-scraper": {
    "command": "uv",
    "args": [
      "--directory",
      "/path/to/mcp-playwright-scraper",
      "run",
      "mcp-playwright-scraper"
    ]
  }
}
</details>

Usage with Zed

Add to your Zed settings.json:

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

"context_servers": [
  "mcp-playwright-scraper": {
    "command": {
      "path": "uvx",
      "args": ["mcp-playwright-scraper"]
    }
  }
],
</details>

<details>
<summary>Using pip installation</summary>

"context_servers": {
  "mcp-playwright-scraper": {
    "command": "python",
    "args": ["-m", "mcp_playwright_scraper"]
  }
},
</details>

Usage with Cursor

1. Open Cursor Settings
- Navigate to Cursor Settings > Features > MCP
- Click the "+ Add New MCP Server" button
2. Configure the Server
- Name: mcp-playwright-scraper
- Type: Select stdio
- Command: Enter one of the following:

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

uvx mcp-playwright-scraper
</details>

<details>
<summary>Using pip installation</summary>

python -m mcp_playwright_scraper
</details>

Usage

Once configured in Claude Desktop, you can explicitly use the scraper with a prompt like:

Use the mcp-playwright-scraper to scrape the content from https://example.com and summarize it.

Debugging

You can use the MCP inspector to debug the server:

npx @modelcontextprotocol/inspector uvx mcp-playwright-scraper

Or if you've installed the package in a specific directory or are developing on it:

cd path/to/mcp-playwright-scraper
npx @modelcontextprotocol/inspector uv run mcp-playwright-scraper

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

Development

Building and Publishing

To prepare the package for distribution:

1. Sync dependencies and update lockfile:

uv sync

2. Build package distributions:

uv build

This will create source and wheel distributions in the dist/ directory.

3. Publish to PyPI:

uv publish

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.