Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

JS Reverse MCP

NPM · @YUANHUAKK/JS-REVERSE-MCP · SCANNED AUG 7

MCP server for JavaScript reverse engineering and browser debugging.

+51 this week 51 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security83
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known medium-severity CVE affects @hono/node-server 1.19.17, reached via @modelcontextprotocol/sdk > @hono/node-server. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • Dependency health was assessed across the 200 of 204 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency19
  • Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 44 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability43
  • AI-judged instruction clarity (poor).Fail
  • Tool/resource definitions use about 7784 tokens (~86/item across 90 items; 90 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage83
  • 97% of tools have a non-trivial description (not blank, and not just the tool's name).Partial
  • 55% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @yuanhuakk/js-reverse-mcp

# add to Claude Code
claude mcp add yuanhuakk-js-reverse-mcp -- npx -y @yuanhuakk/js-reverse-mcp
# add to Codex CLI
codex mcp add yuanhuakk-js-reverse-mcp -- npx -y @yuanhuakk/js-reverse-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "yuanhuakk-js-reverse-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@yuanhuakk/js-reverse-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add yuanhuakk-js-reverse-mcp --command npx --arg -y --arg @yuanhuakk/js-reverse-mcp
# ~/.hermes/config.yaml
mcp_servers:
  yuanhuakk-js-reverse-mcp:
    command: "npx"
    args: ["-y", "@yuanhuakk/js-reverse-mcp"]
// mcp.json
{
  "mcpServers": {
    "yuanhuakk-js-reverse-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@yuanhuakk/js-reverse-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 6 Aug 26 +22
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 97 functional
    • MCP protocol: unverified → pass functional
    • First check of Schema quality: pass functional
    • First check of Schema quality: poor functional
    • First check of Tool coverage: 55 functional
    • First check of Schema quality: fail functional
  • 2 Aug 26 +29
    • GHSA-frvp-7c67-39w9 affects this package: medium security
    • Provenance: unverified → fail security
    • Known CVEs: unverified → fail security
    • Install scripts: unverified → pass security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: our sandbox run of this package did not complete, so we have no schema to compare. security
    • License: unverified → pass functional
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Schema quality: Schema quality not yet verified: our sandbox run of this package did not complete, so we have no schema to assess. functional
    • Capabilities: Protocol version not yet verified: our sandbox run of this package did not complete, so we never saw its MCP handshake. functional
    • Tool coverage: Tool coverage not yet verified: our sandbox run of this package did not complete, so we have no tool definitions to assess. functional
    • Licence: Apache-2.0 functional
  • 1 Aug 26 0
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Capabilities: Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet. functional
    • Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
  • 31 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −18
    • Malware scan: pass → unverified security
  • 29 Jul 26 −4
    • Dependency health: partial → unverified functional
  • 27 Jul 26 +3
    • Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
  • 26 Jul 26 19

    First indexed and scored.

    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 7 Aug 2026 · Analysed npm/@yuanhuakk/[email protected]

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm
Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-frvp-7c67-39w9 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N yes
Dependencies 200 packages
Packages resolved 200
Deprecated 191
Stale 47
Tree resolution Partial

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools · 90 exposed · ~7,784 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
analyze_target ~143

一键式逆向流程:采集代码、执行安全与加密分析、可选反混淆,并关联 hook 时间线。

NameTypeReqDescription
autoInjectHooksboolean
autoReplayActionsarray
collectobject
correlationWindowMsinteger
hookPresetstring
maxCorrelatedFlowsinteger
maxFingerprintsinteger
runDeobfuscationboolean
topNinteger
urlstringyes
useAIboolean
waitAfterHookMsinteger

No output schema declared.

No examples provided.

analyze_websocket_messages ~91

分析 WebSocket 消息并按模式/指纹对其分组。在直播流场景中理解二进制/protobuf 消息类型时尤为关键。为每种消息类型返回统计信息和样本索引。

NameTypeReqDescription
directionstringOnly analyze messages in this direction.
wsidnumberyesThe wsid of the WebSocket connection to analyze.

No output schema declared.

No examples provided.

auto_patch_env ~265

闭环自动补环境:反复运行 rebuild 包 → 抓取 first divergence → 按补丁注册表自动写回 env.js → 重跑,直到复现成功、跑通无报错,或达到迭代上限(默认 6,符合「超过 6 个补丁未收敛就回浏览器取证」)。仅自动修补注册表内的低风险宿主缺口(window/self/document/navigator/location/history/screen/localStorage/sessionStorage/crypto/atob/btoa/TextEncoder/TextDecoder);遇到注册表外的错误(fetch/XHR/自定义检测等)会停下并交回人工。需先 export_rebuild_bundle 生成产物包。

NameTypeReqDescription
entryRelativePathstring
envRelativePathstring被自动写回补丁的 env 文件,相对 taskDir(默认 env/env.js)。
expectedstring若设置,stdout 包含该值即判定复现成功并提前停止。
maxIterationsinteger最多自动补丁轮数(默认 6)。
taskDirstringyesexport_rebuild_bundle 返回的 taskDir。
timeoutinteger

No output schema declared.

No examples provided.

break_on_xhr ~45

设置一个断点,当 XHR/Fetch 请求的 URL 包含指定字符串时触发。

NameTypeReqDescription
urlstringyesURL pattern to break on (partial match).

No output schema declared.

No examples provided.

bypass_anti_debug ~108

消除常见的反调试防护,使调试/观察得以进行:在引擎层面跳过所有 debugger 暂停(破解 `debugger;` 陷阱),并注册一个预加载补丁,在后续页面加载时丢弃仅用于触发 debugger 的定时器循环。传入 off=true 可恢复正常的暂停行为。

NameTypeReqDescription
offbooleanRestore normal debugger pausing instead of bypassing.

No output schema declared.

No examples provided.

check_browser_health ~29

在运行逆向工作流之前,检查浏览器连接状态和活动页面就绪情况。

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

check_llm_health ~37

检查 LLM 服务商配置,可选发起一次实时对话探测。

NameTypeReqDescription
liveCheckboolean

No output schema declared.

No examples provided.

click_element ~23

通过选择器点击一个元素。

NameTypeReqDescription
selectorstringyes

No output schema declared.

No examples provided.

collect_code ~275

从页面采集 JavaScript 代码,支持智能模式(summary/priority/incremental/full)。

NameTypeReqDescription
enableAdvancedDynamicAnalysisbooleanOpt-in advanced dynamic analysis report. Adds broader browser-state, async, worker, wasm, fingerprint and anti-debug sampling plus replay and Node reproduction drafts.
enableRuntimeSamplerbooleanOpt-in runtime sampler. Captures lightweight stack summaries for fetch, XHR, WebSocket, crypto, time, random, btoa and atob before page scripts run.
includeDynamicboolean
includeExternalboolean
includeInlineboolean
limitinteger
maxFileSizeinteger
maxSensitiveEvidenceLengthintegerMaximum plaintext length per target-parameter evidence record (default 2000).
maxTotalSizeinteger
patternstring
returnModestring
smartModestring
targetParamSampleWindowMsintegerRuntime sampler correlation window for target parameter requests.
targetParamsarrayOpt-in target parameter tracing. Matches target names in request query, headers and body, then links them to runtime stacks and replay hints.
topNinteger
urlstringyes

No output schema declared.

No examples provided.

collection_diff ~44

对比前后两次采集到的文件摘要。

NameTypeReqDescription
currentarray
includeUnchangedboolean
previousarrayyes

No output schema declared.

No examples provided.

create_hook ~85

推荐:为 function/fetch/xhr/property/cookie/websocket/eval/timer 创建 hook 脚本。hook 在不暂停页面执行的情况下运行,相比断点是监控与拦截的首选方案。

NameTypeReqDescription
actionstring
descriptionstring
paramsobject
typestringyes

No output schema declared.

No examples provided.

crypto_verify ~187

在 Node 中计算标准加密原语(md5/sha*/hmac-*/base64/hex/AES-CBC),并可选地与观测到的值进行比对——用于确认复现的签名或加密方案。

NameTypeReqDescription
expectedstringIf set, compare the result against this value.
inputstringyesInput data (interpreted using inputEncoding).
inputEncodingstringHow to read input (default: utf8).
ivstringIV for aes-*-cbc operations.
ivEncodingstring
keystringKey for hmac-* / aes-* operations.
keyEncodingstring
opstringyesThe operation to run.
outputEncodingstringOutput encoding for hash/hmac/encrypt (default: hex).

No output schema declared.

No examples provided.

delete_session_state ~31

按 sessionId 删除一个内存中的会话快照。

NameTypeReqDescription
sessionIdstringyes

No output schema declared.

No examples provided.

deobfuscate_code ~54

AI 辅助的 JavaScript 反混淆。

NameTypeReqDescription
aggressiveboolean
codestringyes
renameVariablesboolean
useAIboolean

No output schema declared.

No examples provided.

detect_crypto ~39

从 JavaScript 源码中检测加密算法与加密库。

NameTypeReqDescription
codestringyes
useAIboolean

No output schema declared.

No examples provided.

diff_env_requirements ~54

将本地运行时的失败与观察到的浏览器能力进行对比,并给出下一步的环境修补建议。

NameTypeReqDescription
observedCapabilitiesarray
runtimeErrorstringyes

No output schema declared.

No examples provided.

dump_session_state ~56

将已保存的会话快照导出为 JSON,可选择写入文件。

NameTypeReqDescription
encryptboolean
pathstring
prettyboolean
sessionIdstringyes

No output schema declared.

No examples provided.

evaluate_on_callframe ~84

在暂停时,于指定调用帧的上下文中执行一段 JavaScript 表达式。可借此查看变量并在暂停的作用域中执行代码。

NameTypeReqDescription
expressionstringyesThe JavaScript expression to evaluate.
frameIndexintegerThe call frame index to evaluate in (0 = top frame, default: 0).

No output schema declared.

No examples provided.

evaluate_script ~113

在当前选中的页面内执行一个 JavaScript 函数。返回结果以 JSON 形式给出, 因此返回值必须可被 JSON 序列化。

NameTypeReqDescription
functionstringyesA JavaScript function declaration to be executed by the tool in the currently selected page. Example without arguments: `() => { return document.title }` or `async () => { return await fetch("exa…

No output schema declared.

No examples provided.

export_rebuild_bundle ~215

根据观察到的逆向证据导出本地 Node 复现产物包。

NameTypeReqDescription
autoGenerateboolean
captureobject
entryCodestring
envBaselinestringautoGenerate 时的补环境基线:minimal=零依赖手搓壳(默认,适合强指纹检测目标);jsdom=jsdom DOM 基线 + core-js + 保真覆盖层(适合 DOM 操作密集目标)。
envCodestring
goalstringyes
maxEvidenceItemsinteger
notesarray
polyfillsCodestring
targetActionDescriptionstring
targetFunctionNamesarray
targetKeywordsarray
targetUrlstringyes
targetUrlPatternsarray
taskIdstringyes
taskSlugstringyes

No output schema declared.

No examples provided.

export_session_report ~38

将当前逆向会话导出为 JSON 或 Markdown。

NameTypeReqDescription
formatstring
includeHookDataboolean

No output schema declared.

No examples provided.

find_clickable_elements ~32

查找可点击的按钮/链接,可选按文本过滤。

NameTypeReqDescription
filterTextstring

No output schema declared.

No examples provided.

find_in_script ~149

在指定脚本中查找字符串,返回其精确的行/列位置以及周围上下文。非常适合在整段代码挤在一行的压缩文件中设置断点。

NameTypeReqDescription
caseSensitivebooleanWhether the search is case-sensitive (default: true).
contextCharsintegerNumber of characters to show before and after the match (default: 100).
occurrenceintegerWhich occurrence to find (1 = first, 2 = second, etc.).
querystringyesThe string to find in the script.
scriptIdstringyesThe script ID to search in (from list_scripts).

No output schema declared.

No examples provided.

get_console_message ~52

按 ID 获取单条控制台消息。可通过调用 list_console_messages 获取全部消息。

NameTypeReqDescription
msgidnumberyesThe msgid of a console message on the page from the listed console messages

No output schema declared.

No examples provided.

get_coverage ~133

收集自 start_coverage 以来累积的 JS 执行覆盖率,报告实际运行过的函数,按脚本分组并按调用次数排序。返回相对上一次 get_coverage 调用的增量。

NameTypeReqDescription
maxFunctionsPerScriptintegerMaximum executed functions to list per script (default: 40).
maxScriptsintegerMaximum number of scripts to report (default: 30).
stopbooleanStop and disable coverage after collecting (default: false).
urlFilterstringOnly include scripts whose URL contains this substring.

No output schema declared.

No examples provided.

get_dom_structure ~34

获取当前页面的 DOM 树结构。

NameTypeReqDescription
includeTextboolean
maxDepthinteger

No output schema declared.

No examples provided.

get_hook_data ~64

获取某个 hook 或全部 hook 捕获的数据。支持原始(raw)视图和用于降噪的摘要(summary)视图。

NameTypeReqDescription
hookIdstring
maxRecordsinteger
viewstring

No output schema declared.

No examples provided.

get_network_request ~66

按可选的 reqid 获取某个网络请求;省略时返回 DevTools 网络面板中当前选中的请求。

NameTypeReqDescription
reqidnumberThe reqid of the network request. If omitted returns the currently selected request in the DevTools Network panel.

No output schema declared.

No examples provided.

get_paused_info ~75

获取当前暂停状态的信息,包括调用栈、当前位置和作用域变量。命中断点后用它来了解执行上下文。

NameTypeReqDescription
includeScopesbooleanWhether to include scope variables (default: true).
maxScopeDepthintegerMaximum scope depth to traverse (default: 2).

No output schema declared.

No examples provided.

get_performance_metrics ~19

通过 Performance API 获取页面性能指标。

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_request_initiator ~132

获取发起某个网络请求的 JavaScript 调用栈,便于追踪是哪段代码触发了 API 调用。

NameTypeReqDescription
goalstringOptional reverse-engineering goal for the task artifact.
requestIdintegeryesThe request ID (from list_network_requests) to get the initiator for.
targetUrlstringOptional target page URL associated with the reverse task.
taskIdstringOptional reverse task ID for writing durable evidence artifacts.
taskSlugstringOptional reverse task slug used when opening the task artifact directory.

No output schema declared.

No examples provided.

get_script_source ~166

通过 scriptId 获取 JavaScript 脚本的源代码。支持按行号范围(普通文件)或字符偏移(压缩成单行的文件)读取。请先用 `list_scripts` 查找 scriptId。

NameTypeReqDescription
endLineintegerEnd line number (1-based). Use for multi-line files.
lengthintegerNumber of characters to return when using offset (default: 1000).
offsetintegerCharacter offset to start from (0-based). Use for minified single-line files.
scriptIdstringyesThe script ID (from list_scripts) to get the source code for.
startLineintegerStart line number (1-based). Use for multi-line files.

No output schema declared.

No examples provided.

get_storage ~54

获取浏览器存储数据,包括 cookies、localStorage 和 sessionStorage。

NameTypeReqDescription
filterstringOptional filter string to match against keys/names.
typestringWhich storage to retrieve (default: all).

No output schema declared.

No examples provided.

get_websocket_message ~76

通过 frame 索引获取单条 WebSocket 消息。请先使用 get_websocket_messages 或 analyze_websocket_messages 找到 frame 索引。

NameTypeReqDescription
frameIndexintegeryesThe frame index (0-based) to retrieve.
wsidnumberyesThe wsid of the WebSocket connection.

No output schema declared.

No examples provided.

get_websocket_messages ~183

获取某个 WebSocket 连接的消息。重要:对于二进制/protobuf 消息(如直播流),请先使用 analyze_websocket_messages 了解消息类型,再通过 groupId 参数筛选特定类型。默认模式仅显示摘要。

NameTypeReqDescription
directionstringFilter by direction: "sent" or "received".
groupIdstringFilter by group ID (A, B, C, ...). Get group IDs from analyze_websocket_messages first.
pageIdxintegerPage number (0-based).
pageSizeintegerMessages per page. Defaults to 10.
show_contentbooleanSet to true to show full message payload. Default false (summary only) to avoid large binary output.
wsidnumberyesThe wsid of the WebSocket connection.

No output schema declared.

No examples provided.

hook_function ~170

逆向推荐方式:hook 一个 JavaScript 函数,在不暂停执行的情况下记录它的调用、参数和返回值。在自动化流程中比断点更可靠。监控函数时请将其作为默认方式。

NameTypeReqDescription
hookIdstringCustom identifier for this hook. Used to unhook later. Defaults to target name.
logArgsbooleanWhether to log function arguments (default: true).
logResultbooleanWhether to log return value (default: true).
logStackbooleanWhether to log call stack (default: false).
targetstringyesThe function to hook. Can be: global function name ("fetch"), object method ("XMLHttpRequest.prototype.open"), or path ("window.app.api.request").

No output schema declared.

No examples provided.

inject_hook ~26

将已有的 hook 注入到当前页面。

NameTypeReqDescription
hookIdstringyes

No output schema declared.

No examples provided.

inject_preload_script ~71

注册一段 JavaScript 代码,使其在后续文档加载时、页面脚本执行之前运行。可用于预加载脚本的钩子、环境修补以及早期插桩。

NameTypeReqDescription
scriptstringyesJavaScript source to register for future document loads.

No output schema declared.

No examples provided.

inject_stealth ~31

向当前页面注入反检测 stealth 脚本。

NameTypeReqDescription
presetstring

No output schema declared.

No examples provided.

inspect_object ~114

深度检查一个 JavaScript 对象,展示它的属性、原型链和方法。便于理解对象结构。

NameTypeReqDescription
depthintegerHow deep to inspect nested objects (default: 2).
expressionstringyesJavaScript expression to evaluate and inspect (e.g., "window.app", "document.body", "myObject").
showMethodsbooleanWhether to show methods (default: true).
showPrototypebooleanWhether to show prototype chain (default: true).

No output schema declared.

No examples provided.

inspect_wasm ~115

检查页面实例化的 WebAssembly 模块。action="install" 会 hook WebAssembly.instantiate 以记录导出/导入(请在 WASM 运行之前调用——如果它在加载时实例化则需重新加载);action="report" 列出捕获的模块及其导出和导入的名称/类型。

NameTypeReqDescription
actionstring"install" the capture hook, or "report" captured modules.
maxintegerMax modules to list.

No output schema declared.

No examples provided.

list_breakpoints ~25

列出当前调试会话中所有生效的断点。

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_console_messages ~123

列出当前选中页面自上次导航以来的所有控制台消息。

NameTypeReqDescription
includePreservedMessagesbooleanSet to true to return the preserved messages over the last 3 navigations.
pageIdxintegerPage number to return (0-based). When omitted, returns the first page.
pageSizeintegerMaximum number of messages to return. When omitted, returns all requests.
typesarrayFilter messages to only return messages of the specified resource types. When omitted or empty, returns all messages.

No output schema declared.

No examples provided.

list_frames ~48

以树状结构列出当前页面中的所有 frame(包括 iframe),显示 frame 索引、名称和 URL。使用 select_frame 可将执行上下文切换到指定 frame。

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_hooks ~18

列出所有生效的函数 hook。

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_network_requests ~123

列出当前选中页面自上次导航以来的所有网络请求。

NameTypeReqDescription
includePreservedRequestsbooleanSet to true to return the preserved requests over the last 3 navigations.
pageIdxintegerPage number to return (0-based). When omitted, returns the first page.
pageSizeintegerMaximum number of requests to return. When omitted, returns all requests.
resourceTypesarrayFilter requests to only return requests of the specified resource types. When omitted or empty, returns all requests.

No output schema declared.

No examples provided.

list_pages ~18

获取浏览器中已打开的页面列表。

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_scripts ~69

列出当前页面已加载的所有 JavaScript 脚本,返回 scriptId、URL 和 source map 信息。在设置断点或搜索之前用它来查找脚本。

NameTypeReqDescription
filterstringOptional filter string to match against script URLs (case-insensitive partial match).

No output schema declared.

No examples provided.

list_session_states ~24

列出内存中所有已保存的会话快照。

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_stealth_features ~23

列出可用的 stealth 功能开关。

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.