@vinoth320/proxymcp
v1.0.16
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
- Chrome TLS fingerprint (optional) —
tls-client.jsusesnode-tls-client(chrome_120JA3-style handshake) + Chrome-like headers; falls back to axios. Status:GET /api/tls-fingerprint. Details: docs/STEALTH_AND_TLS.md - Proxy rotation (optional) —
proxy-rotation-manager.js(proxychronus-style):PROXYMCP_PROXIES,GET /api/proxy/stats,GET /api/proxy/health?url=.... UsestealthFetchWithRotation()from Node for fetches through the pool. - 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: stdio with embedded server (recommended) — No separate server; Cursor starts ProxyMCP and the proxy/WebMCP run in the same process. Add to .cursor/mcp.json:
{
"mcpServers": {
"proxymcp-npm": {
"command": "npx",
"args": [
"-y",
"@vinoth320/proxymcp",
"--stdio",
"--with-server"
]
}
}
}Option 2: Streamable HTTP — Start server with npm run start:sse, then add:
{
"mcpServers": {
"proxymcp": {
"url": "http://localhost:3000/mcp"
}
}
}Option 3: stdio (local clone) — Run from a local clone; ensure the proxy server is running first (npm start in another terminal), or use --with-server:
{
"mcpServers": {
"proxymcp": {
"command": "node",
"args": ["C:\\path\\to\\proxymcp\\index.js", "--stdio", "--with-server"],
"cwd": "C:\\path\\to\\proxymcp"
}
}
}