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

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

Available components

0 this week 76 Trust /100

Last scanned (17 hours ago)

Scores higher than 53% of npm servers

Category Browser Automation

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 Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 60 of 181 dependencies flagged as unhealthy (2 deprecated). View diagnostics → Partial
Provenance & Transparency44
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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
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
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.

  • 31 Oct 26 0
    • CVE-2026-118773 affects this package: high ▼ security
    • CVE-2026-118764 affects this package: high ▼ security
  • 24 Oct 26 −2
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. security
    • Stability: 0.97 → pass security
  • 23 Oct 26 0
    • Stability: pass → 0.97 functional
  • 22 Oct 26 0
    • CVE-2026-114102 affects this package: high ▼ security
    • CVE-2026-114103 affects this package: high ▼ security
    • CVE-2026-114104 affects this package: high ▼ security
    • GHSA-c6fg-446q-cg94 no longer affects this package ▲ security
    • GHSA-8238-w5pm-2374 no longer affects this package ▲ security
    • GHSA-p634-w6r4-rjp2 no longer affects this package ▲ security
  • 17 Oct 26 0
    • Stability: 0.97 → pass security
  • 16 Oct 26 +1

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

  • 13 Oct 26 +1

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

  • 12 Oct 26 −3
    • Security disclosure: unverified → fail ▼ functional
    • Stability: pass → 0.83 functional
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 4 Nov 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 11 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-8238-w5pm-2374 CVE-2026-114102 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-c6fg-446q-cg94 CVE-2026-114103 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
GHSA-j5f4-cc29-5x44 CVE-2026-102282 high CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N yes
GHSA-p634-w6r4-rjp2 CVE-2026-114104 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N yes
GHSA-rcw4-f5rp-g42v CVE-2026-92000 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
GHSA-3g3m-2fjr-6pw4 CVE-2026-118773 medium yes
GHSA-g3hv-75wg-m249 CVE-2026-118764 medium yes
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 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 181 packages
Packages resolved 181
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
pageIdstring–Page ID (uses active page if not specified)

No output schema declared.

No examples provided.

clear_network_logs ~31

Clear captured network logs

NameTypeReqDescription
pageIdstring–Page 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––
clickCountnumber–1 for single click, 2 for double
modifiersarray–Modifier keys to hold
pageIdstring–Page 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
contextPathstring–Path to a browser context JSON file to pre-load
namestring–Human-readable name for the session

No output schema declared.

No examples provided.

dismiss_popups ~57

Dismiss cookie consent popups and overlays

NameTypeReqDescription
customSelectorsarray–Additional selectors to try
maxAttemptsnumber–Maximum attempts
pageIdstring–Page 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
pageIdstring–Page 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
pageIdstring–Page 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
pageIdstring–Page 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
pageIdstring–Page 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
pageIdstring–Page 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
limitnumber–Maximum entries to return
onlyErrorsboolean–Only return errors/warnings
pageIdstring–Page ID (uses active page if not specified)
patternstring–Filter by text pattern (regex)
typesarray–Filter 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––
pageIdstring–Page ID (uses active page if not specified)

No output schema declared.

No examples provided.

get_network_logs ~57

Get captured network request logs

NameTypeReqDescription
limitnumber–Maximum entries to return
pageIdstring–Page ID (uses active page if not specified)
urlPatternstring–Filter by URL pattern (regex)

No output schema declared.

No examples provided.

get_page_text ~46

Extract text content from the page

NameTypeReqDescription
pageIdstring–Page ID (uses active page if not specified)
selectorstring–CSS selector (defaults to body)

No output schema declared.

No examples provided.

get_recording_status ~32

Get current recording status

NameTypeReqDescription
pageIdstring–Page ID (uses active page if not specified)

No output schema declared.

No examples provided.

hover ~43

Hover over an element by its UID

NameTypeReqDescription
pageIdstring–Page 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)
pageIdstring–Page ID — context will be injected into the page's session
sessionIdstring–Session 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
modifyResponseobject–Response modifications (for action="modify")
pageIdstring–Page 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
pageIdstring–Page ID (uses active page if not specified)
timeoutnumber–Timeout in milliseconds
typestring–Navigation type
urlstring–URL to navigate to (required for type="url")
waitUntilstring–When 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
sessionIdstring–Session ID to create the page in (uses active session if not specified)
urlstring–URL 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")
pageIdstring–Page ID (uses active page if not specified)

No output schema declared.

No examples provided.

reload_settings ~27

Reload settings from config file

NameTypeReqDescription
configPathstring–Path to settings.json file

No output schema declared.

No examples provided.

remove_intercept ~48

Remove network intercept rules

NameTypeReqDescription
pageIdstring–Page ID (uses active page if not specified)
urlPatternstring–URL 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
pageIdstring–Page ID (uses active page if not specified)
typesarray–Filter by message types

No output schema declared.

No examples provided.

start_network_capture ~53

Start capturing network requests

NameTypeReqDescription
pageIdstring–Page ID (uses active page if not specified)
resourceTypesarray–Filter 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
pageIdstring–Page ID (uses active page if not specified)

No output schema declared.

No examples provided.

stop_console_capture ~31

Stop capturing console messages

NameTypeReqDescription
pageIdstring–Page ID (uses active page if not specified)

No output schema declared.

No examples provided.

stop_network_capture ~31

Stop capturing network requests

NameTypeReqDescription
pageIdstring–Page ID (uses active page if not specified)

No output schema declared.

No examples provided.

stop_recording ~33

Stop recording and return captured actions

NameTypeReqDescription
pageIdstring–Page 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––
fullPageboolean–Capture full scrollable page
pageIdstring–Page ID (uses active page if not specified)
qualitynumber–Quality for JPEG/WebP
uidstring–Element 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
pageIdstring–Page ID (uses active page if not specified)
verboseboolean–Include all accessibility properties

No output schema declared.

No examples provided.

wait_for ~76

Wait for text or selector to appear on the page

NameTypeReqDescription
pageIdstring–Page ID (uses active page if not specified)
selectorstring–CSS selector to wait for
statestring––
textstring–Text to wait for
timeoutnumber–Timeout in milliseconds

No output schema declared.

No examples provided.

wait_for_navigation ~63

Wait for page navigation to complete

NameTypeReqDescription
pageIdstring–Page ID (uses active page if not specified)
timeoutnumber–Timeout in milliseconds
urlstring–URL pattern to wait for
waitUntilstring––

No output schema declared.

No examples provided.

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
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 76 out of 100 on VerifyMCP. We recorded 11 known advisories against it as of 4 November 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 4 November 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.