@vinoth320/proxymcp
v1.0.8
Published
Proxy + WebMCP: headless browser with MCP tools, SSE and stdio transport
Maintainers
Readme
ProxyMCP
Proxy + WebMCP unified server: headless browser proxy with MCP tools, SSE and stdio transport.
Features
- Proxy UI — Headless Chrome with CDP screencast, streaming, stealth
- WebMCP WebSocket — MCP tools exposed via WebSocket (port 4797)
- Built-in proxy tools —
proxymcp-navigate_to,proxymcp-take_screenshot, etc. (17 tools) - MCP stdio — For Cursor/Claude:
node index.js --stdio - MCP SSE — HTTP-based:
node index.js --sse
Usage
# Proxy + WebMCP only (no MCP transport)
npm start
# With stdio (for MCP client config)
npm run start:stdio
# With SSE transport
npm run start:ssePorts
| Port | Service |
|------|----------------|
| 3000 | Proxy UI + MCP (when --sse) |
| 4797 | WebMCP WebSocket |
Cursor MCP: With --sse, MCP is mounted on the proxy. Use http://localhost:3000/mcp.
Docker
docker-compose upOr build and run manually:
docker build -t proxymcp .
docker run -p 3000:3000 -p 4797:4797 -p 3001:3001 proxymcpCursor MCP with Docker: Use http://localhost:3010/mcp (MCP is on the proxy port).
Troubleshooting
See TROUBLESHOOTING.md for common Cursor errors ("Cannot POST /sse", "invalid_union", ECONNREFUSED) and the proxy → WebMCP connection flow.
MCP Client Config (Cursor)
Option 1: Streamable HTTP (recommended) — Start server with npm run start:sse, then add:
{
"mcpServers": {
"proxymcp": {
"url": "http://localhost:3000/mcp"
}
}
}Option 2: stdio — Run locally:
{
"mcpServers": {
"proxymcp": {
"command": "node",
"args": ["C:\\path\\to\\proxymcp\\index.js", "--stdio"],
"cwd": "C:\\path\\to\\proxymcp"
}
}
}Ensure the proxy server is running first (npm start in another terminal), or use --stdio which starts both.
