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 8000This 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 8000Options:
| Flag | Default | Description |
|---|---|---|
--http | off | Serve over Streamable HTTP instead of stdio. |
--sse | off | Serve over the legacy SSE transport instead. |
--host | 127.0.0.1 | Interface to bind. Use 0.0.0.0 for remote access. |
--port | 8000 | Port 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/mcpOpenCode
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 8000Put 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.