camoufox-reverse-mcp
This server provides AI coding assistants with a comprehensive toolkit for JavaScript reverse engineering using the Camoufox anti-fingerprint Firefox browser (via Playwright).
Browser Control
Launch/close the Camoufox anti-detection browser with options for headless mode, OS fingerprint emulation (C++ engine-level), proxy, humanized mouse, and GeoIP
Navigate URLs, reload pages, go back in history, click elements, type text, wait for elements
Take screenshots (full page or element), accessibility tree snapshots, get page info (URL, title, viewport, full HTML)
JavaScript Execution & Debugging
Execute arbitrary JavaScript in page context; inspect variables, call functions, enumerate object properties
Set pseudo-breakpoints via JS hooks; inject persistent init scripts that run before page JS on every navigation
Script Analysis
List all scripts loaded on the page (external and inline), fetch full source, search for keywords, save scripts to local files
Hooking & Tracing
Hook functions with custom code (before/after/replace) with overwrite protection; trace calls (args, return values, call stacks)
Inject preset hooks for XHR, Fetch, Crypto APIs, WebSocket, and debugger bypass
Track property accesses on browser objects (navigator, screen, canvas, etc.); freeze prototypes to prevent hook overwriting
Retrieve/filter console logs; remove all hooks and restore original objects
Network Analysis
Start/stop network capture with URL pattern filtering and optional response body capture
List/filter captured requests (URL, method, resource type, status); get full request/response details and JS call stacks that initiated requests
Intercept requests to log, block, modify headers/body, or mock responses
Search response bodies for keywords; paginate large responses; extract values by JSON path
JSVMP Reverse Engineering
Instrument JSVMP-protected scripts to trace interpreter execution, API calls, and sensitive browser property reads — no bytecode analysis required
Extract and decode obfuscated strings (XOR/shifted string tables); compare browser environment fingerprints against Node.js/jsdom for gap analysis
Engine-Level Property Tracing
Trace DOM property access at the C++ engine level (undetectable by JSVMP) to precisely identify what environment properties a VM reads (e.g.,
navigator.*,screen.*,document.cookie)
Cookie & Storage Management
Get, set, and delete cookies; read/write localStorage and sessionStorage
Export/import complete browser state (cookies + storage) to/from JSON files
Fingerprint & Detection Verification
Get detailed browser fingerprint info (userAgent, WebGL, canvas hash, etc.)
Verify anti-detection by navigating to bot detection sites and screenshotting results
Bypass anti-debugging traps (infinite debugger loops, Function constructor checks)
Session Management
Get full session info (browser state, contexts, pages, hooks, capture status); manage request interception patterns
Enables bypassing Cloudflare's anti-bot detection systems to perform web scraping and JavaScript reverse engineering on protected sites.
Utilizes the Firefox-based Camoufox browser to provide engine-level fingerprint spoofing and stealthy automation capabilities.
Provides a comprehensive suite of tools for JavaScript reverse engineering, including script source analysis, function hooking, dynamic debugging, and execution.
Supports blocking WebRTC to prevent IP leaks and enhance anonymity during automated browser operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@camoufox-reverse-mcpintercept fetch requests on example.com and analyze the encryption parameters"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
camoufox-reverse-mcp
An MCP Server based on an anti-fingerprinting browser, specifically designed for JavaScript reverse engineering.
An MCP (Model Context Protocol) server that allows AI coding assistants (Claude Code, Cursor, Cline, etc.) to perform reverse engineering operations via the Camoufox anti-fingerprinting browser, including: API parameter analysis, static JS file analysis, dynamic breakpoint debugging, function hook tracing, network traffic interception, JSVMP bytecode analysis, and Cookie/storage management.
Why choose Camoufox?
Feature | chrome-devtools-mcp | camoufox-reverse-mcp |
Browser Engine | Chrome (Puppeteer) | Firefox (Camoufox) |
Anti-detection | None | C++ Engine-level fingerprinting |
Debugging | Limited (no breakpoints) | Playwright + JS Hook |
JSVMP Analysis | None | Interpreter instrumentation + Source-level rewriting |
Hook Persistence | Not supported | Context-level persistence, auto-re-injection after navigation |
Core Advantages:
Camoufox modifies fingerprint information at the C++ level, not via JS-layer patching, making it undetectable at the root.
Juggler protocol sandbox isolation makes Playwright completely undetectable by page JS.
BrowserForge generates fingerprints based on real-world traffic statistical distributions, not random combinations.
Works normally on various strong anti-scraping sites like RS, AK, JY, CF, etc.
Hooks use
Object.definePropertyfor anti-overwrite protection, preventing page scripts from restoring original methods.
Related MCP server: JS Reverse MCP
Quick Start
Method 1: Direct Installation via AI Chat (Recommended)
In the chat box of your AI coding tool (Cursor / Claude Code / Codex, etc.), enter:
帮我安装下这个mcp工具:camoufox-reverse-mcp
项目地址:https://github.com/WhiteNightShadow/camoufox-reverse-mcpThe AI will automatically complete the entire process of cloning, installing dependencies, and configuring the MCP Server.
Method 2: Manual Installation
git clone https://github.com/WhiteNightShadow/camoufox-reverse-mcp.git
cd camoufox-reverse-mcp
pip install -e .Client Configuration
{
"mcpServers": {
"camoufox-reverse": {
"command": "python",
"args": ["-m", "camoufox_reverse_mcp"]
}
}
}{
"mcpServers": {
"camoufox-reverse": {
"command": "python",
"args": ["-m", "camoufox_reverse_mcp", "--headless"]
}
}
}{
"mcpServers": {
"camoufox-reverse": {
"command": "python",
"args": [
"-m", "camoufox_reverse_mcp",
"--proxy", "http://127.0.0.1:7890",
"--geoip",
"--humanize"
]
}
}
}Overview of Available Tools (35 total)
Browser Control
Tool | Description |
| Launch the Camoufox anti-fingerprinting browser |
| Close the browser and release resources |
| Navigate to a specified URL (supports pre_inject_hooks, redirect_chain tracking) |
| Refresh the page |
| Take a screenshot (supports full page, specific elements) |
| Get the page accessibility tree (token efficient) |
| Click an element / Type text |
| Wait for an element to appear or URL to match |
| Get current page URL, title, viewport size |
JS Execution & Debugging
Tool | Description |
| Execute arbitrary JS expressions in the page context (multi-strategy JSON parsing) |
Script Analysis
Tool | Description |
| Script management: |
| Search keywords (full search if |
Hook & Tracing
Tool | Description |
| Hook or trace functions: |
| One-click injection of preset hooks (xhr / fetch / crypto / websocket / debugger_bypass / cookie / runtime_probe) |
| Remove all hooks and restore original objects |
| Get page console output |
Network Analysis
Tool | Description |
| Network capture control: |
| List captured requests (supports filtering by URL / domain / method / type / status code) |
| Get full request details ( |
| Get the JS call stack that initiated the request |
| Intercept requests: log / block / modify / mock / stop |
JSVMP Reverse Analysis
Anti-scraping Type → Tool Path Reference Table
Anti-scraping Type
Representative
✅ Recommended Path
❌ Disable
Signature-based (Environment = Signature)
RS 5/6, AK sensor_data
instrumentation(action="install")
pre_inject_hooks,hook_jsvmp_interpreter(mode="proxy")Behavior-based (Parameter signature)
TK JSVMP, JY gt4
hook_jsvmp_interpreter(mode="proxy")—
Pure Obfuscation
Common JS obfuscators
Any combination
—
Tool | Description |
| JSVMP runtime probe ( |
| Source-level instrumentation: |
| Browser environment fingerprint collection, for comparison with Node.js/jsdom |
Cookie & Storage
Tool | Description |
| Cookie management: |
| Get localStorage / sessionStorage |
| Export / Import full browser state |
Verification & Environment
Tool | Description |
| Offline verification of signature functions: pass sample list, character-level comparison, locate first deviation point |
| One-stop self-check: MCP version, dependencies, browser status, camoufox-reverse custom version detection |
| Clean up residuals (hooks / capture / routes), without closing the browser |
Engine-level Property Tracing (New in v1.1.0)
Requires camoufox-reverse custom browser. Returns an error if not installed, does not affect other tools.
Tool | Description |
| C++ engine-level DOM property access tracing (JSVMP undetectable). Supports summary/timeline/sequence/search views. |
| List all local trace files (for post-analysis) |
| Query specified historical trace files, supports filtering by object/keyword |
Usage Scenarios
Scenario 1: Reverse Engineering Login Interface Signature Parameters
1. launch_browser()
2. inject_hook_preset("xhr")
3. inject_hook_preset("crypto")
4. navigate("https://example.com/login")
5. type_text("#username", "test") → click("#login-btn")
6. list_network_requests(method="POST")
7. get_request_initiator(request_id=3) ← 定位签名函数
8. search_code("sign") ← 搜索签名代码
9. hook_function("window.getSign", mode="trace")
10. reload() → get_console_logs() ← 收集追踪数据Scenario 2: General JSVMP Reverse Engineering (RS / AK / Self-developed VMP)
1. launch_browser()
2. network_capture(action="start")
3. navigate("https://target-site.com/")
4. list_network_requests(resource_type="script") ← 找到 VMP 脚本
5. instrumentation(action="install", url_pattern="**/vmp_target*.js", mode="ast")
6. inject_hook_preset("cookie", persistent=True)
7. instrumentation(action="reload") ← 让插桩生效
8. instrumentation(action="log", type_filter="tap_get") ← 看 VMP 读了什么环境
9. instrumentation(action="log", type_filter="tap_method") ← 看 VMP 调了什么 API
10. compare_env() ← 收集环境用于 Node.js 补齐Scenario 3: Verifying Protocol Code
1. launch_browser() → navigate("https://target.com")
2. network_capture(action="start")
3. # 触发目标操作,收集带签名的请求
4. reqs = list_network_requests(url_filter="api/search")
5. # 提取样本
6. verify_signer_offline(
signer_code="(s) => ({'X-Bogus': mySign(s.url)})",
samples=[{"id": "r1", "input": {...}, "expected": {"X-Bogus": "..."}}]
)👉 For complete anti-scraping type identification and workflows, see docs/JSVMP_PLAYBOOK.md
Scenario 4: Engine-level Tracing of JSVMP Environment Fingerprints (New in v1.1.0)
Requires camoufox-reverse custom browser
1. launch_browser(enable_trace=True) ← 启动带 C++ 追踪的浏览器
2. navigate("https://www.douyin.com/video/xxx") ← JSVMP 执行,事件自动记录
3. trace_property_access(duration=0, mode="summary", collect_values=True)
→ 返回 JSVMP 实际读取的 42 个 DOM 属性、访问频次、以及真实值
→ 小值内联返回,大值(Canvas/WebGL/Cookie 等)自动保存到
~/.cache/camoufox-reverse/values/ 目录
# 按时间线查看属性访问节奏
4. trace_property_access(duration=0, mode="timeline", bucket_ms=500)
# 按对象过滤
5. trace_property_access(duration=0, filter_object="webgl")
# 搜索特定属性
6. trace_property_access(duration=0, mode="search", search_query="cookie")Difference from compare_env:
trace_property_access: Traces properties actually read by JSVMP (precise, C++ level, undetectable)compare_env: Collects all environment properties of the browser (full, JS level)When using Path B for environment spoofing, use trace results to decide "which properties to patch" to avoid introducing new leaks by over-patching
Technical Architecture
┌─────────────────────────────────────────────────┐
│ AI 编码助手 (Cursor / Claude) │
│ ↕ MCP (stdio) │
├─────────────────────────────────────────────────┤
│ camoufox-reverse-mcp (35 tools) │
│ ┌──────────┬──────────┬──────────┬──────────┐ │
│ │Navigation│ Script │Debugging │ Hooking │ │
│ │ │ Analysis │ │ │ │
│ ├──────────┼──────────┼──────────┼──────────┤ │
│ │ Network │ JSVMP │ Cookie │ Verify │ │
│ │ Capture │ Analysis │ Storage │ Signer │ │
│ ├──────────┴──────────┴──────────┴──────────┤ │
│ │ ★ PropertyTracer (trace_property_access) │ │
│ │ C++ 引擎层 DOM 属性追踪(JSVMP 不可检测) │ │
│ └───────────────────────────────────────────┘ │
│ ↕ Playwright API │
├─────────────────────────────────────────────────┤
│ Camoufox (反指纹 Firefox, Juggler 协议) │
│ C++ 引擎级指纹伪造 · BrowserForge 真实指纹分布 │
└─────────────────────────────────────────────────┘Changelog
v1.1.0 (2026-04-22) — Engine-level Property Tracing
Added 3 tools,
launch_browseraddedenable_traceparameter.
New Tools
trace_property_access— C++ engine-level DOM property access tracing (JSVMP undetectable), supports summary/timeline/sequence/search viewslist_trace_files— List local trace filesquery_trace_file— Query historical trace files
Changes
launch_browseraddedenable_traceparameter; when enabled, it automatically injectsCAMOU_CONFIGandMOZ_DISABLE_CONTENT_SANDBOXcheck_environmentaddedcamoufox_reversefield to detect custom browser installation status
Dependencies
Requires camoufox-reverse custom browser (optional, not installing it does not affect the other 32 tools)
v1.0.0 (2026-04-18) — Tool Streamlining + Return to Pure JS Reverse Toolset
Major Version: 80 → 32 tools, schema tokens halved. Removed Session archive/assertion system, returned to pure JS reverse tool positioning.
Tool Merging (v0.9.0)
network_capture(action=start/stop/clear/status)← start/stop_network_capturescripts(action=list/get/save)← list_scripts / get_script_source / save_scriptsearch_code(keyword, script_url=None)← search_code / search_code_in_scripthook_function(path, mode=intercept/trace)← hook_function / trace_functioninstrumentation(action=install/log/stop/reload/status)← instrument_jsvmp_source / get_instrumentation_log / stop_instrumentation / reload_with_hooks / get_instrumentation_statuscookies(action=get/set/delete)← get_cookies / set_cookies / delete_cookies
Removed Tools
Session archive system (7): start/stop_reverse_session, list_sessions, get_session_snapshot, attach_domain_readonly, export/import_session
Assertion system (4): add/verify/list/remove_assertion
Cold tools (37): trace_property_access, freeze_prototype, find_dispatch_loops, get_page_content, bypass_debugger_trap, check_detection, get_fingerprint_info, dump_jsvmp_strings, evaluate_js_handle, add_init_script, set_breakpoint_via_hook, get_breakpoint_data, etc.
New
verify_signer_offline— Stateless signature function verification (replaces verify_against_session)
Bug Fixes (v0.8.1)
evaluate_js: Multi-strategy JSON parsing (control character cleaning, double-encoding unpacking)navigate: Cleans network cache by default to prevent cross-navigation request pollutionget_network_request:max_body_sizeparameter controls body truncation (default 5000)launch_browser: Returns residual state diagnosis when already_running
Removed Dependencies: tldextract (used only by Session)
Design Philosophy: MCP is a pure toolset (stateless) and does not perform workflow management. Memory/accumulation of analysis projects belongs to the skill layer and user workspace.
v0.6.0 — Practical Bug Fixes
hook_jsvmp_interpreter(mode="proxy"): Fixedtoo much recursioncaused by Proxy recursionremove_hooks: Truly restores Proxy objectsevaluate_js: BOM / lone surrogate / whitespace auto-cleaninginstrument_jsvmp_source: CSP pre-checknavigate: Graceful degradation on timeout
v0.5.0 — Signature-based Anti-scraping Compatibility
instrument_jsvmp_sourcedefault MCP-side AST rewritinghook_jsvmp_interpreteraddedmode="transparent"Anti-scraping type decision table + JSVMP Playbook
v0.4.0 — General JSVMP Adaptation
Source-level instrumentation, Cookie attribution, runtime probes
hook_jsvmp_interpreter multi-path coverage rewriting
v0.3.0 — Stability Fixes
v0.2.0 — Hook Persistence + JSVMP Analysis
v0.1.0 — Initial Version (44 tools)
Feedback / Communication
If you encounter bugs during use, want new Hook presets, or want to discuss JS reverse engineering ideas, feel free to add me on WeChat:
WeChat ID:
han8888v8888
Please add a note "camoufox-reverse" when adding me so I can accept your request quickly.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server for anti-detection browser automation that uses Camoufox to bypass bot detection and spoof digital fingerprints. It enables AI agents to perform human-like web interactions, including realistic cursor movements, humanized click delays, and automatic cookie popup dismissal.36957MIT
- AlicenseCqualityAmaintenanceAn MCP server for JavaScript reverse engineering that enables AI to perform browser debugging, script analysis, and automated hook injection. It streamlines complex workflows like deobfuscation, network tracing, and risk assessment through direct browser integration.3567964Apache 2.0
- Alicense-qualityBmaintenanceA Chrome DevTools Protocol-based MCP server that enables AI coding assistants to control browsers for JavaScript debugging, reverse engineering, web scraping, and API debugging.9461Apache 2.0
- Alicense-qualityFmaintenanceA powerful MCP server for browser debugging and reverse engineering, providing AI coding assistants with comprehensive browser automation, JavaScript debugging, and network analysis capabilities.418Apache 2.0
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
MCP server for understanding Javascript internals from ECMAScript specification.
A paid remote MCP for AI agent browser approval MCP, built to return verdicts, receipts, usage logs,
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/WhiteNightShadow/camoufox-reverse-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server