Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
baixianger avatar

Camoufox MCP

  • 7 repo stars
  • Updated February 20, 2026
  • baixianger/camoufox-mcp

io.github.baixianger/camoufox-mcp is a MCP server that exposes anti-detection Camoufox (stealth Firefox) browser automation to AI agents for web scraping and scripted browsing.

About

io.github.baixianger/camoufox-mcp is a Model Context Protocol server that wraps Camoufox—a stealth-oriented Firefox stack—for anti-detection browser automation and web scraping. developers shipping agents, research scrapers, or internal data tools install it when Playwright or stock headless Chrome trips CAPTCHAs, canvas checks, or behavioral blocks. The catalog entry ships as an npm stdio package (camoufox-mcp, version 1.0.0), which is the usual pattern for dropping a tool straight into Claude Code or Cursor MCP settings without extra HTTP plumbing. You register the server once, then delegate page opens, scripted interactions, and structured extraction to the agent instead of maintaining one-off puppeteer scripts. It is a specialized integration for work: not a full test framework, not a hosted browser cloud, but a local stealth browser channel when fidelity and reach matter more than the simplest automation path.

  • Camoufox-based anti-detection Firefox automation exposed as an MCP stdio server (npm package camoufox-mcp v1.0.0)
  • Purpose-built for web scraping and automation where fingerprinting and bot checks block vanilla browsers
  • stdio transport fits Claude Code, Cursor, and other MCP hosts without running a separate HTTP gateway
  • Pairs with agent workflows that need navigate, extract, and repeat across hostile or rate-limited sites
  • GitHub source at baixianger/camoufox-mcp for local install and config alongside your agent

Camoufox MCP by the numbers

  • Data as of Aug 10, 2026 (Skillselion catalog sync)
terminal
claude mcp add camoufox-mcp -- npx -y camoufox-mcp

Add your badge

Show developers this MCP server is listed on Skillselion. Paste this into your README.

Listed on Skillselion
repo stars7
Packagecamoufox-mcp
TransportSTDIO
AuthNone
Last updatedFebruary 20, 2026
Repositorybaixianger/camoufox-mcp

What it does

Give your coding agent a stealth Firefox browser for scraping and automation when normal headless browsers get blocked.

Who is it for?

Best when you're running Claude Code or Cursor agents that must scrape or automate pages protected by bot detection, without outsourcing to a managed browser farm.

Skip if: Skip if you only need official REST APIs, static documentation, or lightweight HTTP fetches with no JavaScript or anti-bot layer.

What you get

After you add the stdio MCP server, your agent can drive a stealth Firefox session locally and complete scrape-and-automate tasks that standard browser stacks reject.

  • Registered stdio MCP server your agent can invoke for stealth browser sessions
  • Agent-driven page navigation and extraction against anti-detection targets
  • Repeatable scraping or automation flows without maintaining separate one-off browser scripts

By the numbers

  • Catalog schema version 1.0.0
  • 1 npm package: camoufox-mcp with stdio transport
  • Repository: github.com/baixianger/camoufox-mcp
README.md

🦊 Camoufox MCP

Anti-detection browser automation for AI agents

npm version npm downloads License: MIT Node.js

MCP server for browser automation using Camoufox - an anti-detection Firefox browser.

Installation

npx camoufox-mcp

Claude Desktop Configuration

Add to claude_desktop_config.json:

Basic:

{
  "mcpServers": {
    "camoufox": {
      "command": "npx",
      "args": ["camoufox-mcp"]
    }
  }
}

With Proxy (via env vars):

{
  "mcpServers": {
    "camoufox": {
      "command": "npx",
      "args": ["camoufox-mcp"],
      "env": {
        "PROXY_SERVER": "http://1.2.3.4:8080",
        "PROXY_USER": "username",
        "PROXY_PASS": "password"
      }
    }
  }
}

Then in ~/.config/camoufox-mcp/settings.json:

