Skip to main content

A MCP server with playwright fetch tools

Project description

playwright-mcp-fetch

Current version: 0.1.4

This tool provides a Model Context Protocol (MCP) server for fetching content from websites and converting it to different formats using Playwright.

Requirements

  • Python 3.10 or higher

Features

  • fetch_html: Fetch the raw HTML content from a website
  • fetch_markdown: Fetch content from a website and convert it to Markdown format
  • fetch_txt: Fetch and return plain text content from a website (HTML tags removed)
  • fetch_json: Fetch and parse JSON content

Installation

From Source

git clone https://github.com/kevinwatt/playwright-mcp-fetch.git
cd playwright-mcp-fetch
pip install -e .

Install Dependencies

pip install -r requirements.txt
# Install Playwright browsers
playwright install

Usage

Run as stdio MCP Server

playwright-mcp-fetch

Run as SSE MCP Server

# Run with the SSE transport
playwright-mcp-fetch-sse

This will start an HTTP server providing the following endpoints:

  • GET /: Server status page
  • GET /sse: SSE connection endpoint
  • POST /api/list-tools: List available tools
  • POST /api/call-tool: Call a tool

Environment Variables

  • PORT: HTTP server port (default: 3000)
  • TRANSPORT_TYPE: Transport type, either stdio or sse (default: stdio)
  • fetch_html: Whether to enable the fetch_html tool, either Enable or Disable (default: Disable)

MCP Client Configuration

To use this server in an MCP client, use the following configuration:

SSE Transport

{
  "mcpServers": {
    "fetch-tools": {
      "enabled": true,
      "transport": "sse",
      "url": "http://localhost:3000/sse"
    }
  }
}

stdio Transport

{
  "mcpServers": {
    "fetch-tools": {
      "enabled": true,
      "transport": "stdio",
      "command": "uvx",
      "args": ["playwright-mcp-fetch"]
    }
  }
}

You can replace fetch-tools with any name you prefer, and adjust the URL or command according to your deployment environment.

API Examples

List Tools

curl -X POST http://localhost:3000/api/list-tools

Call a Tool

curl -X POST http://localhost:3000/api/call-tool \
  -H "Content-Type: application/json" \
  -d '{"name": "fetch_markdown", "arguments": {"url": "https://example.com"}}'

SSE Client Example

import json
import aiohttp
import asyncio

async def sse_client():
    async with aiohttp.ClientSession() as session:
        async with session.get("http://localhost:3000/sse") as response:
            async for line in response.content:
                if line.startswith(b"data: "):
                    data = json.loads(line[6:].decode("utf-8"))
                    print(f"Received event: {data}")

asyncio.run(sse_client())

Development

# Install in development mode
pip install -e .

# Run tests
pytest

Docker Support

Build and run with Docker:

docker build -t playwright-mcp-fetch .
docker run -p 3000:3000 -e TRANSPORT_TYPE=sse playwright-mcp-fetch

Or use Docker Compose:

docker-compose up -d

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

playwright_mcp_fetch-0.1.4.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

playwright_mcp_fetch-0.1.4-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file playwright_mcp_fetch-0.1.4.tar.gz.

File metadata

  • Download URL: playwright_mcp_fetch-0.1.4.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for playwright_mcp_fetch-0.1.4.tar.gz
Algorithm Hash digest
SHA256 8e6000d985eab13d0ed0fa0b64cde93c41700a15b997e6a02c92f0ef65d0f083
MD5 98d86beb785a4f3ed63bc6230e76caec
BLAKE2b-256 ba42b102e07bda77e8bfa64a4ec2d17a9b63936ccc02cc60b81646d25b209495

See more details on using hashes here.

File details

Details for the file playwright_mcp_fetch-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for playwright_mcp_fetch-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a8d90a04865c60a51e30e1947d54a706d24bddf6779d2cec78203927acc8e853
MD5 0a245430c9ed4672ec167d8ddf199f61
BLAKE2b-256 764c854fda1782bde0ef47344b63424f86f99d2daac189d0eb0c38ef47e9a8a6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page