MCP server intelligence profile

JS Reverse MCP Server

An 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

Local OnlyNoOne-hub
Awaiting current scanNpm · 2.0.5

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

1Distribution channel
73Independently observed tools
0Linked remote endpoints
AvailableVersion intelligence

Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.

Install and connect

Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.

Install jsreverser-mcp from npm

Version 2.0.5 declares 1 executable entrypoint.

npm install --save-exact jsreverser-mcp@2.0.5
npx -y -p jsreverser-mcp@2.0.5 jsreverser-mcp
MCP client configuration example
{
  "mcpServers": {
    "jsreverser-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "jsreverser-mcp@2.0.5",
        "jsreverser-mcp"
      ]
    }
  }
}

Identity

Canonical slugjs-reverse-mcp-6da6d29aDeploymentLocal Only
Canonical packagenpm:jsreverser-mcpRepositoryNoOne-hub/JSReverser-MCP
First publishedLatest release
Last security verificationClassification confidence90%
PublicationDraftOfficial distributionNot verified

Distributions

ChannelIdentifierCurrent versionVersionsSource
npmjsreverser-mcp2.0.53Repository

Current release

PackageVersionPublished / observedInventorySecurity scan
npmjsreverser-mcp2.0.5CurrentSep 4, 202673 toolsSucceeded · 0 resources · 0 promptsEvidence restricted
Enterprise protection

Continuously monitor this MCP for security risk

Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.

  • Independent exact-version security scans
  • Continuous release and vulnerability monitoring
  • Risk-change alerts with capability context
  • Historical evidence and API exports
Custom pricingContact salesTailored to your organization, integrations, data needs, and support requirements.

Current version evidence

No public current-version evidence is available yet.

Current protocol inventory

2025-06-18Negotiated protocol
chrome_devtoolsServer-reported name
2Capability groups
Aug 15, 2026Observed

Tools 73

