MCP server

Self-host as a remote server

Run PyScrappy over HTTP so any MCP client can connect to it as a remote endpoint.

By default pyscrappy-mcp speaks stdio: the MCP client starts it as a local subprocess. You can instead run it over HTTP, so it becomes a remote MCP endpoint that clients connect to by URL. This is useful for sharing one instance across a team, running it on a server, or accessing it from a client that only supports remote servers.

PyScrappy scrapes on behalf of whoever runs it, from that machine's IP address. When you self-host, all scraping happens from your server's IP. Shared IPs get rate-limited or blocked by anti-bot systems quickly, so pair a hosted instance with a proxy or scraping-API service for anything heavy, and add your own authentication in front of it before exposing it publicly.

Run it over HTTP

pip install 'pyscrappy[mcp]'
pyscrappy-mcp --http --port 8000

This serves the Streamable HTTP transport at http://127.0.0.1:8000/mcp.

To accept connections from other machines, bind to all interfaces:

pyscrappy-mcp --http --host 0.0.0.0 --port 8000

Options:

FlagDefaultDescription
--httpoffServe over Streamable HTTP instead of stdio.
--sseoffServe over the legacy SSE transport instead.
--host127.0.0.1Interface to bind. Use 0.0.0.0 for remote access.
--port8000Port to bind.

Connect a client to the remote server

Once it's running, point your MCP client at the URL instead of a local command.

Claude Code

claude mcp add --transport http pyscrappy http://your-host:8000/mcp

OpenCode

Use a remote server in opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pyscrappy": {
      "type": "remote",
      "url": "http://your-host:8000/mcp",
      "enabled": true
    }
  }
}

Claude Desktop / OpenClaw

These expect a local command, so point them at a small bridge such as mcp-proxy, which forwards stdio to your remote HTTP endpoint:

{
  "mcpServers": {
    "pyscrappy": {
      "command": "mcp-proxy",
      "args": ["http://your-host:8000/mcp"]
    }
  }
}

Deploy it

Any host that runs a long-lived Python process works (Render, Railway, Fly.io, a VPS). Install the extra, then run the HTTP command as your start command:

pip install 'pyscrappy[mcp]'
pyscrappy-mcp --http --host 0.0.0.0 --port 8000

Put the endpoint behind authentication and rate limiting before exposing it to the internet. An open scraping endpoint will be abused, and the requests come from your server's IP.