io.github.baixianger/camoufox-mcp

السجل الرسمي البحث والويب

Anti-detection browser automation with Camoufox - stealth Firefox for web scraping

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

NPM package camoufox-mcp
Claude Code
claude mcp add camoufox-mcp -- npx -y camoufox-mcp@1.0.0
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "camoufox-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "camoufox-mcp@1.0.0"
            ]
        }
    }
}

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. 🦊 Camoufox MCP
  2. Installation
  3. Claude Desktop Configuration
  4. Why Camoufox MCP?
  5. Tools
  6. Sessions
  7. Settings
  8. See More
  9. License

🦊 Camoufox MCP

Anti-detection browser automation for AI agents

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?

FeatureCamoufox MCPChrome 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
EngineFirefox (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.

ToolDescription
create_sessionCreate a new isolated session, optionally pre-loading cookies/localStorage from a JSON file
list_sessionsList all sessions with their page counts and metadata
save_sessionExport a session's cookies and localStorage to a JSON file
close_sessionClose a session and all its pages
list_context_filesList available context files registered in settings
Page Management
ToolDescription
new_pageCreate a new page, optionally in a specific session
list_pagesList all open pages with their session IDs
select_pageSet a page as active
close_pageClose a page
Navigation & Interaction
ToolDescription
navigate_pageNavigate to URL, back, forward, or reload
clickClick an element by UID
hoverHover over an element
fillFill a form field
fill_formFill multiple form fields at once
press_keyPress a key or key combination
dragDrag an element to another
Inspection
ToolDescription
take_snapshotText snapshot with interactive element UIDs
take_screenshotScreenshot of page or element
get_page_textExtract text content
evaluate_mainworldRun JS in page context (sync only)
evaluate_isolatedRun JS in isolated context (async OK)
get_framework_stateExtract Next.js/Nuxt.js state
Context Injection
ToolDescription
inject_contextInject cookies + localStorage from a JSON file into a session
Monitoring
ToolDescription
start_network_capture / stop_network_captureCapture network requests
get_network_logs / clear_network_logsView/clear captured requests
intercept_network / remove_interceptBlock or modify requests
start_console_capture / stop_console_captureCapture console messages
get_console_logs / clear_console_logsView/clear console messages
start_recording / stop_recording / get_recording_statusRecord user interactions
Utility
ToolDescription
dismiss_popupsAuto-dismiss cookie consent popups
wait_forWait for text or selector
wait_for_navigationWait for navigation to complete
reload_settingsReload settings from config
get_config_pathsShow config file paths
init_user_configInitialize 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

الأسئلة الشائعة

ما هو io.github.baixianger/camoufox-mcp؟

Anti-detection browser automation with Camoufox - stealth Firefox for web scraping

كيف أثبّت io.github.baixianger/camoufox-mcp؟

يعمل على جهازك. في Claude Code: claude mcp add camoufox-mcp -- npx -y camoufox-mcp@1.0.0. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج io.github.baixianger/camoufox-mcp إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل io.github.baixianger/camoufox-mcp مفتوح المصدر؟

شيفرته علنية على GitHub، لكن المستودع لا يعلن ترخيصًا قياسيًا.

من يصون io.github.baixianger/camoufox-mcp؟

ينشره baixianger. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.