BrowserOS neo
OFFICIAL SERVERA separate desktop Chromium browser that AI agents drive through a local MCP endpoint, signed in as you
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
Opens the app, which asks before it adds the server.
claude mcp add camofox-browser -- npx -y @askjo/camofox-browser-mcp{
"mcpServers": {
"camofox-browser": {
"command": "npx",
"args": [
"-y",
"@askjo/camofox-browser-mcp"
]
}
}
}{
"mcpServers": {
"camofox-browser": {
"command": "npx",
"args": [
"-y",
"@askjo/camofox-browser-mcp"
]
}
}
}{
"servers": {
"camofox-browser": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@askjo/camofox-browser-mcp"
]
}
}
}[mcp_servers.camofox-browser]
command = "npx"
args = ["-y", "@askjo/camofox-browser-mcp"]gemini mcp add --scope user camofox-browser npx -- -y @askjo/camofox-browser-mcpOpens the app, which asks before it adds the server.
git clone https://github.com/jo-inc/camofox-browser
cd camofox-browser/mcp
npm install
npm linkclaude mcp add camofox-browser -- camofox-browser-mcp{
"mcpServers": {
"camofox-browser": {
"command": "camofox-browser-mcp",
"args": []
}
}
}{
"mcpServers": {
"camofox-browser": {
"command": "camofox-browser-mcp",
"args": []
}
}
}{
"servers": {
"camofox-browser": {
"type": "stdio",
"command": "camofox-browser-mcp",
"args": []
}
}
}[mcp_servers.camofox-browser]
command = "camofox-browser-mcp"
args = []gemini mcp add --scope user camofox-browser camofox-browser-mcpCAMOFOX_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. |
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.
| Runtime | Node.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.
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.
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.
camofox_create_tabcamofox_snapshotcamofox_navigatecamofox_clickcamofox_typecamofox_scrollcamofox_screenshotcamofox_evaluatecamofox_list_tabscamofox_close_tabcamofox_import_cookies