LeashIndex Get the report

Index / messaging

JS Reverse MCP

io-github-yuanhuakk-jsreverser-mcp declares 96 capabilities across 96 tools, with 2 critical issues.

98/100 exposureHigh exposure

Manifest recorded 2026-10-14 from tools/list answered by the npm package @yuanhuakk/js-reverse-mcp@3.0.0 (published to npm as @yuanhuakk/js-reverse-mcp, listed in the official MCP registry as io.github.YuanHuakk/JSReverser-MCP 3.0.0), run in an isolated container with no network access and no credentials. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 96 tools

96 of 96 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

critical · irreversible-uncapped · 4 of 96 tools

4 tools are classified as irreversible and declare no limit.

high · no-expiry · All 96 tools

96 of 96 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 96 tools

96 of 96 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

high · uncapped-write · 37 of 96 tools

37 tools can modify data and declare no limit.

low · uncapped-read · 55 of 96 tools

55 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
analyze_targetread inferred
analyze_websocket_messagesread declared
auto_patch_envwrite inferred
break_on_xhrread inferred
bypass_anti_debugwrite assumed
check_browser_healthread declared
check_llm_healthread declared
click_elementwrite assumed
collect_coderead declared
collection_diffread declared
create_hookwrite inferred
crypto_verifyread declared
decrypt_calls_in_pagewrite assumed
delete_session_statedelete inferred
deobfuscate_coderead declared
detect_cryptoread declared
diff_env_requirementsread declared
disassemble_wasmread declared
dump_session_stateread declared
evaluate_on_callframeread declared
evaluate_scriptwrite assumed
export_rebuild_bundlewrite assumed
export_session_reportread declared
find_clickable_elementsread declared
find_in_scriptread declared
get_console_messageread declared
get_coverageread inferred
get_dom_structureread declared
get_hook_dataread declared
get_network_requestread declared
get_paused_inforead declared
get_performance_metricsread declared
get_request_initiatorread declared
get_script_sourceread declared
get_storageread declared
get_websocket_messageread declared
get_websocket_messagesread declared
hook_crypto_apiswrite assumed
hook_functionwrite assumed
inject_hookwrite assumed
inject_preload_scriptwrite assumed
inject_stealthwrite assumed
inspect_objectread declared
inspect_wasmwrite assumed
instrument_jsvmpwrite inferred
list_breakpointsread declared
list_console_messagesread declared
list_framesread declared
list_hooksread declared
list_network_requestsread declared
list_pagesread declared
list_scriptsread declared
list_session_statesread declared
list_stealth_featuresread declared
list_stealth_presetsread declared
list_websocket_connectionsread declared
load_session_statewrite assumed
monitor_eventsread inferred
navigate_pagewrite assumed
neutralize_debuggerwrite inferred
new_pagewrite assumed
pausewrite assumed
query_astread declared
query_domread declared
reconstruct_jsvmp_traceread declared
record_reverse_evidencewrite assumed
remove_breakpointdelete inferred
remove_hookdelete inferred
remove_xhr_breakpointdelete inferred
replay_requestwrite inferred
restore_session_statewrite assumed
resumewrite assumed
risk_panelread declared
run_rebuildwrite assumed
save_session_stateread declared
search_in_scriptsread declared
search_in_sourcesread declared
select_frameread inferred
select_pageread declared
set_breakpointwrite inferred
set_breakpoint_on_textwrite inferred
set_user_agentwrite inferred
snapshot_scoperead declared
start_coveragewrite assumed
step_intowrite assumed
step_outwrite assumed
step_overwrite assumed
stop_monitorwrite assumed
summarize_coderead declared
take_screenshotwrite assumed
trace_functionwrite assumed
type_textwrite assumed
understand_coderead declared
unhook_functionwrite assumed
wait_for_elementread declared
watch_propertywrite assumed
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.