2.0.5npm · jsreverser-mcp · current release
Observed 2026-08-15T20:24:26.376Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.
{
"logging": {},
"tools": {
"listChanged": true
}
}| Tool | Category | Annotations | Risk |
|---|---|---|---|
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 · — | — |