The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Camoufox MCP listing page.
Anti-detection browser automation for AI agents
MCP server for browser automation using Camoufox - an anti-detection Firefox browser.
Add to claude_desktop_config.json:
Basic:
With Proxy (via env vars):
Then in ~/.config/camoufox-mcp/settings.json:
| Feature | Camoufox MCP | Chrome DevTools MCP |
|---|---|---|
| Anti-Detection | ||
| Bot detection bypass | ✅ Built-in | ❌ Detected |
| Fingerprint randomization | ✅ | ❌ |
| WebRTC leak protection | ✅ | ❌ |
| Canvas fingerprint spoofing | ✅ | ❌ |
| Automation | ||
| Humanized cursor movement | ✅ Realistic paths | ❌ Instant jumps |
| Click with human-like delays | ✅ | ❌ |
| Proxy with GeoIP auto-config | ✅ Timezone/locale | ❌ Manual |
| JavaScript Evaluation | ||
MainWorld eval (__NUXT__, __NEXT_DATA__) | ✅ | ✅ |
| Isolated eval (async/await) | ✅ | ✅ |
| Session Management | ||
| Isolated browser sessions | ✅ Multiple contexts | ❌ Single context |
| Pre-authenticated sessions | ✅ Cookie/localStorage injection | ❌ |
| Session state export | ✅ Save to JSON | ❌ |
| Features | ||
| Cookie popup auto-dismiss | ✅ 50+ selectors | ❌ |
| User action recording | ✅ | ❌ |
| Network interception | ✅ | ✅ |
| Console capture | ✅ | ✅ |
| Performance tracing | ❌ | ✅ |
| Browser | ||
| Engine | Firefox (Gecko) | Chrome (Chromium) |
| Auto-install | ✅ ~150MB | ✅ |
Sessions provide isolated browser contexts — each session has its own cookies, localStorage, and cache. Use sessions to run multiple authenticated profiles simultaneously.
| Tool | Description |
|---|---|
create_session | Create a new isolated session, optionally pre-loading cookies/localStorage from a JSON file |
list_sessions | List all sessions with their page counts and metadata |
save_session | Export a session's cookies and localStorage to a JSON file |
close_session | Close a session and all its pages |
list_context_files | List available context files registered in settings |
| Tool | Description |
|---|---|
new_page | Create a new page, optionally in a specific session |
list_pages | List all open pages with their session IDs |
select_page | Set a page as active |
close_page | Close a page |
| Tool | Description |
|---|---|
navigate_page | Navigate to URL, back, forward, or reload |
click | Click an element by UID |
hover | Hover over an element |
fill | Fill a form field |
fill_form | Fill multiple form fields at once |
press_key | Press a key or key combination |
drag | Drag an element to another |
| Tool | Description |
|---|---|
take_snapshot | Text snapshot with interactive element UIDs |
take_screenshot | Screenshot of page or element |
get_page_text | Extract text content |
evaluate_mainworld | Run JS in page context (sync only) |
evaluate_isolated | Run JS in isolated context (async OK) |
get_framework_state | Extract Next.js/Nuxt.js state |
| Tool | Description |
|---|---|
inject_context | Inject cookies + localStorage from a JSON file into a session |
| Tool | Description |
|---|---|
start_network_capture / stop_network_capture | Capture network requests |
get_network_logs / clear_network_logs | View/clear captured requests |
intercept_network / remove_intercept | Block or modify requests |
start_console_capture / stop_console_capture | Capture console messages |
get_console_logs / clear_console_logs | View/clear console messages |
start_recording / stop_recording / get_recording_status | Record user interactions |
| Tool | Description |
|---|---|
dismiss_popups | Auto-dismiss cookie consent popups |
wait_for | Wait for text or selector |
wait_for_navigation | Wait for navigation to complete |
reload_settings | Reload settings from config |
get_config_paths | Show config file paths |
init_user_config | Initialize user config directory |
Sessions enable running multiple authenticated profiles in parallel. Each session is an isolated browser context with its own cookies and localStorage.
Create a session with pre-loaded authentication:
create_session with contextPath: "github-cookies.json" — returns a sessionIdnew_page with url: "https://github.com" and the sessionId — opens GitHub already logged inRun two accounts simultaneously:
create_session with contextPath: "account1.json" — session Acreate_session with contextPath: "account2.json" — session Bnew_page in session A — logged in as account 1new_page in session B — logged in as account 2Save session state for later:
save_session with outputPath: "my-session.json" — exports cookies + localStoragecreate_session with contextPath: "my-session.json" — restoredContext files use Playwright's storageState format:
Add context file paths to settings.json to make them discoverable via list_context_files. Sessions are created lazily on demand — no memory is used until the agent calls create_session:
The agent can then call list_context_files to see what's available, and create_session with the desired contextPath to load it when needed.
Create ~/.config/camoufox-mcp/settings.json:
HTTP/HTTPS Proxy:
SOCKS5 Proxy:
With Authentication (using env vars):
geoip: trueauto-adjusts browser timezone/locale based on proxy IP location.
MIT