ToolCategoryAnnotationsRisk
analyze_targetOne-shot reverse workflow: collect code, run security/crypto analysis, optional deobfuscation, and hook timeline correlation.
Input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri"
    },
    "topN": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "useAI": {
      "type": "boolean"
    },
    "runDeobfuscation": {
      "type": "boolean"
    },
    "hookPreset": {
      "type": "string",
      "enum": [
        "none",
        "api-signature",
        "network-core"
      ]
    },
    "autoInjectHooks": {
      "type": "boolean"
    },
    "waitAfterHookMs": {
      "type": "integer",
      "minimum": 0
    },
    "correlationWindowMs": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "maxCorrelatedFlows": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "maxFingerprints": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "autoReplayActions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "navigate",
              "click",
              "type",
              "wait",
              "scroll",
              "pressKey",
              "evaluate"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "selector": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "delay": {
            "type": "integer",
            "minimum": 0
          },
          "timeout": {
            "type": "integer",
            "exclusiveMinimum": 0
          },
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "key": {
            "type": "string"
          },
          "code": {
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "additionalProperties": false
      }
    },
    "collect": {
      "type": "object",
      "properties": {
        "smartMode": {
          "type": "string",
          "enum": [
            "summary",
            "priority",
            "incremental",
            "full"
          ]
        },
        "includeInline": {
          "type": "boolean"
        },
        "includeExternal": {
          "type": "boolean"
        },
        "includeDynamic": {
          "type": "boolean"
        },
        "maxTotalSize": {
          "type": "integer",
          "exclusiveMinimum": 0
        },
        "maxFileSize": {
          "type": "integer",
          "exclusiveMinimum": 0
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
analyze_websocket_messagesGroup WebSocket messages by pattern/fingerprint and return stats plus sample indices for each type.
Input schema
{
  "type": "object",
  "properties": {
    "wsid": {
      "type": "number",
      "description": "The wsid of the WebSocket connection to analyze."
    },
    "direction": {
      "type": "string",
      "enum": [
        "sent",
        "received"
      ],
      "description": "Only analyze messages in this direction."
    },
    "targetPageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    }
  },
  "required": [
    "wsid"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "network",
  "readOnlyHint": true
}
Read only
breakpointManage JavaScript breakpoints: set, remove, or list active breakpoints.
Input schema
{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "set",
        "remove",
        "list"
      ],
      "description": "Breakpoint action to perform."
    },
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "url": {
      "type": "string",
      "description": "URL or URL pattern for action=set. Can be a partial match or regex pattern."
    },
    "lineNumber": {
      "type": "integer",
      "description": "1-based line number for action=set."
    },
    "columnNumber": {
      "type": "integer",
      "description": "Optional column number for action=set (0-based)."
    },
    "condition": {
      "type": "string",
      "description": "Optional condition expression for action=set. Breakpoint triggers only when true."
    },
    "isRegex": {
      "type": "boolean",
      "description": "Whether action=set should treat url as a regex pattern."
    },
    "breakpointId": {
      "type": "string",
      "description": "Breakpoint ID for action=remove. Use breakpoint(action=\"list\") to inspect active IDs."
    }
  },
  "required": [
    "action"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Breakpoint",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
check_browser_healthCheck browser connectivity and active page readiness before running reverse workflows.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": true
}
Read only
click_elementClick an element by selector.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0
    },
    "selector": {
      "type": "string"
    }
  },
  "required": [
    "selector"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": false
}
Writes
collect_codeCollect JavaScript code from a page with smart modes (summary/priority/incremental/full).
Input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri"
    },
    "smartMode": {
      "type": "string",
      "enum": [
        "summary",
        "priority",
        "incremental",
        "full"
      ]
    },
    "returnMode": {
      "type": "string",
      "enum": [
        "full",
        "summary",
        "pattern",
        "top-priority"
      ]
    },
    "includeInline": {
      "type": "boolean"
    },
    "includeExternal": {
      "type": "boolean"
    },
    "includeDynamic": {
      "type": "boolean"
    },
    "maxTotalSize": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "maxFileSize": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "pattern": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "topN": {
      "type": "integer",
      "exclusiveMinimum": 0
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
collection_diffCompare previous and current collected file summaries.
Input schema
{
  "type": "object",
  "properties": {
    "previous": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "size": {
            "type": "integer",
            "minimum": 0
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "url",
          "size",
          "type"
        ],
        "additionalProperties": false
      }
    },
    "current": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "size": {
            "type": "integer",
            "minimum": 0
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "url",
          "size",
          "type"
        ],
        "additionalProperties": false
      }
    },
    "includeUnchanged": {
      "type": "boolean"
    }
  },
  "required": [
    "previous"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
console_messageList console messages, or get one message by msgid.
Input schema
{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "list",
        "get"
      ]
    },
    "msgid": {
      "type": "number",
      "description": "Message id for action=get."
    },
    "targetPageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "pageSize": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Maximum number of messages to return for action=list. When omitted, returns all messages."
    },
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Page number to return for action=list (0-based). When omitted, returns the first page."
    },
    "types": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "log",
          "debug",
          "info",
          "error",
          "warn",
          "dir",
          "dirxml",
          "table",
          "trace",
          "clear",
          "startGroup",
          "startGroupCollapsed",
          "endGroup",
          "assert",
          "profile",
          "profileEnd",
          "count",
          "timeEnd",
          "verbose",
          "issue"
        ]
      },
      "description": "Filter action=list results by message type. When omitted or empty, returns all messages."
    },
    "includePreservedMessages": {
      "type": "boolean",
      "default": false,
      "description": "Set true for action=list to include preserved messages from the last 3 navigations."
    }
  },
  "required": [
    "action"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "debugging",
  "readOnlyHint": true
}
Read only
create_hookRECOMMENDED: Create hook script for function/fetch/xhr/property/cookie/websocket/eval/timer. Hooks run without pausing page execution and are the preferred approach over breakpoints for monitoring and interception.
Input schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string"
    },
    "params": {
      "type": "object",
      "additionalProperties": {}
    },
    "description": {
      "type": "string"
    },
    "action": {
      "type": "string",
      "enum": [
        "log",
        "block",
        "modify",
        "passthrough"
      ]
    }
  },
  "required": [
    "type"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
deobfuscate_codeAI-assisted JavaScript deobfuscation.
Input schema
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "aggressive": {
      "type": "boolean"
    },
    "renameVariables": {
      "type": "boolean"
    }
  },
  "required": [
    "code"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
detect_cryptoDetect cryptographic algorithms/libraries from JavaScript source.
Input schema
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "useAI": {
      "type": "boolean"
    }
  },
  "required": [
    "code"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
diff_env_requirementsCompare local runtime failures with observed browser capabilities and suggest the next environment patches.
Input schema
{
  "type": "object",
  "properties": {
    "runtimeError": {
      "type": "string"
    },
    "observedCapabilities": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    }
  },
  "required": [
    "runtimeError"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
evaluate_on_callframeEvaluates a JavaScript expression in the context of a specific call frame while paused. This allows you to inspect variables and execute code in the paused scope.
Input schema
{
  "type": "object",
  "properties": {
    "expression": {
      "type": "string",
      "description": "The JavaScript expression to evaluate."
    },
    "frameIndex": {
      "type": "integer",
      "default": 0,
      "description": "The call frame index to evaluate in (0 = top frame, default: 0)."
    }
  },
  "required": [
    "expression"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Evaluate on Call Frame",
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
evaluate_scriptEvaluate a JavaScript function inside the currently selected page. Returns the response as JSON so returned values have to JSON-serializable.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Optional page index. When provided, runs in the target page main frame."
    },
    "function": {
      "type": "string",
      "description": "A JavaScript function declaration to be executed by the tool in the currently selected page.\nExample without arguments: `() => {\n  return document.title\n}` or `async () => {\n  return await fetch(\"example.com\")\n}`.\nExample with arguments: `(el) => {\n  return el.innerText;\n}`\n"
    }
  },
  "required": [
    "function"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "debugging",
  "readOnlyHint": false
}
Writes
export_rebuild_bundleExport a local Node rebuild bundle from observed reverse-engineering evidence.
Input schema
{
  "type": "object",
  "properties": {
    "taskId": {
      "type": "string"
    },
    "taskSlug": {
      "type": "string"
    },
    "targetUrl": {
      "type": "string"
    },
    "goal": {
      "type": "string"
    },
    "autoGenerate": {
      "type": "boolean"
    },
    "targetKeywords": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "targetUrlPatterns": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "targetFunctionNames": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "targetActionDescription": {
      "type": "string"
    },
    "maxEvidenceItems": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "entryCode": {
      "type": "string"
    },
    "envCode": {
      "type": "string"
    },
    "polyfillsCode": {
      "type": "string"
    },
    "capture": {
      "type": "object",
      "additionalProperties": {}
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    }
  },
  "required": [
    "taskId",
    "taskSlug",
    "targetUrl",
    "goal"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
export_session_reportExport current reverse-engineering session as JSON or Markdown.
Input schema
{
  "type": "object",
  "properties": {
    "format": {
      "type": "string",
      "enum": [
        "json",
        "markdown"
      ],
      "default": "json"
    },
    "includeHookData": {
      "type": "boolean"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
find_clickable_elementsFind clickable buttons/links, optionally filtered by text.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0
    },
    "filterText": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": true
}
Read only
find_in_scriptFinds a string in a specific script and returns its exact line/column position with surrounding context. Ideal for setting breakpoints in minified files where the entire code is on one line.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "scriptId": {
      "type": "string",
      "description": "The script ID to search in (from list_scripts)."
    },
    "query": {
      "type": "string",
      "description": "The string to find in the script."
    },
    "contextChars": {
      "type": "integer",
      "default": 100,
      "description": "Number of characters to show before and after the match (default: 100)."
    },
    "occurrence": {
      "type": "integer",
      "default": 1,
      "description": "Which occurrence to find (1 = first, 2 = second, etc.)."
    },
    "caseSensitive": {
      "type": "boolean",
      "default": true,
      "description": "Whether the search is case-sensitive (default: true)."
    }
  },
  "required": [
    "scriptId",
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Find in Script",
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
get_dom_structureGet DOM tree structure for current page.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0
    },
    "maxDepth": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "includeText": {
      "type": "boolean"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": true
}
Read only
get_hook_dataGet captured data for one hook or all hooks. Supports raw view and summary view for noise reduction.
Input schema
{
  "type": "object",
  "properties": {
    "hookId": {
      "type": "string"
    },
    "view": {
      "type": "string",
      "enum": [
        "raw",
        "summary"
      ]
    },
    "maxRecords": {
      "type": "integer",
      "exclusiveMinimum": 0
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
get_parameter_workflowGet one packaged parameter workflow by id or alias.
Input schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Workflow id or alias, for example `jd-h5st` or `h5st`."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
get_paused_infoGets information about the current paused state including call stack, current location, and scope variables. Use this after a breakpoint is hit to understand the execution context.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "includeScopes": {
      "type": "boolean",
      "default": true,
      "description": "Whether to include scope variables (default: true)."
    },
    "maxScopeDepth": {
      "type": "integer",
      "default": 2,
      "description": "Maximum scope depth to traverse (default: 2)."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Get Paused Info",
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
get_performance_metricsGet page performance metrics from Performance API.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": true
}
Read only
get_referenceRead one packaged reference doc, or return its compact summary.
Input schema
{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "doc",
        "summary"
      ]
    },
    "docId": {
      "type": "string",
      "enum": [
        "case-safety-policy",
        "env-patching",
        "pure-extraction",
        "reverse-bootstrap",
        "reverse-task-index",
        "reverse-workflow",
        "tool-io-contract",
        "algorithm-upgrade-template",
        "reverse-artifacts",
        "reverse-report-template",
        "reverse-update-prompt-template",
        "tool-reference"
      ]
    },
    "maxSections": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 12,
      "default": 5
    }
  },
  "required": [
    "mode",
    "docId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
get_reference_routeRoute by stage, topic, or natural-language query to the most relevant reference docs.
Input schema
{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "stage",
        "topic",
        "recommend"
      ]
    },
    "stage": {
      "type": "string",
      "enum": [
        "Observe",
        "Capture",
        "Rebuild",
        "Patch",
        "PureExtraction",
        "Port",
        "Upgrade"
      ]
    },
    "topic": {
      "type": "string",
      "enum": [
        "workflow-entry",
        "websocket",
        "hook",
        "breakpoint",
        "env-rebuild",
        "algorithm-upgrade",
        "artifacts",
        "reporting"
      ]
    },
    "query": {
      "type": "string"
    }
  },
  "required": [
    "mode"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
get_request_initiatorGets the JavaScript call stack that initiated a network request. This helps trace which code triggered an API call.
Input schema
{
  "type": "object",
  "properties": {
    "requestId": {
      "type": "integer",
      "description": "The request ID (from network_request with action=list) to get the initiator for."
    },
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "taskId": {
      "type": "string",
      "description": "Optional reverse task ID for writing durable evidence artifacts."
    },
    "taskSlug": {
      "type": "string",
      "description": "Optional reverse task slug used when opening the task artifact directory."
    },
    "targetUrl": {
      "type": "string",
      "description": "Optional target page URL associated with the reverse task."
    },
    "goal": {
      "type": "string",
      "description": "Optional reverse-engineering goal for the task artifact."
    }
  },
  "required": [
    "requestId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Get Request Initiator",
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
get_script_sourceGets the source code of a JavaScript script by its script ID. Supports line range (for normal files) or character offset (for minified single-line files). Use list_scripts first to find the script ID.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "scriptId": {
      "type": "string",
      "description": "The script ID (from list_scripts) to get the source code for."
    },
    "startLine": {
      "type": "integer",
      "description": "Start line number (1-based). Use for multi-line files."
    },
    "endLine": {
      "type": "integer",
      "description": "End line number (1-based). Use for multi-line files."
    },
    "offset": {
      "type": "integer",
      "description": "Character offset to start from (0-based). Use for minified single-line files."
    },
    "length": {
      "type": "integer",
      "default": 1000,
      "description": "Number of characters to return when using offset (default: 1000)."
    }
  },
  "required": [
    "scriptId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Get Script Source",
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
get_storageGets browser storage data including cookies, localStorage, and sessionStorage.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "type": {
      "type": "string",
      "enum": [
        "all",
        "cookies",
        "localStorage",
        "sessionStorage"
      ],
      "default": "all",
      "description": "Which storage to retrieve (default: all)."
    },
    "filter": {
      "type": "string",
      "description": "Optional filter string to match against keys/names."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Get Storage",
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
get_websocket_messageGets a single WebSocket message by its frame index. Use get_websocket_messages or analyze_websocket_messages first to find the frame index.
Input schema
{
  "type": "object",
  "properties": {
    "wsid": {
      "type": "number",
      "description": "The wsid of the WebSocket connection."
    },
    "frameIndex": {
      "type": "integer",
      "minimum": 0,
      "description": "The frame index (0-based) to retrieve."
    },
    "targetPageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    }
  },
  "required": [
    "wsid",
    "frameIndex"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "network",
  "readOnlyHint": true
}
Read only
get_websocket_messagesGets messages for a WebSocket connection. IMPORTANT: For binary/protobuf messages (like live streaming), use analyze_websocket_messages FIRST to understand message types, then use groupId parameter to filter specific types. Default mode shows summary only.
Input schema
{
  "type": "object",
  "properties": {
    "wsid": {
      "type": "number",
      "description": "The wsid of the WebSocket connection."
    },
    "direction": {
      "type": "string",
      "enum": [
        "sent",
        "received"
      ],
      "description": "Filter by direction: \"sent\" or \"received\"."
    },
    "groupId": {
      "type": "string",
      "description": "Filter by group ID (A, B, C, ...). Get group IDs from analyze_websocket_messages first."
    },
    "pageSize": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "default": 10,
      "description": "Messages per page. Defaults to 10."
    },
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Page number (0-based)."
    },
    "targetPageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "show_content": {
      "type": "boolean",
      "default": false,
      "description": "Set to true to show full message payload. Default false (summary only) to avoid large binary output."
    }
  },
  "required": [
    "wsid"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "network",
  "readOnlyHint": true
}
Read only
hook_functionRecommended default for reverse engineering: hook a function and log calls/args/results without pausing execution.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "target": {
      "type": "string",
      "description": "The function to hook. Can be: global function name (\"fetch\"), object method (\"XMLHttpRequest.prototype.open\"), or path (\"window.app.api.request\")."
    },
    "logArgs": {
      "type": "boolean",
      "default": true,
      "description": "Whether to log function arguments (default: true)."
    },
    "logResult": {
      "type": "boolean",
      "default": true,
      "description": "Whether to log return value (default: true)."
    },
    "logStack": {
      "type": "boolean",
      "default": false,
      "description": "Whether to log call stack (default: false)."
    },
    "hookId": {
      "type": "string",
      "description": "Custom identifier for this hook. Used to unhook later. Defaults to target name."
    }
  },
  "required": [
    "target"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Hook Function",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
inject_hookInject an existing hook into the current page.
Input schema
{
  "type": "object",
  "properties": {
    "hookId": {
      "type": "string"
    }
  },
  "required": [
    "hookId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
inject_preload_scriptRegister a JavaScript snippet that will run on future document loads before page scripts execute. Use this for preload hooks, environment patches, and early instrumentation.
Input schema
{
  "type": "object",
  "properties": {
    "script": {
      "type": "string",
      "description": "JavaScript source to register for future document loads."
    }
  },
  "required": [
    "script"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "debugging",
  "readOnlyHint": false
}
Writes
inject_stealthInject anti-detection stealth scripts to current page.
Input schema
{
  "type": "object",
  "properties": {
    "preset": {
      "type": "string",
      "enum": [
        "windows-chrome",
        "mac-chrome",
        "mac-safari",
        "linux-chrome",
        "windows-edge"
      ]
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
inspect_objectDeeply inspects a JavaScript object, showing its properties, prototype chain, and methods. Useful for understanding object structure.
Input schema
{
  "type": "object",
  "properties": {
    "expression": {
      "type": "string",
      "description": "JavaScript expression to evaluate and inspect (e.g., \"window.app\", \"document.body\", \"myObject\")."
    },
    "depth": {
      "type": "integer",
      "default": 2,
      "description": "How deep to inspect nested objects (default: 2)."
    },
    "showMethods": {
      "type": "boolean",
      "default": true,
      "description": "Whether to show methods (default: true)."
    },
    "showPrototype": {
      "type": "boolean",
      "default": true,
      "description": "Whether to show prototype chain (default: true)."
    }
  },
  "required": [
    "expression"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Inspect Object",
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
list_framesLists all frames (including iframes) in the current page as a tree. Shows frame index, name, and URL. Use select_frame to switch execution context to a specific frame.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
Annotations
{
  "title": "List Frames",
  "category": "debugging",
  "readOnlyHint": true
}
Read only
list_hooksLists all active function hooks.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
Annotations
{
  "title": "List Hooks",
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
list_pagesGet a list of pages open in the browser.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": true
}
Read only
list_parameter_workflowsList packaged parameter workflows that can guide reverse-engineering and rebuild steps.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
list_scriptsLists all JavaScript scripts loaded in the current page. Returns script ID, URL, and source map information. Use this to find scripts before setting breakpoints or searching.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "filter": {
      "type": "string",
      "description": "Optional filter string to match against script URLs (case-insensitive partial match)."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "List Scripts",
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
list_stealth_featuresList available stealth feature toggles.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
list_stealth_presetsList available stealth presets.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
list_websocket_connectionsList all WebSocket connections. After getting wsid, use analyze_websocket_messages(wsid) FIRST to understand message patterns before viewing individual messages.
Input schema
{
  "type": "object",
  "properties": {
    "pageSize": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Maximum number of connections to return. When omitted, returns all connections."
    },
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Page number to return (0-based). When omitted, returns the first page."
    },
    "targetPageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "urlFilter": {
      "type": "string",
      "description": "Filter connections by URL. Only connections containing this substring will be returned."
    },
    "includePreservedConnections": {
      "type": "boolean",
      "default": false,
      "description": "Set to true to return the preserved connections over the last 3 navigations."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "network",
  "readOnlyHint": true
}
Read only
monitor_eventsMonitors DOM events on a specified element or window. Events will be logged to console.
Input schema
{
  "type": "object",
  "properties": {
    "selector": {
      "type": "string",
      "default": "window",
      "description": "CSS selector for element to monitor, or \"window\"/\"document\" (default: window)."
    },
    "events": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Specific events to monitor (e.g., [\"click\", \"keydown\"]). If not specified, monitors common events."
    },
    "monitorId": {
      "type": "string",
      "description": "Custom ID for this monitor. Used to stop monitoring later."
    },
    "taskId": {
      "type": "string",
      "description": "Optional reverse task ID for writing durable evidence artifacts."
    },
    "taskSlug": {
      "type": "string",
      "description": "Optional reverse task slug used when opening the task artifact directory."
    },
    "targetUrl": {
      "type": "string",
      "description": "Optional target page URL associated with the reverse task."
    },
    "goal": {
      "type": "string",
      "description": "Optional reverse-engineering goal for the task artifact."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Monitor Events",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
navigate_pageNavigates the currently selected page to a URL, or performs back/forward/reload navigation. Waits for DOMContentLoaded event (not full page load). Default timeout is 10 seconds.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Optional page index to navigate. Defaults to the currently selected page."
    },
    "type": {
      "type": "string",
      "enum": [
        "url",
        "back",
        "forward",
        "reload"
      ],
      "description": "Navigate the page by URL, back or forward in history, or reload."
    },
    "url": {
      "type": "string",
      "description": "Target URL (only type=url)"
    },
    "ignoreCache": {
      "type": "boolean",
      "description": "Whether to ignore cache on reload."
    },
    "timeout": {
      "type": "integer",
      "description": "Maximum wait time in milliseconds. If set to 0, the default timeout will be used."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": false
}
Writes
network_requestList network requests, or get one request by reqid.
Input schema
{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "list",
        "get"
      ]
    },
    "reqid": {
      "type": "number",
      "description": "Request id for action=get. If omitted, uses the selected request in DevTools when available."
    },
    "pageSize": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Maximum number of requests to return for action=list. When omitted, returns all requests."
    },
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Page number to return for action=list (0-based). When omitted, returns the first page."
    },
    "targetPageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "resourceTypes": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "document",
          "stylesheet",
          "image",
          "media",
          "font",
          "script",
          "texttrack",
          "xhr",
          "fetch",
          "prefetch",
          "eventsource",
          "websocket",
          "manifest",
          "signedexchange",
          "ping",
          "cspviolationreport",
          "preflight",
          "fedcm",
          "other"
        ]
      },
      "description": "Filter action=list results by resource type. When omitted or empty, returns all requests."
    },
    "includePreservedRequests": {
      "type": "boolean",
      "default": false,
      "description": "Set true for action=list to include preserved requests from the last 3 navigations."
    }
  },
  "required": [
    "action"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "network",
  "readOnlyHint": true
}
Read only
new_pageCreates a new page and navigates to the specified URL. Waits for DOMContentLoaded event (not full page load). Default timeout is 10 seconds.
Input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "URL to load in a new page."
    },
    "timeout": {
      "type": "integer",
      "description": "Maximum wait time in milliseconds. If set to 0, the default timeout will be used."
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": false
}
Writes
pausePauses JavaScript execution at the current point. Use this to interrupt running code.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Pause Execution",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
query_domQuery one or multiple elements by CSS selector.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0
    },
    "selector": {
      "type": "string"
    },
    "all": {
      "type": "boolean"
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0
    }
  },
  "required": [
    "selector"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": true
}
Read only
recommend_parameter_workflowRecommend the closest packaged parameter workflow from a keyword, alias, or short natural-language query.
Input schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Keyword or short query, for example `h5st` or `query token sign`."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
record_reverse_evidenceAppend structured reverse-engineering evidence to a task artifact log.
Input schema
{
  "type": "object",
  "properties": {
    "taskId": {
      "type": "string"
    },
    "taskSlug": {
      "type": "string"
    },
    "targetUrl": {
      "type": "string"
    },
    "goal": {
      "type": "string"
    },
    "channel": {
      "type": "string",
      "default": "runtime-evidence"
    },
    "targetKeywords": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "targetUrlPatterns": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "targetFunctionNames": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "targetActionDescription": {
      "type": "string"
    },
    "entry": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "taskId",
    "taskSlug",
    "targetUrl",
    "goal",
    "entry"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
remove_hookRemove a hook by id.
Input schema
{
  "type": "object",
  "properties": {
    "hookId": {
      "type": "string"
    }
  },
  "required": [
    "hookId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
resumeResumes JavaScript execution after being paused at a breakpoint. Execution continues until the next breakpoint or completion.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Resume Execution",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
risk_panelBuild a combined risk score from analyzer, crypto detector and hook signals.
Input schema
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "useAI": {
      "type": "boolean"
    },
    "includeHookSignals": {
      "type": "boolean"
    },
    "hookId": {
      "type": "string"
    },
    "topN": {
      "type": "integer",
      "exclusiveMinimum": 0
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
search_in_scriptsSearch in collected script cache with regex pattern.
Input schema
{
  "type": "object",
  "properties": {
    "pattern": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "maxTotalSize": {
      "type": "integer",
      "exclusiveMinimum": 0
    }
  },
  "required": [
    "pattern"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
search_in_sourcesSearches for a string or regex pattern in all loaded JavaScript sources. Returns matching lines with script ID, URL, and line number. Use get_script_source with startLine/endLine to view full context around matches.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "query": {
      "type": "string",
      "description": "The search query (string or regex pattern)."
    },
    "caseSensitive": {
      "type": "boolean",
      "default": false,
      "description": "Whether the search should be case-sensitive."
    },
    "isRegex": {
      "type": "boolean",
      "default": false,
      "description": "Whether to treat the query as a regular expression."
    },
    "maxResults": {
      "type": "integer",
      "default": 30,
      "description": "Maximum number of results to return (default: 30)."
    },
    "maxLineLength": {
      "type": "integer",
      "default": 150,
      "description": "Maximum characters per line preview (default: 150). Set to 0 for full lines."
    },
    "excludeMinified": {
      "type": "boolean",
      "default": true,
      "description": "Skip minified files (files with very long lines). Default: true."
    },
    "urlFilter": {
      "type": "string",
      "description": "Only search scripts whose URL contains this string (case-insensitive)."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Search in Sources",
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
select_frameSelects a frame (by index from list_frames) as the execution context for evaluate_script, hook_function, inspect_object, and other tools that run JavaScript in the page.
Input schema
{
  "type": "object",
  "properties": {
    "frameIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "The frame index from list_frames. 0 = main frame."
    }
  },
  "required": [
    "frameIdx"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Select Frame",
  "category": "debugging",
  "readOnlyHint": false
}
Writes
select_pageSelect a page as a context for future tool calls.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "number",
      "description": "The index of the page to select. Call list_pages to list pages."
    }
  },
  "required": [
    "pageIdx"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": true
}
Read only
session_stateManage in-memory session snapshots: save, restore, list, delete, dump, or load.
Input schema
{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "save",
        "restore",
        "list",
        "delete",
        "dump",
        "load"
      ]
    },
    "pageIdx": {
      "type": "integer",
      "minimum": 0
    },
    "sessionId": {
      "type": "string"
    },
    "includeCookies": {
      "type": "boolean"
    },
    "includeLocalStorage": {
      "type": "boolean"
    },
    "includeSessionStorage": {
      "type": "boolean"
    },
    "navigateToSavedUrl": {
      "type": "boolean"
    },
    "clearStorageBeforeRestore": {
      "type": "boolean"
    },
    "path": {
      "type": "string"
    },
    "pretty": {
      "type": "boolean"
    },
    "encrypt": {
      "type": "boolean"
    },
    "snapshotJson": {
      "type": "string"
    },
    "overwrite": {
      "type": "boolean"
    }
  },
  "required": [
    "action"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": false
}
Writes
set_breakpoint_on_textSets a breakpoint on specific code (function name, statement, etc.) by searching for it and automatically determining the exact position. Works with both normal and minified files. NOTE: Prefer hook_function for monitoring function calls — it captures args/results without pausing execution. Use this only when you need to inspect local variables at a specific code location.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "text": {
      "type": "string",
      "description": "The code text to find and set breakpoint on (e.g., \"function myFunc\", \"fetchData(\", \"apiCall\")."
    },
    "urlFilter": {
      "type": "string",
      "description": "Only search in scripts whose URL contains this string (case-insensitive)."
    },
    "occurrence": {
      "type": "integer",
      "default": 1,
      "description": "Which occurrence to break on (1 = first, 2 = second, etc.)."
    },
    "condition": {
      "type": "string",
      "description": "Optional condition expression. Breakpoint only triggers when this evaluates to true."
    }
  },
  "required": [
    "text"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Set Breakpoint on Text",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
set_user_agentSet custom user-agent for active page.
Input schema
{
  "type": "object",
  "properties": {
    "userAgent": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "userAgent"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
step_intoSteps into the next function call. Use this to enter and debug function bodies.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Step Into",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
step_outSteps out of the current function, continuing until the function returns. Use this to quickly exit a function.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Step Out",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
step_overSteps over to the next statement, treating function calls as a single step. Use this to move through code without entering function bodies.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Step Over",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
stop_monitorStops an event monitor.
Input schema
{
  "type": "object",
  "properties": {
    "monitorId": {
      "type": "string",
      "description": "The monitor ID to stop."
    }
  },
  "required": [
    "monitorId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Stop Monitor",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
summarize_codeSummarize one code file, multiple files, or project-level context.
Input schema
{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "single",
        "batch",
        "project"
      ],
      "default": "single"
    },
    "code": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "files": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "size": {
            "type": "integer",
            "minimum": 0
          },
          "type": {
            "type": "string",
            "enum": [
              "inline",
              "external",
              "dynamic",
              "service-worker",
              "web-worker"
            ]
          }
        },
        "required": [
          "url",
          "content",
          "size",
          "type"
        ],
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
take_screenshotTake a screenshot of the page or element.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Optional browser page index. Defaults to the currently selected page."
    },
    "format": {
      "type": "string",
      "enum": [
        "png",
        "jpeg",
        "webp"
      ],
      "default": "png",
      "description": "Type of format to save the screenshot as. Default is \"png\""
    },
    "quality": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "Compression quality for JPEG and WebP formats (0-100). Higher values mean better quality but larger file sizes. Ignored for PNG format."
    },
    "fullPage": {
      "type": "boolean",
      "description": "If set to true takes a screenshot of the full page instead of the currently visible viewport. Incompatible with uid."
    },
    "filePath": {
      "type": "string",
      "description": "The absolute path, or a path relative to the current working directory, to save the screenshot to instead of attaching it to the response."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "debugging",
  "readOnlyHint": false
}
Writes
trace_functionTraces calls to a function by its name in the source code. Works for ANY function including module-internal functions (webpack/rollup bundled). Uses "logpoints" (conditional breakpoints) to log arguments without pausing execution.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "functionName": {
      "type": "string",
      "description": "The function name to trace. Will search for \"function NAME\" or \"NAME = function\" or \"NAME(\" patterns."
    },
    "urlFilter": {
      "type": "string",
      "description": "Only search in scripts matching this URL pattern."
    },
    "logArgs": {
      "type": "boolean",
      "default": true,
      "description": "Whether to log function arguments (default: true)."
    },
    "logThis": {
      "type": "boolean",
      "default": false,
      "description": "Whether to log \"this\" context (default: false)."
    },
    "pause": {
      "type": "boolean",
      "default": false,
      "description": "Whether to actually pause execution (default: false, just logs)."
    },
    "traceId": {
      "type": "string",
      "description": "Custom ID for this trace. Used to identify in logs."
    },
    "taskId": {
      "type": "string",
      "description": "Optional reverse task ID for writing durable evidence artifacts."
    },
    "taskSlug": {
      "type": "string",
      "description": "Optional reverse task slug used when opening the task artifact directory."
    },
    "targetUrl": {
      "type": "string",
      "description": "Optional target page URL associated with the reverse task."
    },
    "goal": {
      "type": "string",
      "description": "Optional reverse-engineering goal for the task artifact."
    }
  },
  "required": [
    "functionName"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Trace Function",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
type_textType text into an input element.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0
    },
    "selector": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "delay": {
      "type": "integer",
      "minimum": 0
    }
  },
  "required": [
    "selector",
    "text"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": false
}
Writes
understand_codeAnalyze code structure/business/security with AI + static analysis.
Input schema
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "focus": {
      "type": "string",
      "enum": [
        "all",
        "structure",
        "business",
        "security"
      ]
    }
  },
  "required": [
    "code"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "reverse_engineering",
  "readOnlyHint": true
}
Read only
unhook_functionRemoves a previously installed function hook.
Input schema
{
  "type": "object",
  "properties": {
    "hookId": {
      "type": "string",
      "description": "The hook ID to remove (from hook_function)."
    }
  },
  "required": [
    "hookId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "Unhook Function",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes
wait_for_elementWait for selector to appear.
Input schema
{
  "type": "object",
  "properties": {
    "pageIdx": {
      "type": "integer",
      "minimum": 0
    },
    "selector": {
      "type": "string"
    },
    "timeout": {
      "type": "integer",
      "exclusiveMinimum": 0
    }
  },
  "required": [
    "selector"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "category": "navigation",
  "readOnlyHint": true
}
Read only
xhr_breakpointSet or remove an XHR/Fetch breakpoint by URL substring match.
Input schema
{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "set",
        "remove"
      ],
      "description": "XHR breakpoint action to perform."
    },
    "pageIdx": {
      "type": "integer",
      "minimum": 0,
      "description": "Browser page index to inspect (0-based). When omitted, uses the currently selected page."
    },
    "url": {
      "type": "string",
      "description": "URL pattern to set/remove breakpoint for (partial match)."
    }
  },
  "required": [
    "action"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
Annotations
{
  "title": "XHR Breakpoint",
  "category": "reverse_engineering",
  "readOnlyHint": false
}
Writes

Resources 0

  • None observed.

Resource templates 0

  • None observed.

Prompts 0

  • None observed.

Remote endpoints

EndpointTransportAuthenticationHealthObserved
No verified remote endpoint is linked.

JS Reverse MCP Server questions

How do I install JS Reverse MCP Server?

Install the selected package version with: npm install --save-exact jsreverser-mcp@2.0.5

What tools does JS Reverse MCP Server provide?

JS Reverse MCP Server exposed 73 tools during independent protocol observation, including analyze_target, analyze_websocket_messages, breakpoint, check_browser_health, click_element, collect_code, collection_diff, console_message, and others.

Is JS Reverse MCP Server secure?

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

Explore related MCP server guides

Curated product and capability guides containing this catalog record.

Official vs Community MCP Servers

Let’s talk about MCP security.

Share your details and our security team will contact you.