camofox-browser-mcp

MCP adapter that drives a Camoufox anti-detection Firefox through the camofox-browser REST server

By jo JavaScript Local · stdio Browser automation

54 popularity score ★ 12k ↓ 520/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add camofox-browser -- npx -y @askjo/camofox-browser-mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "camofox-browser": {
      "command": "npx",
      "args": [
        "-y",
        "@askjo/camofox-browser-mcp"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "camofox-browser": {
      "command": "npx",
      "args": [
        "-y",
        "@askjo/camofox-browser-mcp"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "camofox-browser": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@askjo/camofox-browser-mcp"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.camofox-browser]
command = "npx"
args = ["-y", "@askjo/camofox-browser-mcp"]
Gemini CLITerminal
gemini mcp add --scope user camofox-browser npx -- -y @askjo/camofox-browser-mcp
Local (from source)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

FirstTerminal
git clone https://github.com/jo-inc/camofox-browser
cd camofox-browser/mcp
npm install
npm link
Claude CodeTerminal
claude mcp add camofox-browser -- camofox-browser-mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "camofox-browser": {
      "command": "camofox-browser-mcp",
      "args": []
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "camofox-browser": {
      "command": "camofox-browser-mcp",
      "args": []
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "camofox-browser": {
      "type": "stdio",
      "command": "camofox-browser-mcp",
      "args": []
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.camofox-browser]
command = "camofox-browser-mcp"
args = []
Gemini CLITerminal
gemini mcp add --scope user camofox-browser camofox-browser-mcp

Settings 5

CAMOFOX_BASE_URL Optional: Address of the camofox-browser REST server; defaults to http://localhost:9377.
CAMOFOX_ACCESS_KEY Optional: Bearer token sent on every call; must match the REST server's key when it has one set.
CAMOFOX_API_KEY Optional: Secret for cookie import; must match the REST server's value, needed on remote servers.
CAMOFOX_USER_ID Optional: Session identity used for isolation; defaults to a random mcp- value.
CAMOFOX_SESSION_KEY Optional: Tab partition within the user; defaults to default.

What it does

camofox-browser-mcp is a small stdio MCP server that turns tool calls into HTTP requests against a camofox-browser REST server. That REST server is the main product of the same repository: it launches Camoufox, a Firefox fork that spoofs browser fingerprints in its C++ code, and exposes tabs, accessibility snapshots, clicks and typing over port 9377. The MCP package itself carries no browser; its only dependency is the MCP SDK, so the REST server can run on the same machine or on another host reached through CAMOFOX_BASE_URL.

An assistant opens a tab on a URL, takes an accessibility snapshot that labels page elements with short refs (e1, e2 ...) and an optional screenshot, then clicks or types against those refs and snapshots again to see the result. It can also navigate with search macros for sites such as Google and Reddit, run JavaScript inside the page, list and close tabs, and load a Netscape-format cookie file so later browsing is signed in.

The repository holds more than this server: the REST browser server, a Docker build, an OpenClaw plugin that shares the same 11 tool definitions, and a crash-report worker. The makers pitch the browser as getting past bot detection on sites such as Google and Cloudflare, which may run against the terms of sites a user visits.

What it needs

RuntimeNode.js

Node.js with npm (npx) for the adapter. A running camofox-browser REST server it can reach, by default at http://localhost:9377; starting that server locally means cloning the repository and running npm install, which downloads the Camoufox browser (about 300 MB), or using its Docker build.

Limits

It does nothing on its own: every tool fails unless the camofox-browser REST server is up. Its docs say camofox_scroll can report success without moving lazy-loading or virtual-scroll pages (use camofox_evaluate instead), that a CSS selector matching several elements is rejected with a 422 error, and that a dead browser session returns 503 until the REST server is restarted. Cookie import needs CAMOFOX_API_KEY on remote servers. Each MCP process uses one camofox session.

Who it suits

Suits developers whose agents need to read or act on sites that block ordinary headless browsers, and who are willing to run the camofox-browser REST server themselves, locally, on a small server or in Docker. Because the adapter is thin, it also fits teams that host one browser server and point several assistants at it. It is a community project rather than a vendor's product, it runs a real browser that can submit forms and execute page scripts, and its anti-detection aim may clash with some sites' terms. If you only need plain page fetching or ordinary Playwright-style testing, a lighter browser server without a separate backend is simpler to set up.

Tools 11

camofox_create_tab
Open a new tab on a URL and return its tab id
camofox_snapshot
Return an accessibility snapshot with element refs and a screenshot
camofox_navigate
Load a URL or run a site search macro in a tab
camofox_click
Click an element by ref or CSS selector
camofox_type
Enter text into an element, optionally pressing Enter
camofox_scroll
Scroll the page by a number of pixels
camofox_screenshot
Capture a screenshot of a tab
camofox_evaluate
Run JavaScript inside the page and return the result
camofox_list_tabs
List the tabs open in the current session
camofox_close_tab
Close a tab
camofox_import_cookies
Load cookies from a Netscape cookie file into the session

Similar servers