Skip to main content

A MCP server with playwright fetch tools

Project description

playwright-mcp-fetch

Current version: 0.1.5

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.5.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.5-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: playwright_mcp_fetch-0.1.5.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.5.tar.gz
Algorithm Hash digest
SHA256 384923f278a0519af4840a3649298e3e418f079603d59229a5e7813441d644d0
MD5 f3d57cbe3eec5fcf9ed4b2467b1f343f
BLAKE2b-256 3b146ddce59e794e19a9e69b034f297b2baf3330d1370eab21ad35349248c733

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for playwright_mcp_fetch-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 305c62db28840c826efa6fac4b3271d8ce751bf9c0728ae550f85a670cfb34a3
MD5 f72fea3c69570ba24a4c3e0f25782b13
BLAKE2b-256 2c23f25c05e04d6c8868ea5bab248a1a7401e3c6c134b72a73382161925ef619

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