{
  "proxy": {
    "enabled": true,
    "server": "${PROXY_SERVER}",
    "username": "${PROXY_USER}",
    "password": "${PROXY_PASS}",
    "geoip": true
  }
}

Why Camoufox MCP?

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

Tools

Session Management

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

Page Management

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

Navigation & Interaction

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

Inspection

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

Context Injection

Tool Description
inject_context Inject cookies + localStorage from a JSON file into a session

Monitoring

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

Utility

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

Sessions enable running multiple authenticated profiles in parallel. Each session is an isolated browser context with its own cookies and localStorage.

Browser (single Camoufox instance)
  ├── Session "github" (cookies from github.json)
  │     ├── Page: github.com
  │     └── Page: github.com/repo
  ├── Session "linkedin" (cookies from linkedin.json)
  │     └── Page: linkedin.com/feed
  └── Session "default" (no pre-loaded state)
        └── Page: example.com

Usage Examples

Create a session with pre-loaded authentication:

  1. create_session with contextPath: "github-cookies.json" — returns a sessionId
  2. new_page with url: "https://github.com" and the sessionId — opens GitHub already logged in

Run two accounts simultaneously:

  1. create_session with contextPath: "account1.json" — session A
  2. create_session with contextPath: "account2.json" — session B
  3. new_page in session A — logged in as account 1
  4. new_page in session B — logged in as account 2

Save session state for later:

  1. Log in manually in a session
  2. save_session with outputPath: "my-session.json" — exports cookies + localStorage
  3. Next time, create_session with contextPath: "my-session.json" — restored

Context File Format

Context files use Playwright's storageState format:

{
  "cookies": [
    {
      "name": "session_id",
      "value": "abc123",
      "domain": ".example.com",
      "path": "/",
      "expires": 1735689600,
      "httpOnly": true,
      "secure": true,
      "sameSite": "Lax"
    }
  ],
  "origins": [
    {
      "origin": "https://example.com",
      "localStorage": [
        { "name": "token", "value": "xyz789" }
      ]
    }
  ]
}

Registering Context Files in Settings

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:

{
  "contextPaths": [
    "/path/to/github-cookies.json",
    "/path/to/linkedin-cookies.json"
  ]
}

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.

Settings

Create ~/.config/camoufox-mcp/settings.json:

{
  "browser": {
    "headless": false,
    "viewport": [1280, 1080],
    "timeout": 30000,
    "humanize": 0.5
  },
  "proxy": {
    "enabled": true,
    "server": "http://proxy.example.com:8080",
    "username": "user",
    "password": "pass",
    "geoip": true
  },
  "contextPaths": []
}

Proxy Examples

HTTP/HTTPS Proxy:

{ "proxy": { "enabled": true, "server": "http://1.2.3.4:8080" } }

SOCKS5 Proxy:

{ "proxy": { "enabled": true, "server": "socks5://1.2.3.4:1080" } }

With Authentication (using env vars):

{
  "proxy": {
    "enabled": true,
    "server": "${PROXY_SERVER}",
    "username": "${PROXY_USER}",
    "password": "${PROXY_PASS}",
    "geoip": true
  }
}

geoip: true auto-adjusts browser timezone/locale based on proxy IP location.

See More

License

MIT

Recommended MCP Servers

How it compares

MCP browser-integration server, not a hosted scraping SaaS or a Playwright test skill.

FAQ

Who is io.github.baixianger/camoufox-mcp for?

Developers who ship AI agents and need stealth Firefox automation when normal headless browsers get blocked during scraping or workflow automation.

When should I use io.github.baixianger/camoufox-mcp?

Use it in the Build integrations phase when your agent must interact with real web pages under anti-detection constraints, especially for recurring scrape or navigate-extract loops.

How do I add io.github.baixianger/camoufox-mcp to my agent?

Install the npm package camoufox-mcp, configure it as an MCP stdio server in Claude Code, Cursor, or another MCP host, and point the entry at the published server from the baixianger/camoufox-mcp repository.

Web & Browser Automationintegrationstesting

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.