Jshookmcp MCP server
io.github.vmoranv/jshookmcp·v0.4.2·2.1k starsSearch-first MCP server for JavaScript reverse engineering: 735 tools across 36 domains.
2.1k stars1.1k downloads/wk
Reviews
Write oneNobody has reviewed Jshookmcp yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Jshookmcp tools (100, 12 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
activate_toolsDynamically register specific tools by name, regardless of current base tier. Use after search_tools to enable exactly the tools you need. In search-tier sessions this is usually enough; use activate_domain when you need every tool in a domain. Activated tools appear in the tool list immediately. If tools do not appear after activation, use call_tool to invoke them directly.
adb_apk_analyzeAnalyze an installed APK: package, permissions, activities, and security info.
adb_apk_pullPull an APK from a device to the local filesystem.
adb_app_cold_start_traceHigh-level Android startup trace: force-stop, clear logcat, start activity with -W, wait, collect PID-filtered logs, and parse launch/Looper timing.
adb_device_listList all connected Android devices and emulators.
adb_dumpsyswrite actionRun adb shell dumpsys for a service and return parsed structured output. Supports key-value extraction, array parsing, and section detection. Common services: package, activity, window, battery, meminfo, alarm, cpuinfo, diskstats, netstats, usagestats.
adb_file_pullPull a file from an Android device using normal ADB permissions.
adb_file_pushPush a local file to an Android device using normal ADB permissions.
adb_getpropDump and parse Android system properties (getprop) into a structured map with a curated device fingerprint (model, SDK, ABI, build fingerprint, security patch, bootloader lock).
adb_input_keyeventwrite actionSend an Android keyevent name or numeric key code through adb shell input.
adb_input_swipewrite actionSend a touchscreen swipe event through adb shell input.
adb_input_tapwrite actionSend a touchscreen tap event through adb shell input.
adb_input_textwrite actionSend text through adb shell input text with Android-safe whitespace encoding.
adb_installInstall one APK or a split-APK set onto a device with parsed success output.
adb_logcat_queryCapture and filter Android logcat output in-process without shell grep pipelines.
adb_package_summaryReturn structured Android package metadata: launcher, uid, versions, permissions, components, and native library dirs.
adb_port_forwardManage ADB forward/reverse port mappings for device-host bridge workflows.
adb_proc_mapsRead and parse /proc/PID/maps from a device, resolving PID from packageName when needed.
adb_pull_native_libsPull native shared libraries (.so) for an installed app from a device.
adb_root_checkProbe root indicators such as su, Magisk, test-keys, SELinux, and shell uid.
adb_screenrecordRecord a short MP4 screen capture through adb shell screenrecord and pull it locally.
adb_screenshotCapture a PNG screenshot through adb exec-out screencap -p.
adb_shellwrite actionExecute an ADB shell command on a specific device.
adb_ui_dumpCapture Android UI hierarchy via uiautomator dump. Runs uiautomator dump on-device, pulls the XML, and returns parsed UI tree. Useful for UI automation verification, layout inspection, and accessibility tree analysis.
adb_uninstallUninstall a package from a device, optionally keeping app data.
adb_webview_attachAttach to a WebView via ADB; returns WebSocket debugger URL for CDP.
adb_webview_listList debuggable WebView targets connected via ADB.
ai_hookManage AI hooks. Actions: inject (inject code into page), get_data (retrieve captured hook data), list (all active hooks), clear (remove hook data by id or all), toggle (enable/disable a hook), export (export data as JSON/CSV).
ai_suggest_exploitsUse LLM to suggest exploit primitives and attack chains for a given vulnerability. Returns theoretical exploitation steps, references, and required conditions. IMPORTANT: Does NOT generate executable payloads or malicious code.
analysis_ast_matchMatch AST nodes by type and optional property filter.
analysis_data_flowTrace data flow through JavaScript: identify sources (user input, network, storage), sinks (XSS, eval, SQL injection, command execution), sanitizer pass-through points, and tainted variable propagation paths. Useful for finding injection vulnerabilities.
analysis_decode_string_arrayDecode literal string-array access back to strings.
analysis_deflat_control_flowFlatten switch-dispatch control flow back to straight-line code.
analysis_security_scanStatic security scan of JavaScript: detect hardcoded secrets (API keys, tokens), dangerous functions (eval, Function constructor), XSS sinks (innerHTML, document.write), SQL injection patterns, and weak crypto (Math.random). Returns structured risks with severity and recommendations.
android_runtime_dump_sessionwrite actionCreate or inspect a managed Android runtime dump session from Frida/ADB dump artifacts, DEX files, and /proc/PID/maps snapshots.
antidebug_bypassBypass one or more anti-debug protection types. Specify types to apply; omit or use ["all"] to apply all bypasses. Types: all, debugger_statement, timing, stack_trace, console_detect.
antidebug_detect_protectionsDetect anti-debug protections in current page with bypass recommendations.
api_probe_batchBatch-probe API endpoints in browser context with auto token injection and HTML skip.
apk_dex_intakeBuild a cohesive APK/DEX intake evidence packet: ZIP entries, manifest summary, DEX headers, native libraries, generic surface hints, caller-supplied hint matches, and next actions.
apk_manifest_dumpExtract AndroidManifest.xml from an APK for quick inspection.
apk_manifest_queryReturn a compact structured AndroidManifest summary: package, launcher activity, app class, SDKs, permissions, components, providers, and SDK/surface hints.
apk_native_libs_listList packaged native shared libraries (.so) inside an APK.
apk_packer_detectDetect Android APK packers by matching `lib/<abi>/lib*.so` filenames against user-supplied customSignatures (ReDoS-guarded regex compilation). The framework ships no built-in signature table — callers provide their own. **Does not unpack, execute, or otherwise interact with packed code.**
apk_packer_list_signaturesList the in-process signature table used by `apk_packer_detect`. Empty by default; reflects caller-managed state at request time. Optionally filter by case-insensitive category substring.
apk_signSign an APK with apksigner using a caller-supplied keystore. Pairs with apktool_build for a full repack-and-sign workflow.
apk_signing_block_parseRead-only parser for the APK Signing Block (schemes v2/v3/v3.1/v4) plus key-rotation lineage detection and residue-block / dex-prefix / magic-offset anomaly flags. Never mutates the APK.
apk_static_triageOne-shot APK triage: ZIP metadata, manifest summary, native libs, asset hints, likely packers/protectors, and recommended next steps.
apktool_buildRebuild an APK from a decoded apktool source directory (closes the patch-and-repack loop with apk_sign).
apktool_decodeDecode an APK using apktool to inspect resources, manifest, and smali output.
append_session_insightRecord a persisted insight for the current session.
arp_buildBuild a deterministic ARP payload for Ethernet/IPv4.
asar_deobfuscateScan every .js file inside an ASAR archive for obfuscation indicators (string-array arrays, webpack bundles, control-flow flattening, dynamic code, minification) and classify each file. Flagged files are optionally extracted to a directory for downstream deobfuscation.
asar_extractExtract and list files from an Electron ASAR package.
asar_repackPack a directory tree into an Electron ASAR archive (inverse of asar_extract). Walks the input directory and writes a valid .asar (4xUInt32LE pickle prefix + JSON header + data segment) that parseAsarBuffer and Electron accept. Closes the unpack → patch → repack → retest loop without leaving jshookmcp.
asar_searchGrep text patterns inside ASAR archive contents without extraction.
ast_transform_applyApply transforms to input code or a live page scriptId.
ast_transform_beautifyPretty-print minified or obfuscated JavaScript: re-emit the parsed source with standard 2-space indentation and normalised spacing. Formatting only — the AST is preserved, so program semantics do not change. Unparseable input is returned unchanged.
ast_transform_chainwrite actionCreate and store an in-memory transform chain.
ast_transform_previewPreview lightweight AST-like transforms (string/regex based) and return before/after diff.
binary_decodeDecode binary payloads, transport encodings, and compressed blobs into hex, utf8, or json output.
binary_detect_formatDetect binary payload format and encoding signals.
binary_encodeEncode utf8/hex/json input into transport encodings or compressed base64 blobs.
binary_entropy_analysisCompute entropy and byte frequency for a payload.
binary_entropy_profileCompute Shannon entropy across fixed-size chunks of a binary file to locate encrypted / packed / compressed sections. High-entropy regions (>=7.0 bits/byte) are likely encrypted or compressed; low-entropy (<4.0) are typically code or text. Pure-compute, no external tools.
binary_instrument_capabilitiesReport binary instrumentation backend availability.
binary_key_extractScan a binary for hardcoded key candidates (raw high-entropy, Base64, hex). Read-only — no decryption.
binary_ninja_bridgewrite actionSend a command to a local Binary Ninja analysis bridge.
binary_strings_extractExtract printable ASCII/UTF-16LE strings from a binary file with regex filtering.
blackbox_addBlackbox scripts (skip during debugging) Usage: - Skip third-party library c...
blackbox_add_commonBlackbox all common libraries (one-click) Includes: - jquery, react, vue, an...
blackbox_listList script blackbox patterns.
breakpointManage breakpoints: code (line/script), function-name, XHR (URL pattern), event listener, event category, and exception breakpoints. Actions: - set: Create a breakpoint. Type determines required params. - remove: Remove a breakpoint by ID. - list: List active breakpoints of the given type. Types & params: - code: lineNumber (required), scriptId?, columnNumber?, condition?, logMessage? (logpoint: l
browse_extension_registryBrowse the online extension registry for installable plugins and workflows.
browser_attachConnect to a running browser.
browser_attach_cdp_targetAttach to a CDP target by targetId.
browser_cdp_performance_metricsAtomic primitive: fetch browser runtime metrics via CDP Performance.getMetrics() on the active page. Returns raw CDP-level counters (LayoutCount, RecalcStyleCount, ScriptDuration, TaskDuration, JSHeapUsedSize, Nodes, Documents, Frames, ...) — not Web Vitals (use browser_get_metrics for those).
browser_closeClose the browser and release all resources.
browser_codegen_startStart recording browser actions as replayable steps.
browser_codegen_stopStop recording browser actions and return cleaned replay steps.
browser_cpu_profile_startAtomic primitive: begin CDP CPU profiling on the active page (Profiler.start). Pair with browser_cpu_profile_stop to save the .cpuprofile. Set samplingInterval to 30-100 µs for high-resolution profiles (default 1000 µs / 1 ms).
browser_cpu_profile_stopAtomic primitive: stop CDP CPU profiling, rank hot functions by sample count, and persist the raw profile to artifacts/profiles/ (or a custom path). The hot function list is derived from the samples array — modern Chrome profiles do not populate hitCount. Fails clearly if profiling was never started.
browser_detach_cdp_targetDetach the current CDP target session.
browser_evaluate_cdp_targetEvaluate JS in the attached CDP target.
browser_font_fingerprintEnumerate locally-installed fonts for fingerprint analysis. Primary path is the Local Font Access API (queryLocalFonts, Chromium 103+); when unavailable or denied, falls back to a small document.fonts.check probe set. Returns the detected font set, a stable hash for comparison, and optionally spoofs the font fingerprint.
browser_get_metricsAtomic primitive: collect page performance metrics via PerformanceMonitor — Web Vitals (FCP, LCP, CLS, TTFB), DOM timing (domContentLoaded, loadComplete), engine-level counters (scriptDuration, layoutDuration, recalcStyleDuration) and JS heap sizes (usedJSHeapSize / totalJSHeapSize / jsHeapSizeLimit). Optionally include the raw performance timeline entries. Replaces the legacy network-domain perfo
browser_jsdom_cookiesManage cookies on a JSDOM session. Isolated from the attached browser.
browser_jsdom_executewrite actionEvaluate JS inside a JSDOM session. Requires explicit authorization — arbitrary code execution.
browser_jsdom_parseParse HTML into an in-memory JSDOM session. No browser needed.
browser_jsdom_queryQuery a JSDOM session with a CSS selector.
browser_jsdom_serializeSerialize a JSDOM session to HTML.
browser_launchLaunch Chromium/Camoufox or connect to a running browser.
browser_list_cdp_targetsList CDP targets with optional type/URL/title filters.
browser_list_tabsList open browser tabs with URLs and titles.
browser_list_workersEnumerate Service Worker / Shared Worker / dedicated Web Worker targets via Target.getTargets. Use browser_worker_scripts(targetId=...) afterwards to dump a worker's loaded scripts — essential for inspecting PWA / SW-backed auth code.
browser_passkey_seedSeed a WebAuthn/Passkey credential into the browser for test automation.
call_toolwrite actionExecute an already-active tool by name. Use this when activate_tools/activate_domain registered a tool but your client did not refresh its tool list. Does not auto-activate inactive tools.
coverage_reportReport which tools have been called in the current runtime and which known tools remain uncalled. Loads all domains first so the uncalled list reflects the full tool catalog, not just currently active tools.
deactivate_toolswrite actionRemove previously activated tools to free context. Only affects dynamically activated tools (added via activate_tools, activate_domain, or extension activation), not base profile tools.
describe_toolGet detailed information about a specific tool, including its input schema. Use this to see the exact parameters a tool expects before calling it.
route_toolOne-stop tool router: accepts a natural language task description, returns recommended tools and next actions. Automatically detects workflow patterns, recommends activation order, and provides example arguments. Use this instead of search_tools when you want guided tool discovery with actionable next steps.
Public scan report
scanner v0.1.10 · 2026-11-11 · same rubric, same numbers if you re-run it
- Code scan340 source files scanned20/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 1 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Findings (1)
- mediumeval / new Function used
exec.evaldist/CodeAnalyzerDataFlow-Cykq8j6h.mjs: …`,line:n},description:`Critical: Use of eval() allows arbitrary code execution`,recom…
How Jshookmcp compares
Against every graded Web search MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 85/100
- higher than 75% of 3,443 Web search servers
- Tools
- 100
- the typical Web search server has 5
- Tools that change things
- 12%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 2,108
- more than 95% of 1,781 Web search servers
- Downloads a week
- 1,148
- more than 95% of 994 Web search servers with a package
What its tools let an agent do: 88 read · 12 change
Release history: 2 versions in the registry since 2026-05-03, latest 2026-10-10, typically one every 160 days.
Install Jshookmcp in Claude Code, Cursor or VS Code
Runs npx -y @jshookmcp/jshook on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add jshookmcp -- npx -y @jshookmcp/jshook
What the publisher says
From the Jshookmcp repository's README, as published. We do not edit it. Read it on GitHub
@jshookmcp/jshook
A search-first, profile-aware reverse-engineering workspace for AI agents.
Hook the page, capture the network, deobfuscate the bundle, disassemble the WASM, instrument the process — and let one MCP server keep the whole attack surface in reach without drowning the model in schemas.
English · 中文
<!-- npm badge: re-add once @jshookmcp/jshook is published -->
What's different · Capabilities · Use cases · Highlights · Transport · Registry · Architecture · Build
Documentation · Getting Started · Configuration · Tool Reference
Sponsored by Swiftproxy — Premium Residential Proxies for Web Automation · 10% off code: PROXY90
What makes jshook different
Most MCP servers for JS analysis expose a handful of hand-rolled tools or wrap a single browser engine. jshook is closer to an operating system for front-end reverse engineering — 36 self-discovered domains, a search-first meta-tool that keeps token cost under control, and runtime recovery that survives broken pages and dropped sessions:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Grade history
- 2026-11-11restoreC → Ascore 85: eval / new Function used
Jshookmcp: common questions
- Is Jshookmcp MCP server safe?
- Yes, by our scan: it is graded A (85/100). Read the Jshookmcp safety report
- How do I install Jshookmcp?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Jshookmcp need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Jshookmcp maintained?
- The last commit was 5 days ago (2026-11-10). The latest release is v0.4.2.
- What can I use instead of Jshookmcp?
- Servers from other publishers that do the same job: Free Search MCP server, Claude Ops Telegram MCP server and FrankenSurf MCP server.
- How does Jshookmcp compare with other Web search MCP servers?
- safety score 85/100 (higher than 75% of 3,443 Web search servers); tools 100 (the typical Web search server has 5); tools that change things 12% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Jshookmcp
Same job from other publishers: the closest match first, then the best rated.
Free SearchNo-API-key web search, page fetching and document reading across many engines. Local-first.not reviewedEstablishedB- Claude Ops TelegramTelegram personal-account MCP (MTProto user-auth). Read DMs, send messages, search across chats.not reviewedEstablishedB
- FrankenSurfRead any web page and search the web: 28 tools, cheapest first, every page checked.not reviewedEstablishedA
- ShodanMCP server for Shodan API — device search, IP and domain recon, DNS, and CVE/CPE queries.not reviewedEstablishedB
Legal Data HunterSearch 18M+ legal documents worldwide — case law, legislation, and doctrine across 110+ countries.not reviewedEstablishedA