JS Reverse MCP
JS Reverse MCP
English | 中文
AI-first / AI-native の JavaScript リバースエンジニアリング MCP Server。あなたの AI コーディングアシスタント(Claude、Cursor、Copilot など)が、アナリストのように Web ページ内の JavaScript の挙動を継続的にデバッグ、特定、保存、振り返りできるようにします。
これは Chrome DevTools API をそのままモデルに渡すのではなく、スクリプト、ブレークポイント、ネットワーク、WebSocket、ブラウザ状態、ローカルファイル I/O を、AI Agent が連続的に推論・操作しやすいツールとして再構成したものです。アンチ検出はその能力の一部です。デフォルトでは、本 MCP 用に再コンパイル・公開され、独立してメンテナンスされている Patchright fork を使用してプロトコル層の stealth を提供し、強力なアンチクローリングサイトではオプションで CloakBrowser のソースコード層フィンガープリントモードを有効化できます。
☁️ スポンサー · Sponsored by IPWO
IPWO 住宅代理は柔軟なプロキシ設定をサポートしており、開発者はタスクに応じて適切なネットワーク環境を選択できます。Web アクセス、リクエストテスト、地域別コンテンツ分析、自動化ワークフローに利用できます。
JS リバース、ブラウザデバッグ、Web ネットワーク分析に関わるプロジェクトでは、住宅代理もネットワーク環境の補完的な選択肢として、さまざまな地域のアクセス・テストニーズに柔軟に対応するのに役立ちます。
👉 無料テスト入口、9 割引コード:0204
Related MCP server: Chrome DevTools MCP
☁️ スポンサー · Sponsored by Infistar.cc 無限星河
js-reverse-mcp × Infistar.cc 無限星河|全モデル API · 安定駆動の AI 支援デバッグ
Infistar.cc 無限星河のスポンサーシップに感謝し、js-reverse-mcp にモデルサービスサポートを提供いただいています!
⚡ 複雑なデバッグタスクを安定的に処理:エンタープライズ級の高並列チャネルとマルチノード冗長化を提供し、価格は公式チャネルの 1 割まで低減。レート制限、429、長時間タスクの切断問題を軽減します。
🧠 1 つの API Key で主要モデルにアクセス:ChatGPT、Claude、Gemini、Kimi、GLM、DeepSeek などのモデルをサポートし、Claude Code、Codex、Cursor などの AI プログラミングツールに対応。
🔎 認可されたデバッグとセキュリティ研究を支援:スクリプト検索、ブレークポイント分析、ネットワークリクエスト追跡、コールスタック検査、コードロジック理解などのマルチステップタスクに適しています。
📦 プロジェクトユーザー限定特典:専用プロモーションリンク から登録して初回呼び出しを完了すると、5 ドル相当のテスト枠 / 初回チャージ限定特典を受け取れます。
位置づけ:Claude Code / Codex モデル API 設定のサポート。
機能特徴
AI-native ツール設計:ツールの粒度、出力境界、エラーメッセージはすべて Agent の意思決定を中心に設計されており、モデルを無効な次のステップに導かないようにします
振り返り可能なワークフロー:スクリプトソースコード、ネットワーク生データ、バイナリ結果をローカルファイルにエクスポートし、その後の分析入力として再利用できます
ブレークポイントコンテキスト実行:一時停止中に call frame 内で直接評価し、スコープ変数を検査し、ステップ実行してソースコードコンテキストを返します
スクリプト分析:読み込まれたすべての JS を一覧表示、コード検索、ソースの取得/保存、大型圧縮スクリプトの自動フォーマット
ネットワークと WebSocket 分析:リクエストコールスタック、XHR ブレークポイント、Set-Cookie 識別、生の body/header エクスポート、WebSocket メッセージのグループ化
ブラウザ状態のリプレイ:現在のサイトの cookies / cache / storage / sessionStorage をクリアし、reload と組み合わせて cookie およびリスク制御フローを再現
デフォルトでヘッドフル + 永続化ログイン状態:ブラウザが見える状態で、cookies / localStorage はセッションをまたいで保持
専用 Patchright カーネル:デフォルトで本プロジェクトが独立してメンテナンスする Patchright fork に依存し、上流の既知の共有実装特徴を継続的に修正
オプションのアンチ検出層:専用 Patchright のプロトコル層 stealth はデフォルトで有効。強力なアンチクローリングサイトでは
--cloakを追加して CloakBrowser バイナリを使用可能
専用 Patchright fork
js-reverse-mcp は Patchright の一般配布パッケージに直接依存せず、本 MCP 専用にコンパイル・公開された @zhizhuodemao/patchright を使用します。この fork は独立したリポジトリで継続的にメンテナンスされ、本 MCP の実際の検出サンプルに合わせて進化します。
Patchright の一般配布パッケージに直接依存しない
確認済みの上流共有実装特徴に対してプロトコル層の調整を行い、再コンパイルして公開
アンチ検出の調整はページレベルの JS 注入に依存しない
evaluate、locator、ページ制御などの元の能力を保持
fork は本 MCP 向けの専用リポジトリで継続的にメンテナンス
公開ドキュメントは設計上の境界のみを説明し、内部の検出サンプルと実装詳細は展開しません。専用 fork の目標は確認済みの共有実装特徴を減らすことであり、ブラウザ自動化が絶対に検出されないことを約束するものではありません。
システム要件
クイックスタート(npx)
インストール不要で、MCP クライアント設定に直接追加します:
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp"]
}
}
}Claude Code
claude mcp add js-reverse npx js-reverse-mcp利用可能なモデル API がない場合、またはカスタム API アドレスを設定する必要がある場合は、Claude Code / Codex サードパーティモデル API 設定チュートリアル を参照してください。
Codex
codex mcp add js-reverse -- npx js-reverse-mcp利用可能なモデル API がない場合、またはカスタム API アドレスを設定する必要がある場合は、Claude Code / Codex サードパーティモデル API 設定チュートリアル を参照してください。
Cursor
Cursor Settings -> MCP -> New MCP Server に移動し、上記の設定を使用します。
VS Code Copilot
code --add-mcp '{"name":"js-reverse","command":"npx","args":["js-reverse-mcp"]}'ローカルインストール(オプション)
git clone https://github.com/zhizhuodemao/js-reverse-mcp.git
cd js-reverse-mcp
npm install
npm run buildその後、MCP 設定でローカルパスを使用します:
{
"mcpServers": {
"js-reverse": {
"command": "node",
"args": ["/你的路径/js-reverse-mcp/build/src/index.js"]
}
}
}AI-first 設計
このプロジェクトの核となる目標は「ブラウザを操作できること」ではなく、AI Agent が実際の JS リバースタスクを安定的に完了できるようにすることです:ページを開く、リスク制御を通過する、スクリプトを特定する、ソースを保存する、ブレークポイントを設定する、挙動をトリガーする、ランタイムを検査する、ネットワーク資料をエクスポートする、状態を再現する、そして推論を続ける。
いくつかの設計方針がコード全体に貫かれています:
ツールは Agent primitives であり、DevTools メニューのマッピングではない:
list_network_requestsはインデックス一覧も、reqidによる詳細照会も、outputFileによる正確な資料エクスポートも可能。evaluate_scriptはページ内での実行も、ブレークポイントの call frame での実行も、localFilePath入力の受け取りも可能。出力は次のステップを導くもの:リスト出力は短くスキャンしやすく保ち、詳細出力には境界があり、長い結果はエクスポートを促し、pending リクエストは実行再開を明確に促し、Agent が完了しない response を待ち続けることを防ぎます。
ローカルファイルは分析ワークベンチ:
save_script_source、list_network_requests(..., outputFile)、evaluate_script(..., localFilePath)により、Agent はブラウザ、ネットワーク、ローカルファイルの間を行き来でき、長大なコードやバイナリデータをチャットコンテキストに詰め込む必要がありません。状態はクリア可能、フローはリプレイ可能:デフォルト profile はログイン状態を保持。
--isolatedは使い捨てのクリーン環境を提供。clear_site_dataは現在のサイト関連の状態のみをクリアし、cookie 生成、リスク制御初期化、リクエストチェーンの反復再現に使用します。アンチ検出はデバッグチェーンに奉仕する:CDP サイレントナビゲーション、実視口、Google referer、専用 Patchright fork、CloakBrowser の目標はすべて、Agent がターゲットページに入って分析を続けられるようにすることであり、プロジェクトを汎用クローラーフレームワークにすることではありません。
アンチ検出メカニズム(基盤能力)
アンチ検出は js-reverse-mcp の基盤能力の 1 つです。ラッパー層(この MCP 自体)はゼロ JS 注入で、Object.defineProperty hack は行いません(それ自体が検出シグナルです)。すべてのアンチ検出は互いに重複しない 2 つの層で行われます:
層 | デフォルトモード |
|
プロトコル層(CDP) | 専用 Patchright fork: | 同 |
ソースコード層(C++ バイナリパッチ) | なし —— システムの Google Chrome を直接使用 | CloakBrowser バイナリ(プラットフォーム別のソースコード層フィンガープリントパッチを提供。 |
Profile ディレクトリ |
|
|
実際のブラウザ | インストール済みの Google Chrome(Web Store、拡張機能、sync 付き) | カスタム Chromium コンパイル版(Google サービスなし、Web Store なし) |
さらにいくつかのナビゲーションレベルの対策(両モードで有効):
CDP サイレントナビゲーション —— ページ読み込み時に
Network.enable/Debugger.enableをアクティブにせず、リクエスト/コンソール収集は Playwright リスナーのみを経由し、ツールが明示的に CDP を必要とするまでアクティブにしないGoogle Referer ——
new_pageはデフォルトでreferer: https://www.google.com/を付与実視口 —— Playwright デフォルトの 1280×720 の偽視口を無効化し、ブラウザは実際の画面サイズを表示
--cloak を有効にするタイミング:上記だけでは不十分で、サイトのフィンガープリントでブロックされた場合のみ。詳細は docs/cloak.md を参照。
ツール一覧(24 個)
ページとナビゲーション
ツール | 説明 |
| 開いているページを一覧表示、またはインデックスでデバッグコンテキストを選択 |
| 新しいページを作成し URL にナビゲート |
| ナビゲート、戻る、進む、またはページをリフレッシュ |
| すべての frame(iframe)を一覧表示、または実行コンテキストを選択 |
| 厳密マッチで現在の frame 内の単一の可視要素をクリック |
| ページのスクリーンショットを撮影 |
スクリプト分析
ツール | 説明 |
| ページに読み込まれたすべての JavaScript スクリプトを一覧表示 |
| スクリプトソースの断片を取得。行範囲または文字オフセットをサポート |
| 完全なスクリプトソースをローカルファイルに保存(大型/圧縮/WASM ファイルに適しています) |
| すべてのスクリプトで文字列または正規表現を検索 |
ブレークポイントと実行制御
ツール | 説明 |
| コードテキスト検索による自動ブレークポイント設定(圧縮コードに適しています) |
| URL パターンによる XHR/Fetch ブレークポイント設定 |
| 明示的な action で ID、URL、またはすべてのブレークポイントを削除 |
| すべてのアクティブなブレークポイントを一覧表示 |
| 一時停止状態、コールスタック、スコープ変数を取得 |
| 明示的な action で実行を一時停止または再開 |
| ステップ実行(over/into/out)、位置とソースコードコンテキストを返す |
ネットワークと WebSocket
ツール | 説明 |
| ネットワークリクエストの一覧表示、詳細表示、または header/body/query などの生資料のエクスポート |
| 明示的な確認後、現在のページで収集されたリクエストと body cache をクリア |
| ネットワークリクエストの JavaScript コールスタックを取得 |
| WebSocket 接続の一覧表示、メッセージパターンの分析、またはメッセージ詳細の取得 |
ブラウザ状態
ツール | 説明 |
| 現在のサイト関連の cookies、origin storage、sessionStorage をクリア。グローバル HTTP cache のクリアは明示的に選択可能 |
検査ツール
ツール | 説明 |
| ページまたはブレークポイントコンテキストで JavaScript を実行。メインワールド、結果保存、ローカル入力ファイルの読み取りをサポート |
| コンソールメッセージの一覧表示、または msgid による単一詳細の取得 |
使用例
JS リバース基本フロー
ターゲットページを開く
打开 https://example.com 并列出所有加载的 JS 脚本ターゲット関数を探す
在所有脚本中搜索包含 "encrypt" 的代码ブレークポイントを設定
在加密函数入口处设置断点トリガーして分析
在页面上触发操作,断点命中后检查参数、调用栈和作用域变量WebSocket プロトコル分析
列出 WebSocket 连接,分析消息模式,查看特定类型的消息内容Agent 推奨の完全キャプチャフロー
ナビゲーション段階では意図的に CDP をサイレントに保つため、初回のターゲットページ進入時には Network / Debugger ドメインはすぐには開かれません。推奨フローは、まずリスク制御を通過してから、リフレッシュしてキャプチャします:
1. new_page 打开目标页
2. 调用 list_network_requests 激活 collectors
3. navigate_page(type="reload") 刷新页面
4. 再次 list_network_requests 查看完整请求
5. 对关键 reqid 使用 outputFile 导出原始材料Cookie / リスク制御リプレイフロー
1. clear_site_data(confirm=true) 清理当前站点状态
2. navigate_page(type="reload") 重新触发初始化
3. list_network_requests 找到设置 cookie 或提交 sensor 的请求
4. 导出 requestBody / responseHeaders / responseBody
5. 用 evaluate_script + localFilePath 在页面上下文中复算或验证設定オプション
CLI は簡潔に保たれ、すべての flag はオプションです。99% のシナリオではデフォルトで十分です。ローカルファイルを扱う場合は、--allowedRoots で Agent が読み書きできるディレクトリを制限することをお勧めします。
オプション | 説明 | デフォルト値 |
| CloakBrowser ステルスバイナリに切り替え(システム Chrome の代わり)。プラットフォーム別の C++ ソースコード層フィンガープリントパッチを有効化。初回起動時に ~200MB のバイナリを自動ダウンロード。フィンガープリント ID は profile ごとに永続化。詳細は docs/cloak.md を参照。 |
|
| 一時的な user-data-dir を使用(cookies/localStorage は保持されず、終了時に自動クリーンアップ) |
|
| 実行中の Chrome インスタンスに接続(CDP HTTP エンドポイント、例: | – |
|
| – |
| Agent が読み書きできるローカルディレクトリを繰り返し指定可能。実パスを解決し、シンボリックリンクによる境界外アクセスを拒否。有効時は | – |
設定例
デフォルト —— システム Chrome + 永続化ログイン状態(ほとんどのデバッグシナリオで推奨):
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp"]
}
}
}--cloak —— 強力なアンチクローリングサイト(Cloudflare Turnstile / DataDome / FingerprintJS 対策):
強く推奨:先にバイナリを事前ダウンロードしてください(1 回限り、~30–60 秒)。これをしない場合、
--cloak付きで MCP を初回起動すると ~200MB をサイレントにダウンロードし、MCP がフリーズしたように見えます:npx cloakbrowser install(
cloakbrowserパッケージはoptionalDependencies経由で一緒にインストール済みです。このコマンドはその内蔵バイナリダウンロードロジックをトリガーするだけで、プログレスバーが表示されます)
{
"mcpServers": {
"js-reverse-cloak": {
"command": "npx",
"args": ["js-reverse-mcp", "--cloak"]
}
}
}2 セット並行 —— 2 つの MCP インスタンスの profile を物理的に分離し、ターゲットサイトに応じて切り替え:
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp"]
},
"js-reverse-cloak": {
"command": "npx",
"args": ["js-reverse-mcp", "--cloak"]
}
}
}--isolated —— 毎回新しい profile(cookies/localStorage を保持しない):
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp", "--isolated"]
}
}
}実行中の Chrome / サードパーティフィンガープリントブラウザに接続
--browserUrl は CDP endpoint(/json/version に応答する HTTP エンドポイント)のみを受け付け、ベンダー独自の Local API は受け付けません。ローカル Chrome、AdsPower、BitBrowser などのシナリオで CDP ポートを取得する方法は、専用ドキュメントを参照してください:
📖 docs/cdp-endpoint.md —— CDP デバッグポートの取得方法
最短パス(ローカル Chrome):
# 先关掉所有 Chrome 窗口,然后
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp", "--browserUrl", "http://127.0.0.1:9222"]
}
}
}フィンガープリントブラウザ(AdsPower、BitBrowser など)の CDP ポートは起動のたびにランダムに変化するため、ベンダーの Local API でブラウザを起動してから抽出する必要があります。手順とサンプルスクリプトは上記のドキュメントにあります。
トラブルシューティング
アンチクローリングシステムにブロックされた場合
一部のサイトにアクセスしてブロックされた場合(知乎の 40362、Cloudflare チャレンジの無限ループなど):
まず
--isolatedを試す —— 新しい profile で残留状態の汚染を排除:"args": ["js-reverse-mcp", "--isolated"]それでもダメなら
--cloakを有効化 —— プラットフォーム別のソースコード層フィンガープリントパッチを有効化:"args": ["js-reverse-mcp", "--cloak"]最後に永続化 profile の手動クリアを検討(ログイン状態が失われます):
rm -rf ~/.cache/chrome-devtools-mcp/chrome-profile
--cloak を有効にするべきタイミング、すべきでないタイミングの詳細は docs/cloak.md を参照してください。
Agent ルーティング評価(メンテナー向け)
npm run eval:routing:validate は、実際の MCP tools/list、server instructions と evals/tool-routing.json の 30 件のツール選択契約をオフラインで検証します。このコマンドはモデルエンドポイントにアクセスせず、presubmit に組み込まれています。
実際のモデル評価は明示的な opt-in で、OpenAI-compatible Chat Completions エンドポイントを 1 件ずつ呼び出し、費用が発生する可能性があります:
MCP_ROUTING_EVAL_ENDPOINT=https://api.example.com/v1/chat/completions \
MCP_ROUTING_EVAL_MODEL=model-name \
MCP_ROUTING_EVAL_API_KEY=secret \
npm run eval:routingMCP_ROUTING_EVAL_API_KEY は認証不要のローカルエンドポイントでは省略可能。資格情報付きのリモートエンドポイントは HTTPS を使用する必要があり、HTTP は loopback のみ許可されます。MCP_ROUTING_EVAL_TIMEOUT_MS で単一リクエストのタイムアウトを調整できます。デフォルトでは 100% の合格率を要求し、モデル間比較時には MCP_ROUTING_EVAL_MIN_PASS_RATE で (0, 1] の閾値を設定できます。評価は API key、エンドポイント、エンドポイントのエラーレスポンス本文を出力しません。
セキュリティ注意事項
このツールはブラウザのコンテンツを MCP クライアントに公開し、ブラウザ内のあらゆるデータの検査、デバッグ、変更を許可します。機密情報を含むページでは使用しないでください。
evaluate_script.localFilePath、各種 outputFile/filePath は、MCP プロセスがホストマシンのファイルを読み書きする原因となります。本番環境や共有環境では、1つ以上の --allowedRoots を使用して専用の作業ディレクトリに限定する必要があります。未設定の場合、アクセス範囲は無制限となります。--allowedRoots を有効にすると、file:、view-source:file:、filesystem:file: のブラウザページも拒否され、ブラウザのナビゲーションによるディレクトリ境界の迂回を防ぎます。ローカルページのデバッグが必要な場合は、ローカルファイルの露出リスクを明確に受け入れるセッションでのみ、このオプションを設定しないでください。
ライセンス
Apache-2.0
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to debug frontend applications by providing direct access to browser DevTools, React state, DOM inspection, and runtime debugging capabilities. Bridges the gap between AI and complex web applications for autonomous debugging and issue resolution.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser through Chrome DevTools. Provides browser automation, performance analysis, debugging capabilities, and network request monitoring.2,211,10449,751Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI assistants to debug JavaScript and TypeScript applications by connecting to Chrome DevTools Protocol-compatible debuggers, allowing them to set breakpoints, step through code, inspect variables, and evaluate expressions with full source map support.18142Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive Chrome browser debugging capabilities including DOM inspection, network monitoring, console logs, JavaScript execution, breakpoint debugging, and screenshot capture for AI-assisted frontend development.4MIT
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Give AI coding agents access to your Vynix visual feedback, bug reports, and AI diagnosis.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zhizhuodemao/js-reverse-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server