Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.baixianger/camoufox-mcp

NPM · CAMOUFOX-MCP · SCANNED SEP 20

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

Available components

−1 this week 75 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security89
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects adm-zip 0.5.18, reached via camoufox-js > adm-zip. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 60 of 184 dependencies flagged as unhealthy (2 deprecated). View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability70
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 2425 tokens (~57/item across 42 items; 42 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management77
  • Stability observed for 23 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 94% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "evaluate_mainworld" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 42 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.baixianger/camoufox-mcp server?

io.github.baixianger/camoufox-mcp runs locally as an npm package, launched with npx -y camoufox-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · camoufox-mcp

# add to Claude Code
claude mcp add baixianger-camoufox-mcp -- npx -y camoufox-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "baixianger-camoufox-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "camoufox-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "baixianger-camoufox-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "camoufox-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add baixianger-camoufox-mcp -- npx -y camoufox-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "baixianger-camoufox-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "camoufox-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add baixianger-camoufox-mcp --command npx --arg -y --arg camoufox-mcp
# ~/.hermes/config.yaml
mcp_servers:
  baixianger-camoufox-mcp:
    command: "npx"
    args: ["-y", "camoufox-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "baixianger-camoufox-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "camoufox-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add baixianger-camoufox-mcp -t stdio -c npx -a -y camoufox-mcp
// mcp.json
{
  "mcpServers": {
    "baixianger-camoufox-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "camoufox-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 −4
    • Stability: pass → 0.77 functional
  • 19 Sept 26 +1
    • CVE-2026-77301 affects this package: high security
    • Stability: 0.97 → pass security
  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 +5
    • Source repository: unverified → pass security
  • 15 Sept 26 −4
    • Provenance: pass → unverified security
  • 13 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 12 Sept 26 +1
    • Stability: 0.97 → pass security
  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/camoufox-mcp@1.0.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 3 findings
ID CVE Severity Vector Fix available
GHSA-7q85-xj36-vmfc CVE-2026-77301 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-vwc7-r8mq-g2x9 CVE-2026-76845 medium CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N no
GHSA-xcpc-8h2w-3j85 CVE-2026-39244 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 184 packages
Packages resolved 184
Deprecated 2
Stale 59
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 42 exposed · ~2,425 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
clear_console_logs ~31

Clear captured console logs

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)

No output schema declared.

No examples provided.

clear_network_logs ~31

Clear captured network logs

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)

No output schema declared.

No examples provided.

click ~80

Click an element by its UID from snapshot

NameTypeReqDescription
buttonstring
clickCountnumber1 for single click, 2 for double
modifiersarrayModifier keys to hold
pageIdstringPage ID (uses active page if not specified)
uidstringyesElement UID from snapshot

No output schema declared.

No examples provided.

close_page ~29

Close a browser page/tab

NameTypeReqDescription
pageIdstringyesThe ID of the page to close

No output schema declared.

No examples provided.

close_session ~30

Close a browser session and all its pages

NameTypeReqDescription
sessionIdstringyesThe session ID to close

No output schema declared.

No examples provided.

create_session ~63

Create a new isolated browser session with its own cookies and localStorage. Optionally pre-load context from a JSON file.

NameTypeReqDescription
contextPathstringPath to a browser context JSON file to pre-load
namestringHuman-readable name for the session

No output schema declared.

No examples provided.

dismiss_popups ~57

Dismiss cookie consent popups and overlays

NameTypeReqDescription
customSelectorsarrayAdditional selectors to try
maxAttemptsnumberMaximum attempts
pageIdstringPage ID (uses active page if not specified)

No output schema declared.

No examples provided.

drag ~57

Drag an element to another element

NameTypeReqDescription
fromUidstringyesElement UID to drag from
pageIdstringPage ID (uses active page if not specified)
toUidstringyesElement UID to drag to

No output schema declared.

No examples provided.

evaluate_isolated ~216

Execute JavaScript in an ISOLATED context (sandboxed, separate from page scripts). USE THIS TOOL WHEN YOU NEED TO: - Make async operations (fetch, setTimeout, Promises) - Query/manipulate the DOM without affecting page state - Run code that shouldn't interfere with page scripts - Perform async data extraction or waiting LIMITATIONS: - CANNOT access window globals (window.__NUXT__, etc. will be undefined) - CANNOT call functions defined by page scripts - Only has access to DOM and standard browser APIs EXAMPLES: - "await fetch('/api/data').then(r => r.json())" → Make API calls - "document.querySelectorAll('.item').length" → Count elements - "await new Promise(r => setTimeout(r, 1000))" → Wait/delay

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
scriptstringyesJavaScript code (async/await allowed). Returns the expression result.

No output schema declared.

No examples provided.

evaluate_mainworld ~248

Execute JavaScript in the page's MAIN execution context (same as browser DevTools console). USE THIS TOOL WHEN YOU NEED TO: - Access window globals like window.__NUXT__, window.__NEXT_DATA__, window.__APP_STATE__ - Read framework hydration state (Next.js, Nuxt.js, Vue, React, etc.) - Access variables/functions defined by the page's own scripts - Interact with third-party libraries loaded by the page (jQuery, etc.) CRITICAL LIMITATIONS: - NO async/await support - scripts must be SYNCHRONOUS only - NO Promise, fetch(), setTimeout callbacks - Script will be REJECTED if it contains async patterns EXAMPLES: - "window.__NUXT__" → Returns Nuxt.js state - "window.__NEXT_DATA__" → Returns Next.js props - "typeof jQuery !== 'undefined' ? jQuery.fn.jquery : null" → Check jQuery version

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
scriptstringyesSYNCHRONOUS JavaScript expression. No async/await/Promise/fetch allowed. Returns the expression result.

No output schema declared.

No examples provided.

fill ~61

Fill a form field (input, textarea, select) by its UID

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
uidstringyesElement UID from snapshot
valuestringyesValue to fill in

No output schema declared.

No examples provided.

fill_form ~44

Fill multiple form fields at once

NameTypeReqDescription
fieldsarrayyesList of fields to fill
pageIdstringPage ID (uses active page if not specified)

No output schema declared.

No examples provided.

get_config_paths ~23

Get all config file paths (user config, package default, active)

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_console_logs ~79

Get captured console messages

NameTypeReqDescription
limitnumberMaximum entries to return
onlyErrorsbooleanOnly return errors/warnings
pageIdstringPage ID (uses active page if not specified)
patternstringFilter by text pattern (regex)
typesarrayFilter by message types

No output schema declared.

No examples provided.

get_framework_state ~46

Extract Next.js/Nuxt.js hydration state from the page

NameTypeReqDescription
frameworkstring
pageIdstringPage ID (uses active page if not specified)

No output schema declared.

No examples provided.

get_network_logs ~57

Get captured network request logs

NameTypeReqDescription
limitnumberMaximum entries to return
pageIdstringPage ID (uses active page if not specified)
urlPatternstringFilter by URL pattern (regex)

No output schema declared.

No examples provided.

get_page_text ~46

Extract text content from the page

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
selectorstringCSS selector (defaults to body)

No output schema declared.

No examples provided.

get_recording_status ~32

Get current recording status

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)

No output schema declared.

No examples provided.

hover ~43

Hover over an element by its UID

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
uidstringyesElement UID from snapshot

No output schema declared.

No examples provided.

init_user_config ~27

Initialize user config directory (~/.config/camoufox-mcp) with default settings

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

inject_context ~110

Inject browser context (cookies + localStorage) from a JSON file into a session or page's context. The file should follow Playwright's storageState format with cookies[] and origins[].localStorage[].

NameTypeReqDescription
contextPathstringyesPath to a browser context JSON file (Playwright storageState format)
pageIdstringPage ID — context will be injected into the page's session
sessionIdstringSession ID to inject into (uses active session if not specified)

No output schema declared.

No examples provided.

intercept_network ~73

Intercept and block/modify network requests

NameTypeReqDescription
actionstringyesAction to take
modifyResponseobjectResponse modifications (for action="modify")
pageIdstringPage ID (uses active page if not specified)
urlPatternstringyesURL pattern to intercept (glob)

No output schema declared.

No examples provided.

list_context_files ~30

List available context files registered in settings. Use create_session with a contextPath to load one on demand.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_pages ~16

List all open browser pages/tabs

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_sessions ~19

List all browser sessions with their page counts and metadata

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

navigate_page ~86

Navigate to a URL or go back/forward/reload

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
timeoutnumberTimeout in milliseconds
typestringNavigation type
urlstringURL to navigate to (required for type="url")
waitUntilstringWhen to consider navigation complete

No output schema declared.

No examples provided.

new_page ~68

Create a new browser page/tab, optionally navigating to a URL. Specify sessionId to create in a specific session.

NameTypeReqDescription
sessionIdstringSession ID to create the page in (uses active session if not specified)
urlstringURL to navigate to after creating the page

No output schema declared.

No examples provided.

press_key ~55

Press a keyboard key or combination

NameTypeReqDescription
keystringyesKey to press (e.g., "Enter", "Tab", "Control+a")
pageIdstringPage ID (uses active page if not specified)

No output schema declared.

No examples provided.

reload_settings ~27

Reload settings from config file

NameTypeReqDescription
configPathstringPath to settings.json file

No output schema declared.

No examples provided.

remove_intercept ~48

Remove network intercept rules

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
urlPatternstringURL pattern to remove (omit to remove all)

No output schema declared.

No examples provided.

save_session ~56

Export a session's cookies and localStorage to a JSON file (Playwright storageState format)

NameTypeReqDescription
outputPathstringyesFile path to write the session state JSON
sessionIdstringyesThe session ID to save

No output schema declared.

No examples provided.

select_page ~34

Set a page as the active page for subsequent operations

NameTypeReqDescription
pageIdstringyesThe ID of the page to select

No output schema declared.

No examples provided.

start_console_capture ~43

Start capturing browser console messages

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
typesarrayFilter by message types

No output schema declared.

No examples provided.

start_network_capture ~53

Start capturing network requests

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
resourceTypesarrayFilter by resource types (document, xhr, fetch, script, etc.)

No output schema declared.

No examples provided.

start_recording ~39

Start recording user interactions (clicks, scrolls, inputs)

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)

