0detect MCP server
0detect MCP is a Model Context Protocol (opens in a new tab) server that lets AI agents — Claude Desktop, Cursor, and any other MCP-capable client — drive your locally running 0detect antidetect browser.
Source code: github.com/0detect/mcp-server (opens in a new tab)
What it does
The server speaks stdio JSON-RPC with the MCP host on one side, and proxies each tool call as an HTTP request to the 0detect Local HTTP API on the other. By default the upstream is http://localhost:56789 — the same base URL as your local Swagger.
With it you can ask an AI assistant to:
- List, create, start, stop, and delete browser profiles
- Import cookies and assign tags or proxies to profiles
- Manage your proxy library: add, verify, and delete proxies
- Manage tags: create, rename, recolor, and delete labels
- Read account info, quotas, and subscription state
- Run a health check against the local API
How it works
- The MCP host (Claude Desktop, Cursor, etc.) launches the server as a child process.
- The host and server exchange JSON-RPC over stdin/stdout.
- Each MCP tool call is translated into an HTTP request to the 0detect Local API using
fetch. - Responses come back as MCP text content — a single JSON document with
ok,status, andbody(parsed JSON when possible, otherwise raw text).
console.log output is redirected to stderr so nothing corrupts the stdio MCP stream.
Prerequisites
- Node.js 22+ — the server uses the global
fetchAPI. - 0detect installed and running with the Local API reachable. Quick check: open
http://localhost:56789/swagger.jsonor/health-checkin a browser or withcurl. - A valid
~/.0detect/config.jsonproduced by 0detect. The MCP server readslocalApiPortandlocalApiKeyfrom it at startup and sends the key as thex-api-keyheader on every tool request, exceptodetect_health_check.
When to use it
- You want to script 0detect from an AI assistant without writing a custom integration.
- You already use Claude Desktop or Cursor and want them to operate the antidetect browser as part of larger workflows.
- You're prototyping automations and want a uniform, language-agnostic interface instead of calling the Local API directly.
For lower-level access — Selenium, Puppeteer, raw HTTP — see the API documentation section.