← JS Reverse MCP

JS Reverse MCP 2.0.5

npm · jsreverser-mcp · current release

73
Tools
0
Resources
0
Templates
0
Prompts

Observation

Observed 2026-08-15T20:24:26.376Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "logging": {},
  "tools": {
    "listChanged": true
  }
}

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

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.