camoufox-jsreverser-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LLM_API_KEY | No | API key for the chosen LLM provider. | |
| LLM_BASE_URL | No | Base URL for openai-compatible provider; optional for others. | |
| LLM_PROVIDER | No | LLM provider: 'openai', 'anthropic', or 'openai-compatible'. Leave empty to disable LLM tools. | |
| CAMOUFOX_PATH | No | Path to Camoufox binary. Default: /Applications/Camoufox.app/Contents/MacOS/camoufox (macOS) | |
| GECKODRIVER_PATH | No | Path to geckodriver binary. Default: /usr/local/bin/geckodriver. Apple Silicon: /opt/homebrew/bin/geckodriver | |
| LLM_DEFAULT_MODEL | No | Default model ID for LLM tools. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_browser_healthA | Verify Firefox is connected and BiDi reports ready. |
| list_pagesB | List browsing contexts (tabs and iframes) currently open in Firefox. |
| new_pageC | Open a new browsing context (tab). |
| select_pageB | Set the active browsing context for subsequent tool calls. |
| navigate_pageC | Navigate the current context to a URL, or perform reload / back / forward. |
| list_framesA | List frames (top + iframes) under the active page as a flat array. |
| select_frameB | Set the active frame (iframe) context for subsequent tool calls. Pass empty string to clear. |
| take_screenshotC | Take a screenshot of the active page as base64 PNG. |
| get_performance_metricsA | Get W3C performance metrics from the active page (navigation timing + paint). M3 adds engine-level metrics behind the same tool. |
| list_scriptsA | List script resources loaded on the active page (URL + size). Does not include inline blocks; M3 RDP version will. |
| get_script_sourceA | Get the source of a script by URL. Fetches via the page (BiDi limitation; CORS may block cross-origin). Cached. |
| find_in_scriptA | Find string or regex pattern in a single cached script. Use get_script_source first to populate the cache. |
| search_in_scriptsA | Search a string or regex across ALL cached scripts. Populate the cache with get_script_source first. |
| search_in_sourcesA | Alias of search_in_scripts. M3 RDP version differentiates by including dynamically-evaluated sources too. |
| create_hookB | Create a hook definition. Use inject_hook to attach it to the page or workers. |
| inject_hookC | Inject a created hook into the page or worker(s). target: "page" | "worker:" | "all-workers" (default "page"). |
| get_hook_dataB | Read collected samples for a hook. Optionally limit count and filter by timestamp. |
| list_hooksA | List all registered hooks with their injection status and sample count. |
| remove_hookC | Remove a hook and its preload script registration. |
| hook_functionB | Create and inject a hook in one call. Convenience wrapper around create_hook + inject_hook. |
| unhook_functionC | Alias for remove_hook (kept for compatibility with the original CDP project naming). |
| trace_functionA | Trace a function: hook with capture preset [args, return, stack]. Convenience wrapper for call-chain debugging. |
| list_network_requestsA | List network requests collected since session start. Filter by URL substring, method, or response presence. |
| get_network_requestA | Get full details of a single network request by ID. Optionally fetch its body via networkObserver.getData. |
| get_request_initiatorB | Get the initiator info for a request. Returns BiDi initiator + (when M3 initiatorTracer is wired) normalized {type, stack[{scriptUrl,line,column,functionName?}]}. |
| break_on_xhrB | Install a hook that issues |
| remove_xhr_breakpointA | Remove an XHR/fetch breakpoint registered by break_on_xhr. |
| get_storageA | Read cookies, localStorage, sessionStorage, and IndexedDB names for the active page. |
| save_session_stateB | Snapshot cookies + localStorage + sessionStorage of all known window realms into an in-memory snapshot. |
| restore_session_stateC | Restore a previously saved snapshot back into the browser (cookies + localStorage + sessionStorage). |
| dump_session_stateB | Export a named snapshot as a JSON string (for writing to disk). |
| load_session_stateC | Load a snapshot from a JSON string (previously produced by dump_session_state). |
| list_session_statesA | List all named session snapshots in memory. |
| delete_session_stateB | Delete a named session snapshot from memory. |
| get_dom_structureA | Get a flattened summary of the DOM tree (up to depth 4, 20 children per node). |
| query_domC | CSS selector query against the active page. Returns shared node references. |
| find_clickable_elementsB | Find all clickable elements (links, buttons, role=button, onclick, submit inputs) on the active page. |
| click_elementC | Click a DOM element identified by its sharedId. |
| type_textC | Type text into a DOM element identified by its sharedId. |
| wait_for_elementC | Wait for a CSS selector to match an element on the active page. |
| list_console_messagesC | Return console log entries from the active session. Optionally limit and filter by level. |
| get_console_messageA | Get a single console entry by index. |
| evaluate_scriptC | Evaluate a JS expression in a window realm of the active (or specified) context. |
| monitor_eventsC | Start a monitor for RDP resource types (console-message, error-message, network-event, source, document-event, etc.). |
| stop_monitorA | Stop a monitor previously started by monitor_events. |
| list_websocket_connectionsC | List active WebSocket connections detected on the page. |
| get_websocket_messageC | Get a single frame by wsid + frameIndex. |
| get_websocket_messagesC | Get multiple frames for a wsid with optional filters. |
| analyze_websocket_messagesC | Cluster frames by byte-signature heuristic. v1 local-only; no LLM. |
| list_workersA | List workers (dedicated, shared, service) visible on the active page. M3 RDP version adds offline worker detection. |
| select_workerA | Set the active worker realm. Pass empty string to clear. Used as default target by hook tools. |
| set_breakpointA | Set a breakpoint by source URL + line (+ optional column). columnTolerance > 0 enables multi-hit auto-resume until the paused column falls within ± tolerance of the requested column. |
| set_breakpoint_on_textA | Set a breakpoint by searching for a text string in cached sources (+ optional sourceUrl filter). columnTolerance > 0 enables multi-hit auto-resume. |
| remove_breakpointB | Remove an existing breakpoint by its bpId. |
| list_breakpointsA | List all currently registered breakpoints. |
| pauseA | Pause script execution in the debugger thread. |
| resumeA | Resume script execution after a pause. |
| step_overC | Step over the current statement (skips into function calls). |
| step_intoC | Step into the current function call. |
| step_outA | Step out of the current function, resuming until the caller. |
| get_paused_infoA | Get information about the current paused state (callframe, location, why). Fails if not paused. |
| evaluate_on_callframeA | Evaluate a JavaScript expression in the context of the current paused callframe. Throws if not paused. |
| inspect_objectC | Inspect an RDP object grip: preview + prototype + own properties (+ optional internal slots). |
| set_javascript_enabledA | Enable or disable JavaScript execution for a browsing context. Per-context scope via BiDi emulation.setScriptingEnabled — does not affect other tabs. |
| set_csp_enabledA | Enable or disable CSP enforcement for a browsing context. Per-context scope via BiDi browsingContext.setBypassCSP — when enabled=false, bypass is set so inline injections succeed. |
| inject_stealthC | Apply a stealth preset via BiDi preload. Default: firefox-default. |
| inject_stealth_hookA | Render a stealth-hardened wrap (Function.toString masking + channel-emitting Proxy) over one or more dotted global paths, optionally with performance.now/Date.now timing neutralisation, then install via BiDi preload. Main world only — use inject_stealth_to_workers for worker realms. |
| inject_stealth_to_workersA | Push a stealth preset (default firefox-default) into every dedicated/shared worker realm via post-start eval. With watch:true (default) subscribes to new-worker events for the rest of the session. |
| list_stealth_featuresB | List the stealth features the capability knows about. |
| list_stealth_presetsB | List the stealth presets the capability knows about. |
| inject_preload_scriptB | Inject arbitrary preload JavaScript via BiDi script.addPreloadScript. Source runs before page scripts. |
| set_user_agentC | Override the User-Agent string for a browsing context via BiDi emulation.setUserAgentOverride. |
| understand_codeB | Use an LLM to explain what a JS snippet does. Returns LlmNotConfigured cleanly when no provider is set. |
| summarize_codeC | Use an LLM to produce a bullet-list summary of a JS snippet. Returns LlmNotConfigured when no provider is set. |
| deobfuscate_codeB | Apply local AST transforms (constant fold / string array decrypt / dead-code / control-flow hint) to deobfuscate a JS snippet. |
| detect_cryptoB | Run static crypto-algorithm signature rules (AES/RC4/MD5/SHA*/Base64/HMAC/RSA/SM*) against inline source or a cached script. |
| analyze_targetC | Summarize cached scripts: crypto signature hits + sensitive API usage. Filter by URL substring. |
| risk_panelB | Aggregate risk signals across cached scripts: crypto, exfil, fingerprint, storage writes, dynamic eval. Returns weighted score. |
| collect_codeC | Fetch and cache the source of every script URL on the active page. If urls/urlSubstring given, only those are collected. |
| export_rebuild_bundleC | Bundle cached scripts + hook samples + network samples + env probes into artifacts/tasks//. |
| diff_env_requirementsA | Diff two pip-style requirement files. Returns added / removed / changed / unchanged buckets plus counts. |
| record_reverse_evidenceC | Append a reverse-engineering evidence record to artifacts/tasks//runtime-evidence.jsonl. |
| export_session_reportA | Render a Markdown summary of the current session (scripts / requests / hooks / evidence) into artifacts/tasks//report.md. |
| collection_diffB | Diff two keyed collections (scripts / requests / hooks). Items with the same key but different hash become "changed". Used by evidence comparisons. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/wukaka/camoufox-jsreverser-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server