No output schema declared.

No examples provided.

stop_console_capture ~31

Stop capturing console messages

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)

No output schema declared.

No examples provided.

stop_network_capture ~31

Stop capturing network requests

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)

No output schema declared.

No examples provided.

stop_recording ~33

Stop recording and return captured actions

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)

No output schema declared.

No examples provided.

take_screenshot ~83

Take a screenshot of the page or a specific element

NameTypeReqDescription
formatstring
fullPagebooleanCapture full scrollable page
pageIdstringPage ID (uses active page if not specified)
qualitynumberQuality for JPEG/WebP
uidstringElement UID to screenshot (from snapshot)

No output schema declared.

No examples provided.

take_snapshot ~51

Take a text snapshot of the page with interactive element UIDs for targeting

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
verbosebooleanInclude all accessibility properties

No output schema declared.

No examples provided.

wait_for ~76

Wait for text or selector to appear on the page

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
selectorstringCSS selector to wait for
statestring
textstringText to wait for
timeoutnumberTimeout in milliseconds

No output schema declared.

No examples provided.

wait_for_navigation ~63

Wait for page navigation to complete

NameTypeReqDescription
pageIdstringPage ID (uses active page if not specified)
timeoutnumberTimeout in milliseconds
urlstringURL pattern to wait for
waitUntilstring

No output schema declared.

No examples provided.

Common questions

What is the io.github.baixianger/camoufox-mcp server?

io.github.baixianger/camoufox-mcp is listed in the public MCP registry as io.github.baixianger/camoufox-mcp. Anti-detection browser automation with Camoufox - stealth Firefox for web scraping. This page covers its npm package (camoufox-mcp).

Is the io.github.baixianger/camoufox-mcp server safe to use?

io.github.baixianger/camoufox-mcp scores 75 out of 100 on VerifyMCP. We recorded 3 known advisories against it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.baixianger/camoufox-mcp server expose?

io.github.baixianger/camoufox-mcp exposes 42 tools: list_pages, new_page, select_page, close_page, navigate_page, and 37 more. Their descriptions and schemas cost roughly 2,425 tokens of context every time the server is loaded.

Is the io.github.baixianger/camoufox-mcp server still maintained?

io.github.baixianger/camoufox-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.baixianger/camoufox-mcp server under?

io.github.baixianger/camoufox-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.