AI-powered anti-detection browser automation for MCP-compatible AI agents.
CamoFox MCP connects MCP clients such as Claude Desktop, VS Code, Cursor, and OpenClaw to the CamoFox browser server. It gives agents a practical browser toolset for navigation, interaction, search, extraction, downloads, and session reuse while relying on Camoufox-based anti-detection behavior underneath.
- 47 browser automation tools across navigation, interaction, observation, search, downloads, sessions, and batch workflows.
- Anti-detection browser automation built on top of the CamoFox browser server and Camoufox.
- Multi-tab workflows with tracked state, history, and cleanup.
- Session persistence with cookie import, saved profiles, and optional auto-save.
- Token-efficient accessibility snapshots with CSS-selector fallbacks for difficult SPA flows.
- OpenClaw-compatible HTTP transport, plus standard stdio support for desktop MCP clients.
You need both components running:
camofox-browserhandles the anti-detection browser.camofox-mcpexposes that browser to your MCP client.
Start the browser server:
npx camofox-browser@latestAdd CamoFox MCP to your MCP client:
{
"servers": {
"camofox": {
"type": "stdio",
"command": "npx",
"args": ["-y", "camofox-mcp@latest"],
"env": {
"CAMOFOX_URL": "http://localhost:9377"
}
}
}
}Start the browser server:
docker run -d -p 9377:9377 --name camofox-browser ghcr.io/redf0x1/camofox-browser:latestRun CamoFox MCP in HTTP mode for remote MCP clients such as OpenClaw:
docker run -p 3000:8080 --rm \
-e CAMOFOX_TRANSPORT=http \
-e CAMOFOX_HTTP_HOST=0.0.0.0 \
-e CAMOFOX_HTTP_API_KEY=replace-with-32-plus-random-chars \
-e CAMOFOX_URL=http://host.docker.internal:9377 \
ghcr.io/redf0x1/camofox-mcp:latest node dist/http.jsConfigure your HTTP MCP client to connect to http://localhost:3000/mcp with
Authorization: Bearer replace-with-32-plus-random-chars.
Full client configuration examples live in docs/getting-started.md.
Use camofox-browser 2.4.5 or newer. Browser 2.4.4 fixes the persistent-context cold-start about:blank page reuse path, and browser 2.4.5 adds explicit browser auth modes including CAMOFOX_AUTH_MODE=disabled for trusted private agent networks.
Verify the browser server is reachable:
curl -fsS http://localhost:9377/healthExpected response includes "ok":true and "running":true.
On a cold server with no active tabs yet, browserConnected can be false; create a tab to start a browser session.
| Category | Tool count | Docs |
|---|---|---|
| Health | 1 | Health |
| Tabs | 3 | Tabs |
| Navigation | 4 | Navigation |
| Interaction | 8 | Interaction |
| Observation | 8 | Observation |
| Search | 1 | Search |
| Session | 4 | Session |
| Profiles | 4 | Profiles |
| Downloads | 3 | Downloads |
| Extraction | 3 | Extraction |
| Batch workflows | 6 | Batch |
| Presets | 1 | Presets |
- CamoFox MCP is not a standalone browser. You must run a compatible
camofox-browserserver separately. - MCP can share the camofox CLI default browser profile/context when
create_tabusesuserId: "cli-default"andsessionKey: "default", but it cannot reliably attach to a tab the CLI already opened. Importing/adopting existing CLI tabs is a future feature. - Headed browser window size follows browser viewport/display-size behavior. Pass
viewport, for example{ "width": 1366, "height": 768 }, or setCAMOFOX_VIEWPORT=1366x768/--viewport 1366x768for a default new-tab size. Supported defaults use width320..3840and height240..2160. - Accessibility-tree refs are the primary interaction model, but SPA and custom-component sites can require CSS selectors or rendered HTML tools.
- If the browser server enforces authentication, API-key-gated operations need the same
CAMOFOX_API_KEYon both sides. - For browser
2.4.5trusted private-network deployments usingCAMOFOX_AUTH_MODE=disabled, leaveCAMOFOX_API_KEYunset in CamoFox MCP. MCP then sends no outbound browser auth headers. Keep both browser and MCP access on a trusted private network. - If HTTP transport is exposed beyond loopback, set
CAMOFOX_HTTP_API_KEYand require clients to send it as a Bearer token. - HTTP transport is mainly for remote MCP clients. Desktop MCP clients usually work best with stdio configuration.
Treat this as a browser control surface. In shared or networked environments, isolate the browser server, avoid exposing MCP endpoints broadly, and use CAMOFOX_HTTP_API_KEY for inbound HTTP MCP clients plus CAMOFOX_API_KEY when the browser server requires authentication. If the browser server runs CAMOFOX_AUTH_MODE=disabled, leave CAMOFOX_API_KEY unset and keep that browser endpoint on a trusted private network. Session profiles can contain sensitive cookies and should be stored accordingly.
Start at docs/README.md for the documentation hub, then use docs/getting-started.md for setup, verification, and first workflow examples.
See CONTRIBUTING.md for contribution guidelines, SECURITY.md for private vulnerability reporting, and LICENSE for the MIT license.