MCP JS Debugger について
MCP JS Debugger は、JavaScript と TypeScript 開発者向けのデバッグサーバーです。CDP 対応のデバッグ対象を操作し、ソースマップで元のコード位置を特定できます。
主な機能
- 01CDP 対応ターゲットへの接続
- 02ブレークポイントの設定・一覧・削除
- 03ステップ実行と一時停止
- 04コールスタックとスコープ変数の確認
- 05式の評価と変数の変更
- 06生成コードから元ソース位置へのマッピング
活用シーン
- 01Node.js アプリの実行時問題を調査
- 02Chrome や Edge でブレークポイントを確認
- 03変換後の TypeScript コードの問題を追跡
MCP 対応
MCP サーバーは、ブレークポイント、実行制御、コールスタック、式の評価、変数操作などの CDP デバッグ機能をツールとして MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
18掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| websocket_url | string | はい | CDP エンドポイントの WebSocket URL。Node.js の場合は通常 ws://localhost:9229/{uuid} です。Chrome の場合は ws://localhost:9222/devtools/page/{pageId} を使用します。利用可能なターゲットは http://localhost:9229/json(Node.js)または http://localhost:9222/json(Chrome)にアクセスして確認できます。 |
| session_name | string | いいえ | このデバッグセッションの任意の人間が読める名前です。複数のセッションを同時に管理する際に便利です。 |
詳細
MCP JS デバッガー
Chrome DevTools Protocol のデバッグ機能を公開する MCP(Model Context Protocol)サーバーです。AI アシスタントが JavaScript および TypeScript アプリケーションをデバッグできるようにします。
機能
- CDP 互換のデバッガー(Node.js、Chrome、Edge)に接続
- ブレークポイントの設定、一覧表示、削除
- コードのステップ実行(オーバー、イン、アウト)
- ソースマップ対応のコールスタックの検査
- 任意のスタックフレームで式を評価
- 変数の表示と変更
- 例外発生時に一時停止
- トランスパイルされたコードのデバッグに対応する完全なソースマップサポート
インストール
npm install
npm run build
Claude Code の統合
Claude Code の設定に追加します。
claude mcp add mcp-js-debugger -- npx mcp-js-debugger
または、.mcp.json に追加します。
{
"mcpServers": {
"mcp-js-debugger": {
"command": "npx",
"args": ["mcp-js-debugger"]
}
}
}
使い方
デバッグ対象の起動
インスペクターを使って Node.js アプリケーションを起動します。
# Pause on first line (recommended for setting initial breakpoints)
node --inspect-brk=9229 your-script.js
# Or start without pausing
node --inspect=9229 your-script.js
利用可能なツール
| ツール | 説明 |
|---|---|
connect_debugger | WebSocket URL を使って CDP エンドポイントに接続 |
disconnect_debugger | デバッグセッションから切断 |
set_breakpoint | URL と行番号を指定してブレークポイントを設定 |
remove_breakpoint | ID を指定してブレークポイントを削除 |
list_breakpoints | セッション内のすべてのブレークポイントを一覧表示 |
resume_execution | 一時停止後に実行を再開 |
step_over | 現在の文をステップオーバー |
step_into | 関数呼び出しにステップイン |
step_out | 現在の関数からステップアウト |
pause_execution | 実行中の処理を一時停止 |
get_call_stack | ソース位置を含む現在のコールスタックを取得 |
evaluate_expression | JavaScript 式を評価 |
get_scope_variables | スコープ内の変数を取得 |
set_variable_value | 変数の値を変更 |
set_pause_on_exceptions | 例外処理を設定 |
get_original_location | 生成されたソース位置を元のソース位置に対応付け |
get_script_source | スクリプトのソースコードを取得 |
list_scripts | 読み込まれたスクリプトを一覧表示 |
ワークフローの例
-
--inspect-brkを指定してアプリケーションを起動します。node --inspect-brk=9229 app.js -
WebSocket URL を取得します。
curl http://localhost:9229/json -
デバッガーに接続します。
connect_debugger(websocket_url: "ws://localhost:9229/<id>") -
ブレークポイントを設定します。
set_breakpoint(session_id: "...", url: "file:///path/to/app.js", line_number: 10) -
ブレークポイントに到達するよう実行を再開します。
resume_execution(session_id: "...") -
一時停止中に状態を確認します。
get_call_stack(session_id: "...") get_scope_variables(session_id: "...", call_frame_id: "...", scope_index: 0) evaluate_expression(session_id: "...", expression: "myVariable") -
デバッグを続行します。
step_over(session_id: "...") resume_execution(session_id: "...")
ソースマップのサポート
サーバーは、トランスパイルされたコード(TypeScript、バンドルされた JavaScript など)のソースマップを自動的に読み込みます。ソースマップが利用可能な場合は、次の操作ができます。
- コールスタックに元のソース位置が表示されます
- 元のソースファイルにブレークポイントを設定できます
get_original_locationで、生成された位置を元のソース位置に対応付けますget_script_sourceで、元のソースの内容を返せます
開発
# Build
npm run build
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Watch mode for development
npm run dev
アーキテクチャ
- cdp-client.ts - 低レベルの Chrome DevTools Protocol クライアントラッパー
- session-manager.ts - 複数のデバッグセッションを管理
- source-map-manager.ts - ソースマップの読み込みと位置のマッピングを処理
- server.ts - ツールハンドラーを備えた MCP サーバーの実装
- types.ts - TypeScript の型定義
要件
- Node.js 18.0.0 以降
- CDP 互換のデバッグ対象(Node.js、Chrome、Edge など)
ライセンス
Apache-2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。