MCP サーバー
バージョン 2025.2 以降、IntelliJ IDEA には MCP サーバー が統合され、Claude Desktop、Cursor、Codex、VS Code などの外部クライアントが IDE が提供するツールにアクセスできるようになりました。 これにより、ユーザーは選択したアプリケーションを移動することなく、JetBrains IDE を制御および操作できるようになります。
MCP サーバー プラグインを有効化する。
この機能は、MCP サーバー プラグインに依存しており、IntelliJ IDEA にはデフォルトでバンドルされて有効化されています。 関連機能が利用できない場合は、プラグインを無効化していないことを確認してください。
Ctrl+Alt+S を押して設定を開き、 を選択します。
インストール済み タブを開き、 MCP サーバー プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。
外部クライアントのセットアップ
Claude Code、 Claude Desktop、 Cursor、 VS Code、 Codex、 Windsurf などの外部クライアントの場合、構成を自動で実行できます。
メインメニューで へ移動します。
MCP サーバーを有効化},{ をクリックします。
クライアントの自動構成},{ セクションで、MCP サーバーで使用するために設定したい各クライアントの 自動構成},{ をクリックします。 これにより、JSON 設定が自動的に更新されます。

構成を有効にするにはクライアントを再起動してください。
他のクライアントから MCP サーバーに接続する場合は、手動で設定を行う必要があります。
手動クライアント構成},{ セクションで、接続タイプに応じて SSE 設定をコピー},{、 標準入出力設定をコピーする},{ 、または HTTP ストリーム構成のコピー のいずれかをクリックします。

コピーした構成をクライアントの設定または構成ファイルに貼り付けます。
構成を有効にするにはクライアントを再起動してください。
確認なしでアクションを実行する
MCP サーバーを使用すると、接続された外部クライアントは、毎回ユーザーに確認を求めることなく、ターミナルコマンドを実行したり、IDE で構成を実行したりできます。
このモードを有効にするには:
メインメニューで へ移動します。
コマンド実行},{ セクションで、 確認なしでシェルコマンドまたは実行構成を実行する(勇敢なモード)},{ 設定を有効にします。
適用 をクリックします。
サポートされているツール
MCP サーバーは、外部クライアントが IDE およびプロジェクトとやり取りできる一連のツールを提供します。たとえば、コードを解析したり、ファイルを修正したり、構成を実行したり、ターミナルコマンドを実行したりできます。
で利用可能なツール一覧の表示および管理ができます。 このページから、ワークフローや環境設定に応じて特定のツールを有効化または無効化できます。
以下は、MCP サーバーによって提供されるツールのリストです。
解析ツールセット
- ビルドプロジェクト
プロジェクトまたは指定ファイルのビルドをトリガーし、補完まで待機し、ビルドエラーを返します。 このツールでプロジェクトのビルドやファイルのコンパイルを行い、コンパイル エラーや警告などの詳細情報を取得できます。
編集後、その変更が有効かどうかを検証するためにこのツールを使用してください。
パラメーター:
rebuild:プロジェクトのフルリビルドを実行するかどうか。 デフォルトは false です。filesToRebuildが指定されていない場合のみ有効です。filesToRebuild:指定したパスのファイルのみをコンパイルします。 パスはプロジェクトルートからの相対パスです。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- get_file_problems
IntelliJ インスペクションを使用して、指定されたファイルのエラーと警告を分析します。 このツールを使用すると、特定のファイル内のコーディングの問題、構文エラー、その他の問題を特定できます。
重大度、説明、場所の情報を含む問題のリストを返します。
パラメーター:
filePath: プロジェクトルートからの相対パス。errorsOnly: エラーのみを含めるか、エラーと警告の両方を含めるか。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- get_project_dependencies
プロジェクトで定義されているすべての依存関係のリストを返します。 ライブラリ名に関する構造化された情報を提供します。
パラメーター:
projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- get_project_modules
プロジェクト内のすべてのモジュールとそのタイプをリスト形式で返します。 各モジュールの名前やタイプなど、構造化された情報を提供します。
パラメーター:
projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
コードインサイト ツール
- get_symbol_info
指定されたファイル内の指定された位置にあるシンボルに関する情報を取得します。 IntelliJ IDEA の クイックドキュメント 機能と同じ情報を提供します。 この情報には、プログラミング言語に応じて、シンボルの名前、シグネチャー、型、ドキュメント、その他の詳細が含まれる場合があります。
位置がシンボルを参照している場合、ツールはシンボルの宣言(存在する場合)を含むコードスニペットを返します。 このツールを使用して、シンボルの宣言、セマンティクス、位置を理解してください。
パラメーター:
filePath: プロジェクトルートからの相対パス。line: 1 から始まる行番号。column: 1 から始まる列番号。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
データベース固有のツール。
AI エージェントに厳密に読み取り専用アクセスのみを保証するには、適切に制限された(読み取り専用の)権限を持つデータベース ユーザーを使用し、そのユーザーを使用するようにデータソースを設定してください。
- データベースオブジェクトの説明取得
特定のスキーマ内のデータベースオブジェクト(カラム、型、鍵、インデックスなど)の構造を階層的テキスト表現で取得します。
曖昧な場合、該当するすべてのオブジェクトの定義を返します。
パラメーター:
connectionId: 接続の固有 ID。databaseName: スキーマが所属するデータベースの名前。 DBMS がデータベースを持たずスキーマのみの場合は空になります。schemaName: スキーマの名前。kind: このパラメーターに特定のオブジェクト種別コードを設定すると、その種別のオブジェクトのみ一覧表示されます。 すべてのオブジェクトを取得する場合は null に設定します。objectName: 指定された種類のオブジェクトのお名前(例:テーブルまたは表示のお名前)。 空白にできません。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- list_database_connections
プロジェクト内で設定されたデータベース接続やデータソースの一覧を取得します。 各接続について、固有の ID、お名前、DBMS、およびドライバー名を返します。
- test_database_connection
接続の診断情報を返します:
接続に問題があるかどうかを示すフラグです:はい、いいえ、不明。
データベース接続に関する詳細情報(DBMS の種類、バージョン、JDBC ドライバーなど)。
接続試行結果の要約。 失敗した場合、DBMS から提供されたエラー説明が含まれます。
パラメーター:
id: 接続の固有 ID。
- list_database_schemas
指定したデータベース接続内のデータベーススキーマの一覧を取得します。
各スキーマについて、スキーマ自身の名前とデータベース名(該当しない場合は空)を返します。
パラメーター:
connectionId: 接続の固有 ID。selectedOnly: データベースツリーで選択されたスキーマだけを一覧表示する場合は true、すべてのスキーマを一覧表示する場合は false。
- list_schema_object_kinds
指定したデータベース接続でサポートされているスキーマオブジェクト種別の一覧を取得します。 各オブジェクト種別について、オブジェクト種別の固有コードと人間が読める名前を返します。
パラメーター:
connectionId: 接続の固有 ID。
- list_schema_objects
指定したスキーマ内のデータベースオブジェクトの一覧を取得します。 各オブジェクトに対して、スキーマ内のお名前とその種類を返します。
パラメーター:
connectionId: 接続の固有 ID。schemaName: スキーマの名前。databaseName: スキーマが所属するデータベースの名前。 DBMS がデータベースを持たずスキーマのみの場合は空になります。kind: このパラメーターに特定のオブジェクト種別コードを設定すると、その種別のオブジェクトのみ一覧表示されます。 すべてのオブジェクトを取得する場合は null に設定します。
- list_recent_sql_queries
この機能は無料サブスクリプションプランでは利用できません。
指定したデータベース接続に対して、最近および現在実行中のクエリの一覧を取得します。
各クエリについて返します:
クエリセッションの固有 ID。
クエリの実行にかかった時間(ミリ秒単位)。
クエリの現在の状態。 たとえば、実行中、キャンセル中、完了など。
クエリの完了状況。 たとえば、正常終了、エラーで終了、キャンセルなど。
クエリのテキスト。
パラメーター:
connectionId: 接続の固有 ID。
- cancel_sql_query
実行中のクエリを、その固有 ID を使ってキャンセルします。
パラメーター:
sessionId: クエリセッション ID。
- execute_sql_query
指定したデータベース接続で SQL クエリを実行します。
ツールは実行状況(成功またはエラー)を報告します。 エラーの場合はエラーの説明も提供します。
クエリでデータが返された場合、そのデータはツールのレスポンスに CSV フォーマットで追加されます。
パラメーター:
connectionId: 接続の固有 ID。queryText: 実行する SQL クエリ。
- preview_table_data
指定したデータベース接続で、テーブル、ビュー、マテリアライズドビュー、または他のテーブル形式オブジェクトのプレビューデータを返します。
ツールはテーブルの内容を CSV 形式で返します。
パラメーター:
connectionId: 接続の固有 ID。schemaName: スキーマの名前。databaseName: スキーマが所属するデータベースの名前。 DBMS がデータベースを持たずスキーマのみの場合は空になります。tableName: テーブルの名前。maxRowCount: 返される行の最大数。 デフォルトは100です。
デバッガーツール
外部クライアントにおける IDE のデバッガーツールの利用を向上させるため、 /ij-debugger スキルを各スキルフォルダーにコピーできます。 これを行うには、次の手順を実行します。
メインメニューで に移動するか、 Shift を2回押して検索ウィンドウを開きます。
デバッガースキルをエージェントにコピー と入力し、 Enter を押します。
スキルは以下のフォルダーにコピーされます:
Claude Code:
%USERPROFILE%\.claude\skills\ij-debugger\
~/.claude/skills/ij-debugger/
~/.claude/skills/ij-debugger/
Codex:
%USERPROFILE%\.codex\skills\ij-debugger\
~/.codex/skills/ij-debugger/
~/.codex/skills/ij-debugger/
このスキルは外部クライアントに対し、デバッガーツールをいつ使うか、どのランタイム証跡を収集するか、ブレークポイントやセッション状態の管理方法を指示するための挙動ガイドです。
外部クライアントでスキルを呼び出すには /ij-debugger を使用するか、該当する場面で自動的に有効化できます。
- xdebug_control_session
デバッグセッションの実行を制御します。 このツールを使ってコードのステップ実行、実行の再開、一時停止、デバッグセッションの停止などができます。
前提条件:
デバッグセッションが存在している必要があります。
STEP_*およびRESUMEには一時停止中のセッションが必要です。
アクション:
STEP_INTO :次のメソッド呼び出しにステップインします
STEP_OVER :現在の行をステップオーバーします
STEP_OUT :現在のメソッドからステップアウトします
RESUME :次のブレークポイントまでプログラムの実行を再開します
PAUSE :プログラム実行を一時停止します
STOP :デバッグセッションを停止します
WAIT_FOR_PAUSE :セッションが一時停止するまで待ちます(ブレークポイント到達または手動一時停止)
DRAIN_EVENTS :セッションのトレースポイント出力を取得します(すべてのアクションでブレークポイントエラーも取得されます)
重要な注意事項:
プログラムが実行中の場合は、 または を
STEP_*/RESUMEの前に使用してください。sessionIdはxdebug_get_debugger_statusまたはxdebug_デバッガー_セッション開始の現在値を使ってください。 セッションが停止・タイムアウト・消失した場合は、次のセッションスコープ呼び出しの前にセッション一覧を更新してください。RESUME はブレークポイントを設定しません。 有効化されたブレークポイントが存在しない(または次にヒットしない)場合、プログラムは補完まで実行され、セッションは一時停止せずに終了する場合があります。
RESUME の後は、 を呼び出して次の一時停止を確認します。 がタイムアウトした場合は、 を検討し、ブレークポイントを再確認してください。
DRAIN_EVENTS も既存のセッションが必要です。セッション終了後は古い
sessionIdを再利用しないでください。
次の呼び出し:
RESUME の後は、
xdebug_control_session(action=WAIT_FOR_PAUSE)を呼び出してください。一時停止後は
xdebug_get_stack/xdebug_get_frame_values/xdebug_evaluate_expressionを呼び出してください。
結果のステータス値:
running :プログラム実行中
paused :実行が一時停止中(ブレークポイント、ステップ実行中、または手動での一時停止)。一時停止結果には
frameValuesと、利用可能な場合はxdebug_get_frame_values(depth=0)フォーマットの現フレームスナップショットも含まれますstopped :デバッグセッションは終了しました
すべてのアクションで
breakpointErrorsTailが返されますtracepointOutputsTailは のみで返されます
イベントサポートスコープ:
ブレークポイントエラーとトレースポイント出力イベントは現在、JVM ベースのデバッガー(Java、Kotlin など)のみレポートされます。
他のデバッガーバックエンドでは、ブレークポイントやログの設定がされていても、これらのイベントテールが空になる場合があります。
パラメーター:
sessionId:デバッグセッション ID。xdebug_get_debugger_statusまたはxdebug_デバッガー_セッション開始で返された現在の ID を使ってください。 セッションが停止・タイムアウト・消失した場合は、古い ID を再利用する前にセッション一覧を更新してください。 フォーマット:デフォルトでセッションのお名前を ID に使用します。同じお名前のセッションが複数ある場合、ID は<sessionName>#<executionId>となります。 null かつアクティブなセッションが 1 件だけ存在する場合、自動的に選択されます。 複数のセッションがアクティブでsessionIdが省略された場合、呼び出しは失敗します。 デフォルト:null。action:実行するアクション: 、 、 、 、 、 、 、 。 イベントのドレインは現在、JVM ベースのデバッガー(Java、Kotlin など)でのみ可能です。timeout:アクション補完まで待機するタイムアウト(ミリ秒単位)。 ガイダンス: / は通常 5000~15000、 は通常 30000~120000 です(ワークロードやブレークポイントに応じて異なります)。 デフォルト:30000。eventsLimit:イベントリストごとにドレインされる最新イベントの最大数。 の場合、この制限はbreakpointErrorsTailおよびtracepointOutputsTailに個別に適用されます。 デフォルト:100。clearEventsAfterRead:互換性フラグ。 返されたイベントはこの値にかかわらず常に内部バッファから除去されます。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_evaluate_expression
現在のスタックフレームのコンテキストで式を評価します。 このツールを使って値の計算、メソッド呼び出し、デバッグ中の式のインスペクトができます。
前提条件:
セッションが一時停止状態である必要があります。
選択したフレームや言語で評価がサポートされている必要があります。
式は現在フレームの言語において有効な式である必要があります。
結果は以下の形式で返されます:
depth == 0:評価された式の表示のみdepth > 0:表示に加え、指定した深さまでの子の擬似グラフィック ツリー
入力ルール:
デバッガー evaluator が構文解析中に期待する通り、そのままの式テキストを渡してください。
JSON エスケープ済みペイロードや
\\"text\\"のようなリテラルのエスケープシーケンスは渡さないでください。
次の呼び出し:
式で仮説が確認できたら、
xdebug_control_session(STEP_*|RESUME)に進んでください。さらに詳細が必要な場合は、
xdebug_get_frame_values/xdebug_get_value_by_pathで関連する値を調査します。
パラメーター:
sessionId:デバッグセッション ID。xdebug_get_debugger_statusまたはxdebug_デバッガー_セッション開始で返された現在の ID を使ってください。 セッションが停止・タイムアウト・消失した場合は、古い ID を再利用する前にセッション一覧を更新してください。 フォーマット:デフォルトでセッションのお名前を ID に使用します。同じお名前のセッションが複数ある場合、ID は<sessionName>#<executionId>となります。 null かつアクティブなセッションが 1 件だけ存在する場合、自動的に選択されます。 複数のセッションがアクティブでsessionIdが省略された場合、呼び出しは失敗します。 デフォルト:null。frameIndex:スタックフレームインデックス(整数、0=最上位フレーム)。 これは現在一時停止中のxdebug_get_stack結果から取得してください。 RESUME、 STEP_*、xdebug_run_to_lineまたは一時停止場所が変更された後は、キャッシュされているフレームインデックスを再利用しないでください。 Null の場合は最上位フレームが使用されます。 デフォルト:null。式: 現在のコンテキストで評価する式。 現在のフレームの言語で生の式テキストを渡してください。JSON エスケープ済みのペイロードやリテラルのバックスラッシュエスケープ付き引用符テキストは渡さないでください。depth: 評価結果の子要素を展開する最大深度(0 = 値のみ、1 = 直下の子、2 = 子と孫など)。 デフォルト: 0。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_get_debugger_status
デバッガーの現在のステータスと、すべてのアクティブなデバッグセッションの状態を返します。 このツールを使うと、すべての実行中デバッグセッションとその状態を一目で確認できます。
前提条件:
なし
明示的な
sessions[]およびactiveSessionIdを返します。次の呼び出し:
セッションが実行されていない場合は
xdebug_デバッガー_セッション開始を呼び出してください。複数のセッションがアクティブな場合は、返された
idを次回以降の呼び出し時のsessionIdとして使用してください。
パラメーター:
projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_get_frame_values
指定されたスタックフレームに見えている値をツリー構造で返します。 このツールを使うと、コールスタック内の特定のポイントで利用できるローカル変数、パラメーター、フィールドやその他の値を調査できます。
前提条件:
セッションが一時停止状態である必要があります。
フレームインデックスは現在一時停止中の
xdebug_get_stack結果から取得してください(0 = トップフレーム)。
書式:
子を持つノードは
+でマークされています。
次の呼び出し:
xdebug_get_value_by_pathを使ってネストしたフィールドに深入りしてください。同じフレーム内の計算済みチェックには
xdebug_evaluate_expressionを使用してください。frameIndexは、 RESUME、 STEP_*、xdebug_run_to_lineまたは一時停止場所が変更された後は再利用しないでください。
パラメーター:
sessionId:デバッグセッション ID。xdebug_get_debugger_statusまたはxdebug_デバッガー_セッション開始で返された現在の ID を使ってください。 セッションが停止・タイムアウト・消失した場合は、古い ID を再利用する前にセッション一覧を更新してください。 フォーマット:デフォルトでセッションのお名前を ID に使用します。同じお名前のセッションが複数ある場合、ID は<sessionName>#<executionId>となります。 null かつアクティブなセッションが 1 件だけ存在する場合、自動的に選択されます。 複数のセッションがアクティブでsessionIdが省略された場合、呼び出しは失敗します。 デフォルト:null。frameIndex:スタックフレームインデックス(整数、0=最上位フレーム)。 これは現在一時停止中のxdebug_get_stack結果から取得してください。 RESUME、 STEP_*、xdebug_run_to_lineまたは一時停止場所が変更された後は、キャッシュされているフレームインデックスを再利用しないでください。 Null の場合は最上位フレームが使用されます。 デフォルト:null。depth: 評価結果の子要素を展開する最大深度(0 = 値のみ、1 = 直下の子、2 = 子と孫など)。 デフォルト: 0。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_get_stack
デバッグセッション内のスレッドのコールスタックを返します。 このツールを使うと、現在の実行ポイントまでに呼び出されたメソッドの連なりを見ることができます。
前提条件:
セッションが一時停止状態である必要があります。
振る舞い:
threadIdはxdebug_get_threadsから取得し、デバッガースレッドの表示お名前と一致します(デフォルトはアクティブなスレッド)。ソース位置がない場合でもフレームが含まれます(
ファイル/lineは null の場合があります)。
ページネーション:
offset/limitは完全なスタックを収集した後に適用されます。
フレームフィールドに含まれるのは:
indexファイルlineisCurrentpresentation
ファイルはデバッガーが提供したまま報告されます(パスの正規化なし)。次の呼び出し:
xdebug_get_frame_values、xdebug_get_value_by_path、またはxdebug_evaluate_expressionの現在一時停止中の結果からフレームインデックスを使用してください。frameIndexは、 RESUME、 STEP_*、xdebug_run_to_lineまたは一時停止場所が変更された後は再利用しないでください。
パラメーター:
sessionId:デバッグセッション ID。xdebug_get_debugger_statusまたはxdebug_デバッガー_セッション開始で返された現在の ID を使ってください。 セッションが停止・タイムアウト・消失した場合は、古い ID を再利用する前にセッション一覧を更新してください。 フォーマット:デフォルトでセッションのお名前を ID に使用します。同じお名前のセッションが複数ある場合、ID は<sessionName>#<executionId>となります。 null かつアクティブなセッションが 1 件だけ存在する場合、自動的に選択されます。 複数のセッションがアクティブでsessionIdが省略された場合、呼び出しは失敗します。 デフォルト:null。threadId: スタックを取得するスレッドID。 この値はxdebug_get_threadsから取得し、デバッガースレッドの表示お名前と一致します。不透明な数値IDではありません。 指定しない場合は現在またはアクティブなスレッドが使用されます。 デフォルト:null。limit: 返す最大フレーム数。 デフォルト: 200。offset: ページオフセット。 デフォルト: 0。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_get_threads
デバッグセッション内のスレッド一覧を返します。 このツールを使うと、すべてのスレッドとその現在のステータスを確認できます。
前提条件:
セッションが一時停止状態である必要があります。
次の呼び出し:
選択したスレッドには
xdebug_get_stackを使用してください。
ページネーション:
offset/limitはすべてのスタック収集後に適用されます。
順序:
アクティブなスレッドが先頭に表示されます。
残りのスレッドはスタックの深さが深い順に並べ替えられます。
スキーマフィールドには以下が含まれます:
idnamestateisCurrentadditionalInfoadditionalInfoTooltipframeCount
additionalInfo/additionalInfoTooltipは追加の表示情報が利用可能な場合に使用されます。パラメーター:
sessionId:デバッグセッション ID。xdebug_get_debugger_statusまたはxdebug_デバッガー_セッション開始で返された現在の ID を使ってください。 セッションが停止・タイムアウト・消失した場合は、古い ID を再利用する前にセッション一覧を更新してください。 フォーマット:デフォルトでセッションのお名前を ID に使用します。同じお名前のセッションが複数ある場合、ID は<sessionName>#<executionId>となります。 null かつアクティブなセッションが 1 件だけ存在する場合、自動的に選択されます。 複数のセッションがアクティブでsessionIdが省略された場合、呼び出しは失敗します。 デフォルト:null。limit: ページサイズ。 デフォルト: 50、最大: 200。offset: ページオフセット。 デフォルト: 0。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_get_value_by_path
プロパティお名前のパスを辿ってネストしたオブジェクトの値を取得します。 このツールを使うと、複雑なオブジェクトを掘り下げてネストしたプロパティを調査できます。
前提条件:
セッションが一時停止状態である必要があります。
パスは空であってはならず、選択中のフレームやオブジェクトで可視なお名前を参照する必要があります。
結果は以下の形式で返されます:
depth == 0: 指定パス上の値のプレゼンテーションのみdepth > 0: 値のプレゼンテーションと、その子の疑似グラフィックツリー(指定された深さまで)
例:
obj.field.subFieldの値を取得するには、path = ["obj", "field", "subField"]を使用してください。配列やリストのインデクサーの場合、インデックストークンは通常のパス要素(子のお名前)として渡してください。例:
items[0].name->path = ["items", "[0]", "name"]。現在一時停止中の
xdebug_get_frame_values/以前のxdebug_get_value_by_path出力から、正確な子のお名前を使用してください。インデックスノードのお名前は言語やデバッガーごとに異なる場合があります(例:"[0]"vs"0")。pathトークンは、 RESUME、 STEP_*、xdebug_run_to_lineまたは一時停止場所が変更された後にリフレッシュしてください。
次の呼び出し:
さらに深く掘り下げるには、別の
xdebug_get_value_by_path呼び出しを行ってください。直接のお名前パスナビゲーションで不十分な場合は
xdebug_evaluate_expressionをご使用ください。
パラメーター:
sessionId:デバッグセッション ID。xdebug_get_debugger_statusまたはxdebug_デバッガー_セッション開始で返された現在の ID を使ってください。 セッションが停止・タイムアウト・消失した場合は、古い ID を再利用する前にセッション一覧を更新してください。 フォーマット:デフォルトでセッションのお名前を ID に使用します。同じお名前のセッションが複数ある場合、ID は<sessionName>#<executionId>となります。 null かつアクティブなセッションが 1 件だけ存在する場合、自動的に選択されます。 複数のセッションがアクティブでsessionIdが省略された場合、呼び出しは失敗します。 デフォルト:null。frameIndex:スタックフレームインデックス(整数、0=最上位フレーム)。 これは現在一時停止中のxdebug_get_stack結果から取得してください。 RESUME、 STEP_*、xdebug_run_to_lineまたは一時停止場所が変更された後は、キャッシュされているフレームインデックスを再利用しないでください。 Null の場合は最上位フレームが使用されます。 デフォルト:null。path: 移動する子のお名前リスト(例:['myObject', 'field', 'subField']または['items', '[0]', 'name'])。 一時停止中のxdebug_get_frame_values/xdebug_get_value_by_path出力から正確なノードお名前を使用し、一時停止場所が変更された場合はパストークンをリフレッシュしてください。depth: 評価結果の子要素を展開する最大深度(0 = 値のみ、1 = 直下の子、2 = 子と孫など)。 デフォルト: 0。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_list_breakpoints
プロジェクトまたはファイル内のすべてのブレークポイントをリスト表示します。 このツールを使うと、現在設定されているすべてのブレークポイントとそのプロパティを確認できます。
振る舞い:
filePathが指定されている場合、そのファイル内のブレークポイントのみを返します。各ブレークポイントに対してリッチな属性(
id、型、ファイル、line、enabled、owner、condition、isLogMessage、isLogStack、temporary、suspendPolicy、hitCount)を返します。
次の呼び出し:
適切なブレークポイントがない場合、
xdebug_ブレークポイント設定を呼び出してください。その後、
xdebug_control_session(action=RESUME)およびxdebug_control_session(action=WAIT_FOR_PAUSE)で実行を継続します。
パラメーター:
filePath: ブレークポイントをフィルターするためのオプションのファイルパス。 ファイルのパスです。 プロジェクト相対パス、 .. を含むパス、絶対パス、 /path/lib.jar!/pkg/Foo.class のようなアーカイブエントリ、 file:// 、 jar:// 、 jrt:// のような URL をサポートしています。 他のツールから返されたパスはそのまま渡すことができます(例:search_*ツールからのパス)。 指定しない場合はすべてのブレークポイントを返します。 デフォルト:null。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_remove_breakpoint
所有者やオプションのセレクターでフィルターされたブレークポイントを除去します。 このツールを使用して、以前に設定したブレークポイントを除去します。
振る舞い:
ownerのデフォルトはagentです。ownerのみ指定した場合、その所有者のすべてのブレークポイントを除去します。breakpointIdが指定された場合、該当する所有者の一致するブレークポイント(複数可)を除去します。filePath+lineが指定された場合、該当する所有者に一致する行ブレークポイント(複数可)を除去します。複数のセレクターが指定された場合は論理積(AND)で組み合わされます。
冪等性:存在しないブレークポイントを除去しても
removed=falseを返します。すべてのブレークポイントを所有者を問わず除去するには、
owner=userとowner=agentで 2 回呼び出してください。
次の呼び出し:
残りの設定を確認するには
xdebug_ブレークポイント一覧を使用してください。
パラメーター:
breakpointId:xdebug_ブレークポイント設定またはxdebug_ブレークポイント一覧で返された標準的なブレークポイントID。filePath: ブレークポイントをフィルターするためのオプションのファイルパス。 ファイルのパスです。 プロジェクト相対パス、 .. を含むパス、絶対パス、 /path/lib.jar!/pkg/Foo.class のようなアーカイブエントリ、 file:// 、 jar:// 、 jrt:// のような URL をサポートしています。 他のツールから返されたパスはそのまま渡すことができます(例:search_*ツールからのパス)。 指定しない場合はすべてのブレークポイントを返します。 デフォルト:null。line: 除去するブレークポイントの 1 始まりの行番号(オプション入力)。owner: ブレークポイント所有者フィルター。 デフォルト: agent。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_run_to_line
実行をターゲット行に再開します。 このツールを使うと、手動でステップ実行中にせずに特定のソース位置まで実行できます。
前提条件:
セッションが一時停止状態である必要があります。
ターゲットファイル/行が有効でなければなりません。
結果:
paused: セッションがターゲットでまたはその後で一時停止しました。stopped: セッションが一時停止前に終了しました。timeout: タイムアウト内に一時停止/停止しませんでした。
次の呼び出し:
一時停止した場合は
xdebug_get_stack/xdebug_get_frame_values/xdebug_evaluate_expressionを呼び出してください。セッションが終了または消失した場合は、もう一度セッション単位の操作を行う前に
xdebug_get_debugger_statusでsessionIdを更新してください。
パラメーター:
sessionId:デバッグセッション ID。xdebug_get_debugger_statusまたはxdebug_デバッガー_セッション開始で返された現在の ID を使ってください。 セッションが停止・タイムアウト・消失した場合は、古い ID を再利用する前にセッション一覧を更新してください。 フォーマット:デフォルトでセッションのお名前を ID に使用します。同じお名前のセッションが複数ある場合、ID は<sessionName>#<executionId>となります。 null かつアクティブなセッションが 1 件だけ存在する場合、自動的に選択されます。 複数のセッションがアクティブでsessionIdが省略された場合、呼び出しは失敗します。 デフォルト:null。filePath: プロジェクトルートからの相対パス。line: ターゲット行番号(1 始まり)。timeout: 一時停止/停止結果を待つタイムアウト(ミリ秒)。 デフォルト:30000。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_set_breakpoint
ブレークポイントを作成または更新します。 このツールを使うと、行ブレークポイントの設定、既存のIDによるブレークポイントの更新、トレースポイントやログ動作の制御ができます。
ターゲットモード:
場所指定:
filePath+lineを指定し、breakpointIdを省略してください(もしくはnullを渡してください)。""、"/"、"__omit__"などのプレースホルダー文字列は使わないでください。ID で指定:既存の不透明な標準
breakpointIdをxdebug_ブレークポイント設定またはxdebug_ブレークポイント一覧で取得し指定します(オプションでfilePath/lineで行ブレークポイントも再配置できます)。
検証:
場所指定モードでは
filePathとlineの両方が必須です。ID モードでは、ブレークポイントは存在し
breakpointIdにより一意に特定されている必要があります。場所指定モードでは
filePathはプロジェクトルートからの相対、lineは 1 始まり、ターゲット位置は実行可能ファイルでなければなりません。
イベントレポート:
無効な
condition式はxdebug_control_session(...).breakpointErrorsTailを通じて非同期的に報告されます。isLogMessageやisLogStackを含むブレークポイントのトレースポイント出力はxdebug_control_session(action=DRAIN_EVENTS).tracepointOutputsTail経由で取得されます。ブレークポイントエラーとトレースポイント出力のレポートは現在 JVM ベースのデバッガー(Java、Kotlin など)でのみサポートされています。
xdebug_ブレークポイント設定応答が成功しても、conditionやトレースポイント式の妥当性は保証されません。信頼する前に後続のbreakpointErrorsTailをご確認ください。行ブレークポイントが正常に返された場合は
lineTextも含まれ、ブレークポイントが現在存在するソース行の抜粋が短縮形で含まれます。 再開する前にそれを確認して配置を検証してください。
セマンティクス適用:
指定されたフィールドがターゲットブレークポイントの状態として適用されます。
condition=nullで既存の条件がクリアされます。isLogMessage=trueでブレークポイントヒット位置をログに記録します。isLogStack=trueで現在のスタックトレースをログに記録します。両方のフラグが true の場合は、位置とスタックの両方がログされます。
isLogMessage/isLogStack+suspendPolicy=NONEの場合、ブレークポイントはトレースポイントとして動作します。ID モードで行ブレークポイントに
filePath/lineが指定された場合、新しい場所に再配置(再作成)されます。IDモードで非行ブレークポイントの場合、
filePath/lineは無視され、メッセージで報告されます。いずれかの操作が成功すると、ブレークポイントは
agentの所有(mcpBreakpointMarker)となります。
次の呼び出し:
返された
lineTextまたはxdebug_ブレークポイント一覧で配置を確認できます。xdebug_start_debugger_sessionまたはxdebug_control_session(action=RESUME)で実行を開始または継続します。
パラメーター:
breakpointId:xdebug_ブレークポイント設定またはxdebug_ブレークポイント一覧で返された標準的なブレークポイントID。filePath: ブレークポイントをフィルターするためのオプションのファイルパス。 ファイルのパスです。 プロジェクト相対パス、 .. を含むパス、絶対パス、 /path/lib.jar!/pkg/Foo.class のようなアーカイブエントリ、 file:// 、 jar:// 、 jrt:// のような URL をサポートしています。 他のツールから返されたパスはそのまま渡すことができます(例:search_*ツールからのパス)。 指定しない場合はすべてのブレークポイントを返します。 デフォルト:null。line: 1 から始まる行番号。 ロケーションモードでのみ必要です。 IDモードでは、行ブレークポイントを再配置するためにオプションです。condition: オプションの条件式 - この式が true になった場合のみブレークポイントが発動します。 バリデーションエラーはxdebug_control_session(...).breakpointErrorsTail経由で非同期に報告されます(JVMベースのデバッガーのみ)。 デフォルト:null。isLogMessage: ブレークポイントに到達した際、ヒット位置(ソース位置)をログに記録するかどうか。 JVMベースのデバッガーではxdebug_control_session(action=DRAIN_EVENTS).tracepointOutputsTail経由で出力を確認できます。 デフォルト: false。isLogStack: ブレークポイント到達時にスタックトレースをログに記録するかどうか。 JVMベースのデバッガーではxdebug_control_session(action=DRAIN_EVENTS).tracepointOutputsTail経由で出力を確認できます。 デフォルト: false。temporary: 一時的なブレークポイント(最初のヒット後に除去されます)。 デフォルト: false。suspendPolicy: サスペンドポリシー: ALL、 THREAD、 NONE。 デフォルト: ALL。enabled: ブレークポイントが有効化されているかどうか。 デフォルト: true。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_set_variable
選択されたスタックフレーム内のパスで変数の値を変更します。 このツールを使ってデバッグ中に状態を変更できます。
前提条件:
セッションが一時停止状態である必要があります。
値は変更可能でなければなりません。
pathは現在一時停止中のxdebug_get_frame_values/xdebug_get_value_by_pathの出力から取得する必要があります。
パスのフォーマットは
xdebug_get_value_by_pathと同じです。newValueは現在のフレームの言語で書かれた生の式である必要があり、デバッガーまたは評価者によってターゲット値に代入可能でなければなりません。\\"text\\"のような JSON エスケープ済みのペイロードやリテラルなエスケープシーケンスは渡さないでください。結果:
oldValue/newValue/appliedを返します。未対応の変更はエラーとテキスト形式のメッセージを返します。
次の呼び出し:
xdebug_get_value_by_pathまたはxdebug_get_frame_valuesで再度値を読み出して確認してください。
パラメーター:
sessionId:デバッグセッション ID。xdebug_get_debugger_statusまたはxdebug_デバッガー_セッション開始で返された現在の ID を使ってください。 セッションが停止・タイムアウト・消失した場合は、古い ID を再利用する前にセッション一覧を更新してください。 フォーマット:デフォルトでセッションのお名前を ID に使用します。同じお名前のセッションが複数ある場合、ID は<sessionName>#<executionId>となります。 null かつアクティブなセッションが 1 件だけ存在する場合、自動的に選択されます。 複数のセッションがアクティブでsessionIdが省略された場合、呼び出しは失敗します。 デフォルト:null。frameIndex:スタックフレームインデックス(整数、0=最上位フレーム)。 これは現在一時停止中のxdebug_get_stack結果から取得してください。 RESUME、 STEP_*、xdebug_run_to_lineまたは一時停止場所が変更された後は、キャッシュされているフレームインデックスを再利用しないでください。 Null の場合は最上位フレームが使用されます。 デフォルト:null。path: ターゲット値へのパス。xdebug_get_value_by_pathと同じフォーマットです。 現在一時停止中のxdebug_get_frame_values/xdebug_get_value_by_path出力から正確なノードお名前を使用し、一時停止場所が変更された場合は古いパストークンをリフレッシュしてください。newValue: 割り当てる新しい値の式。 現在のフレームの言語で生の式テキストを渡してください。また、デバッガーまたは評価者によってターゲット値に代入可能でなければなりません。 JSON エスケープ済みのペイロードやリテラルなバックスラッシュエスケープ付き引用符テキストは渡さないでください。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- xdebug_start_debugger_session
現在のプロジェクト内で、既存の実行構成のお名前またはコード位置(
filePath+line)でデバッガーセッションを開始します。 このツールでデバッガーセッションを開始できます。 このツールは、既存の実行構成お名前、またはfilePath+lineのいずれかで使用してください。filePath+lineを使う場合は、mainなどの実行可能コードのメソッド行やテスト、または他の実行可能ファイルのエントリポイントが多くの場合に動作します。 どの行を使えばいいか不明な場合は、get_run_configurationsでファイル内の実行可能コードの場所を特定できます。 セッションが開始されたら、他のデバッガーツールで実行を制御できます。前提条件:
configurationNameを使う場合、既存の実行構成お名前を正確に渡してください。テストメソッドお名前や他の派生ターゲット識別子は渡さないでください。filePath+lineを使う場合は、mainなどの実行可能コード位置やテスト、または別の実行可能ファイルのエントリポイントを指定してください。最初に必ずブレークポイントを 1 つ以上設定してください。設定しない場合、プログラムは一時停止せず補完まで実行される可能性があります。
configurationName、またはfilePathとlineのセットいずれかを渡してください。 これらのモードは同時に使用できません。
振る舞い:
セッション作成のため最大
timeoutまで待機します。セッション開始後に
graceWaitMsのグレース待機を適用し、状態をリフレッシュしたものを返します。オプションの起動オーバーライド(
programArguments、workingDirectory、envs)はこのデバッグ起動時のみ有効で、保存されません。get_run_configurationsがオーバーライドサポートの基準です。選択した実行構成がsupportsDynamicLaunchOverrides=trueを報告したときのみ起動オーバーライドを渡してください。このデバッグ起動で構成された起動値を明示的に変更する必要がある場合のみ、これらのオーバーライドパラメーターを渡してください。
オーバーライドパラメーターが未指定または null の場合は、既存の実行構成値がそのまま維持されます。
文字列オーバーライド(
programArguments、workingDirectory)の場合、欠落/null または空文字列("")では既存値が維持されます。" "のような空白のみの文字列を渡すことで、このデバッグ起動の既存値をクリアします。
次の呼び出し:
xdebug_control_session(action=WAIT_FOR_PAUSE)で最初の中断まで待機します。一時停止後、
xdebug_get_stackおよびxdebug_get_frame_values(またはxdebug_evaluate_expression)を呼び出してランタイムの証跡を取得します。
デバッガーセッションのメタデータと起動からの実行スナップショットフィールドを含むフラットな結果を返します:
sessionId、name、status、オプションでrunConfigurationNameoutputプレビュー、オプションでfullOutputPathプロセス終了が既知の場合はオプションで
exitCode
パラメーター:
configurationName: デバッグ対象の既存実行構成のお名前。filePath: プロジェクトルートからのファイルパス。lineと一緒に指定してコード位置からデバッグを開始します。line:filePathの 1 から始まる行番号。filePathと一緒に指定し、configurationNameとは組み合わせないでください。timeout: デバッグセッション開始を待機するタイムアウト(ミリ秒)。 デフォルト: 60000。graceWaitMs: セッション開始後に状態をリフレッシュするためのグレース待機(ミリ秒)。 デフォルト: 2000。programArguments: この起動に限り適用されるオプションのプログラム引数のオーバーライド。 これは、選択した実行構成がsupportsDynamicLaunchOverrides=trueをget_run_configurationsで報告している場合のみ渡してください。 欠落/null または空文字列の場合、既存値を維持します。空白のみの文字列で既存値がクリアされます。workingDirectory: この起動に限り適用されるオプションの作業ディレクトリオーバーライド。 これは、選択した実行構成がsupportsDynamicLaunchOverrides=trueをget_run_configurationsで報告している場合のみ渡してください。 欠落/null または空文字列の場合、既存値を維持します。空白のみの文字列で既存値がクリアされます。envs: この起動に限り適用されるオプションの環境変数オーバーライド。 これは、選択した実行構成がsupportsDynamicLaunchOverrides=trueをget_run_configurationsで報告している場合のみ渡してください。 欠落/null の場合、既存の環境は変更されません。指定された場合、値は既存の環境に上書きされてマージされます。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
開発者キット MCP ツール
- find_lock_requirement_usages
キャレット下のメソッドに対するRead/Writeロックの使用箇所を解析します。 呼び出しパスもある程度の深さまで解析します。 このツールを使って、Read/Writeロックの要件として考えられる使用箇所を特定できます。 ロック要件とその呼び出しパスのリストを返します。
パラメーター:
filePath: プロジェクトルートからの相対パス。line: カーソルが位置する行。column: カーソルが位置する列。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- find_threading_requirements_usages
キャレット下のメソッドで使用されているスレッド制約(例:UIスレッドまたはバックグラウンドスレッドで実行が必要かどうか)に関する使用箇所を解析します。 呼び出しパスもある程度の深さまで解析します。 このツールを使ってスレッド要件として考えられる使用箇所を特定できます。 スレッド要件とその呼び出しパスのリストを返します。
パラメーター:
filePath: プロジェクトルートからの相対パス。line: カーソルが位置する行。column: カーソルが位置する列。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
実行ツール
- execute_run_configuration
現在のプロジェクト内で、既存の実行構成のお名前、またはコード位置(
filePath+line)から作成された一時的な実行構成で実行し、指定タイムアウトまで終了を待機します。 このツールは、get_run_configurationsで返された構成お名前、またはget_run_configurations(filePath = ...)で返された実行ポイント(filePath+line)のいずれかで使用します。オプションの起動オーバーライド(
programArguments、workingDirectory、envs)はこの実行のみ有効で、保存されません。 この実行で構成された起動値を明示的に変更する必要がある場合のみ、これらのオーバーライドパラメーターを渡してください。 オーバーライドパラメーターが未指定または null の場合は、既存の実行構成値がそのまま維持されます。 文字列オーバーライド(programArguments、workingDirectory)の場合、欠落/null または空文字列("")では既存値が維持されます。" "のような空白のみの文字列を渡すことでこの実行の既存値をクリアします。configurationName、またはfilePathとlineのセットいずれかを渡してください。 これらのモードは同時に使用できません。振る舞い:
waitForExit=trueの場合、最大timeoutミリ秒間プロセス終了を待ちます。 タイムアウトに達するとプロセスはバックグラウンドで実行を継続し、exitCodeは結果に含まれません。waitForExit=falseの場合、プロセスの開始のみ待機し、timeoutは適用せず直ちに返ります。fullOutputPathはフル生出力の一時ファイルを指し、プロセス実行中は継続して成長します。
現在の出力スナップショット、オプションの終了コード、およびオプションの
fullOutputPathを含む実行結果を返します。パラメーター:
configurationName: 実行する既存実行構成のお名前。filePath: プロジェクトルートからのファイルパス。lineと一緒に指定して、コードコンテキストから一時的実行構成を作成し実行します。line:filePathの 1 から始まる行番号。filePathと一緒に指定し、configurationNameとは組み合わせないでください。timeout: タイムアウト(ミリ秒)。waitForExit: プロセス終了を待機するかどうか。 false の場合、プロセス開始後すぐにツールは返され、timeoutは無視されます。programArguments: この起動に限り適用されるオプションのプログラム引数のオーバーライド。 欠落/null または空文字列の場合、既存値を維持します。空白のみの文字列で既存値がクリアされます。workingDirectory: この起動に限り適用されるオプションの作業ディレクトリオーバーライド。 欠落/null または空文字列の場合、既存値を維持します。空白のみの文字列で既存値がクリアされます。envs: この起動に限り適用されるオプションの環境変数オーバーライド。 欠落/null の場合、既存の環境は変更されません。指定された場合、値は既存の環境に上書きされてマージされます。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- get_run_configurations
入力に応じて、プロジェクトの実行構成または実行可能ファイルコード位置のいずれかを返します。
filePathがない場合、このツールはプロジェクトの既存の実行構成を一覧表示します。 結果には構成お名前と、利用可能な場合はプログラム引数、作業ディレクトリ、環境変数、およびsupportsDynamicLaunchOverridesなどの起動詳細が含まれます。supportsDynamicLaunchOverridesは、execute_run_configurationおよびxdebug_start_debugger_sessionにおける一時的な起動オーバーライド(programArguments、workingDirectory、envs)のソースオブトゥルース機能フラグです。 このフラグがtrueの場合のみ、指定した構成に対してそのオーバーライドパラメーターを渡してください。filePath: プロジェクトルートからのオプションのファイル相対パス。 結果にはfilePathおよびrunPointsが含まれます。返された行番号をexecute_run_configurationと一緒に使い、コードから実行します。パラメーター:
filePath: プロジェクトルートからのオプションのファイル相対パス。 指定されている場合は、プロジェクト全体の実行構成ではなくファイル内の実行ポイント(実行可能ファイルのエントリポイント)を返します。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
ファイルツール
- create_new_file
プロジェクトディレクトリ内の指定されたパスに新しいファイルを作成します。 オプションで、指定されたテキストをファイルに書き込みます。
パラメーター:
pathInProject: プロジェクトルートを基準としてファイルを作成するパス。テキスト(オプション): 新しいファイルに書き込むコンテンツ。overwrite: 既存のファイルを上書きするかどうか。falseに設定すると、競合が発生した場合に例外がスローされます。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- find_files_by_glob
プロジェクト内のファイルのうち、相対パスが指定された glob パターンに一致するすべてのファイルを検索します。 検索は、プロジェクトディレクトリのすべてのサブディレクトリ、または指定されたサブディレクトリで再帰的に実行されます。 このツールは、glob パターン(例:
**/*.txt)でファイルを検索する場合に使用します。パラメーター:
globPattern: 検索する glob パターン。 パターンはプロジェクトルートからの相対パスで指定する必要があります。 例:src/**/*.java。subDirectoryRelativePath(オプション): 検索するプロジェクトに相対するサブディレクトリ。addExcluded: 除外 / 無視されたファイルを検索結果に追加するかどうか。 ファイルはユーザーまたは無視ルールによって除外できます。fileCountLimit: 返されるファイルの最大数。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- find_files_by_name_keyword
プロジェクト内の、指定したキーワード(大文字と小文字を区別)を含むファイル名を持つすべてのファイルを検索します。 ファイル名の一部がわかっている場合は、このツールを使用してファイルを検索できます。
パラメーター:
nameKeyword: ファイル名で検索する部分文字列。fileCountLimit: 返されるファイルの最大数。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- get_all_open_file_paths
アクティブなエディターまたは他の開いているエディターで編集用に開かれたすべてのファイルのパスを、プロジェクトルートからの相対パスで返します。 このツールを使用すると、現在開いているエディターを調べることができます。
パラメーター:
projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- list_directory_tree
指定されたディレクトリのツリー表示を、
treeユーティリティに似た疑似グラフィック形式で提供します。 このツールは、ディレクトリまたはプロジェクト全体の内容を調べるのに使用できます。 ディレクトリ一覧の表示には、lsやdirなどのコマンドラインユーティリティよりも、このツールを推奨します。パラメーター:
directoryPath: プロジェクトルートからの相対パス。maxDepth: 最大再帰深度。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- open_file_in_editor
指定されたファイルを JetBrains IDE エディターで開きます。 開くファイルへのパスを含む
filePathパラメーターが必要です。 ファイルパスは絶対パスまたはプロジェクトルートからの相対パスで指定できます。パラメーター:
filePath: プロジェクトルートからの相対パス。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
フォーマット ツール
- reformat_file
JetBrains IDE で指定されたファイルを再フォーマットします。 このツールを使用すると、パスで指定されたファイルにコードフォーマットを適用できます。
パラメーター:
path: プロジェクトルートからの相対パス。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
インスペクション ジェネレーター MCP ツール
- validate_inspection_kts
inspection.kts スクリプトを仕様サンプルに対して検証します。 インスペクションをコンパイルし、ポジティブ/ネガティブサンプルで実行します。 コンパイルステータスおよび詳細な検証結果を返します。
ポジティブサンプルではインスペクションがトリガーされる必要があります(問題が想定されます)。 ネガティブサンプルではインスペクションがトリガーされてはいけません(禁止行には問題がない想定です)。
全体の成否、サンプルごとの結果、集計統計を返します。
パラメーター:
inspectionKtsCode: コンパイルおよび検証する inspection.kts スクリプト内容。pathToSpecification: サンプル付き仕様へのパス(検証対象)。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
インスペクション KTS MCP ツール
- generate_inspection_kts_api
ターゲット言語用のインスペクション KTS API ドキュメントを返します。 inspection.kts ファイル作成時に使用できるクラスや関数を提供します。
パラメーター:
language: ターゲット言語:'Java' または 'Kotlin'。wrapInTags: true の場合、API の内容が<API>と<api.kt>タグでラップされます。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- generate_inspection_kts_examples
ターゲット言語用の例 inspection.kts テンプレートを返します(コード生成の参考用)。 InspectionKts API を使ったインスペクションの書き方を示す XML ラップ例を提供します。
パラメーター:
language: ターゲット言語:'Java' または 'Kotlin'。includeAdditionalExamples: true の場合、テンプレート以外の追加のキュレート例も含まれます。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- generate_psi_tree
指定された Java または Kotlin コードの PSI ツリーを作成し、インデント付きテキストとして返します。 インスペクション作成時にコードスニペットの PSI 構造を理解するためにこのツールを利用します。 出力には要素の種類とその階層が表示され、
node.children()が必要なタイミングのヒントも示されます。パラメーター:
コード: 構文解析中のソースコードスニペット。language: ターゲット言語:'Java' または 'Kotlin'。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- run_inspection_kts
inspection.kts スクリプトをコンパイルし、ターゲットファイルで実行します。 コンパイルエラーがあれば返し、なければインスペクションで検出された問題一覧を返します。 開発時に inspection.kts スクリプトをテストするためこのツールを利用します。
パラメーター:
inspectionKtsCode: コンパイルおよび実行する inspection.kts スクリプト内容。contextPath: プロジェクト内で解析するターゲットファイルまでの相対パス(例: src/my/package/Example.kt )。targetFileContent: 解析対象のターゲットファイルの内容。 指定しない場合、ファイルはプロジェクト内に存在している必要があります。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
モノリポ 開発者キット MCP ツール
- プロジェクトステータス取得
プロジェクトがコード解析操作の準備ができているか確認します。 インデックス作成およびスキャンのステータスを返します。
lint_filesやget_file_problemsのような重い操作の前に使うことでタイムアウトを回避します。パラメーター:
projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
読み取りツール
- ファイル読み込み
プロジェクトディレクトリや依存関係、他のプロジェクトソースルート内のファイルを読み取ります。 Jar/Jrt ファイル内のソース読み取りや、Jar/Jrt ファイルまたはディスク上の Java クラスファイルのデコンパイルも可能です。 行番号(1 インデックス)付きテキストとして返します。
モード:
slicelinesline_columnsoffsetsindentation
モード詳細:
sliceはstart_lineおよびmax_linesを使用します。linesはstart_line/end_line(両方含む)を使用します。line_columnsはstart_line/start_columnおよびend_line/end_columnを使用します(endは除外、end_lineはstart_lineがデフォルト)。offsetsはstart_offset/end_offsetを使用します(endは除外)。indentationはstart_lineをmax_levels/include_*と共に使います。
max_linesは全モードで出力を制限し、context_linesはレンジモード(サイド毎)に適用されます。パラメーター:
file_path: ファイルへのパス。 プロジェクト相対パス、 '..' を含むパス、絶対パス、 /path/lib.jar!/pkg/Foo .class のようなアーカイブエントリ、 file:// 、 jar:// 、 jrt:// のような URL をサポートしています。 他のツールから返されたパスはそのまま渡すことができます(例:search_*ツールからのパス)。モード: リードモード:slice、lines、line_columns、offsets、またはindentation。start_line: 1 起点の読み取り開始行番号。max_lines: 返す最大行数(スライスは行数として利用、すべてのモードで出力制限)。end_line:lines/line_columnsモードの 1 起点の終了行(linesは含み、line_columnsは除外)。start_column:line_columnsモードの 1 起点の開始列。end_column: 範囲読取時の 1 起点の終了列(除外)。start_offset: オフセットモードの 0 起点の開始オフセット(end_offsetが必要)。end_offset: オフセットモードの 0 起点の終了オフセット(除外)。context_lines: 範囲の前後(各サイド)のコンテキスト行数。max_levels: インデントモード:含める最大インデントレベル数(0=アンカーブロックのみ)。include_siblings: インデントモード:同じインデントレベルの兄弟ブロックを含めます。include_header: インデントモード:アンカー直上のヘッダーコメントおよびアノテーションを含めます。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
リファクタリング ツール
- rename_refactoring
指定されたファイル内のシンボル(変数、関数、クラスなど)の名前を変更します。 このツールを使用して、名前変更リファクタリング操作を実行します。
単純なテキスト検索と置換とは異なり、
rename_refactoringツールはコード構造を理解するコンテキスト対応ユーティリティです。 プロジェクト全体にわたって指定されたシンボルへの参照をすべてインテリジェントに更新することで、コードの整合性を確保し、参照の破損を防ぎます。 プログラムシンボルの名前変更では、常に推奨されるメソッドです。名前変更が成功した場合は成功メッセージを、ファイルまたはシンボルが見つからない場合、または名前変更が失敗した場合はエラーメッセージを返します。
パラメーター:
pathInProject: プロジェクトルートからの相対パス。symbolName: リネーム対象シンボルのお名前。newName: シンボルの新しいお名前。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
ノートブック ツール実行
- runNotebookCell
Jupyter ノートブックのセルを 1 つまたはすべて実行します。
例:
{"file_path": "/abs/path/demo.ipynb", "cell_id": "13c5cec416369e19"}{"file_path": "/abs/path/demo.ipynb"}
パラメーター:
file_path: .ipynb ノートブックへの絶対パス。cell_id: オプションの Jupyter セル ID。 省略時は全セルが実行されます。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
ツールを検索
- ファイル検索
プロジェクト内でグロブパターンによるファイル検索を行います。 グロブ構文でファイルパスをマッチさせたい場合にこのツールを利用します。
グロブパターンはプロジェクトルートを基準としています。
例:
"**/*.kt""src/**/Foo*.java""build.gradle.kts"
'/'を含まないパターンは"**/pattern"として扱われます。pathsはプロジェクトルートを基準とした追加のグロブフィルター(オプション)です。パラメーター:
q: 検索する glob パターン。paths: 結果をフィルターするためのプロジェクト相対グロブパターンのリスト(オプション)。!除外をサポートしています。 末尾の/は**へ展開されます。/を含まないパターンは**/patternとして扱われます。 空文字列は無視されます。includeExcluded: 除外/無視されたファイルも結果に含めるかどうか。limit: 返す最大結果数。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- 正規表現検索
プロジェクトファイル内で正規表現検索を行います。 スニペット付き正規表現検索が必要な場合にこのツールを利用します。 結果には利用可能な場合、マッチした座標(1 始まりの行/列、0 始まりのオフセット)が含まれます。
パスはプロジェクトルート相対のグロブパターンです。
例:
["src/**", "!**/test/**"]["**/*.kt"]["foo/"]
パラメーター:
q: 検索する正規表現パターン。paths: 結果をフィルターするためのプロジェクト相対グロブパターンのリスト(オプション)。!除外をサポートしています。 末尾の/は**へ展開されます。/を含まないパターンは**/patternとして扱われます。 空文字列は無視されます。limit: 返す最大結果数。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- シンボル検索
シンボル(クラス、メソッド、フィールド)を検索します。 識別子断片による意味検索にこのツールを利用します。 結果には利用可能な場合、マッチした座標(1 始まりの行/列、0 始まりのオフセット)が含まれます。
パスはプロジェクトルート相対のグロブパターンです。
デフォルトではプロジェクトシンボルのみ検索されます。 適切な結果が見つからない場合は、
include_external=trueを使って SDK やライブラリのシンボルも検索してください。パラメーター:
q: シンボルクエリテキスト。paths: 結果をフィルターするためのプロジェクト相対グロブパターンのリスト(オプション)。!除外をサポートしています。 末尾の/は**へ展開されます。/を含まないパターンは**/patternとして扱われます。 空文字列は無視されます。include_external: SDK とライブラリのシンボルも含めるかどうか。 デフォルトは無効です。適切なものが見つからない場合はinclude_external=trueで再度お試しください。limit: 返す最大結果数。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- テキスト検索
プロジェクトファイル内でテキスト部分文字列を検索します。 スニペット付き高速テキスト検索にこのツールを利用します。 結果には利用可能な場合、マッチした座標(1 始まりの行/列、0 始まりのオフセット)が含まれます。
パスはプロジェクトルート相対のグロブパターンです。
例:
["src/**", "!**/test/**"]["**/*.kt"]["foo/"]
パラメーター:
q: 検索するテキスト。paths: 結果をフィルターするためのプロジェクト相対グロブパターンのリスト(オプション)。!除外をサポートしています。 末尾の/は**へ展開されます。/を含まないパターンは**/patternとして扱われます。 空文字列は無視されます。limit: 返す最大結果数。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
ターミナル ツール
- execute_terminal_command
IDE の統合ターミナルで指定されたシェルコマンドを実行します。 このツールを使用すると、IDE 環境内でターミナルコマンドを実行できます。
重要な機能と制限事項:
出力を収集する前にプロセスが実行中かどうかを確認します。
出力を 2000 行に制限します (超過分は切り捨てられます)。
指定されたタイムアウト後に通知とともにタイムアウトします。
設定で ブレイブモードが有効になっていない限り、ユーザーの確認が必要です。
可能な応答を返します:
ターミナル出力 (2000 行を超える場合は切り捨てられます)。
コマンドがタイムアウトした場合に中断通知を出力します。
さまざまな失敗ケースのエラーメッセージ。
パラメーター:
コマンド: 実行するシェルコマンド。executeInShell: コマンドをユーザーのデフォルトシェル(bash、zsh など)で実行するかどうかを指定します。 コマンドがシェルスクリプトの場合、またはユーザーのターミナルの実際の環境を維持することが重要な場合に便利です。falseに設定すると、コマンドはプロセスとして起動されます。reuseExistingTerminalWindow: 複数のターミナルを作成しないように、既存のターミナルウィンドウを再利用するかどうか。timeout: タイムアウト(ミリ秒)。maxLinesCount: 返される行の最大数。truncateMode: テキストを切り捨てる方法: 先頭から、途中から、最後から、まったく切り捨てない。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
テキスト ツール
- get_file_text_by_path
プロジェクトルートからの相対パスを使用して、ファイルのテキストコンテンツを取得します。 ファイルのプロジェクト相対パスがわかっている場合は、このツールを使用してファイルの内容を読み取ることができます。
パラメーター:
pathInProject: プロジェクトルートを基準としてファイルを作成するパス。truncateMode: テキストを切り捨てる方法: 先頭から、途中から、最後から、まったく切り捨てない。maxLinesCount: 返される行の最大数。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- replace_text_in_file
ファイル内のテキストを、検索と置換の柔軟なオプションを使って置換します。 このツールを使用すると、ファイル全体を置換することなく、特定の変更を加えることができます。 置換するテキストが正確にわかっている場合、ファイルの変更に最も効率的なツールです。
次のいずれかの応答を返します。
ok– 交換は成功しました。project dir not found– プロジェクトディレクトリを特定できません。file not found– 指定されたファイルが存在しません。could not get document– ファイルの内容にアクセスできません。no occurrences found– 置換するテキストがファイル内に見つかりませんでした。
パラメーター:
pathInProject: プロジェクトルートを基準としたターゲットファイルへのパス。oldText: 置換するテキスト。newText: 置換テキスト。replaceAll: すべての出現箇所を置き換えるかどうか。caseSensitive: 検索で大文字と小文字を区別するかどうか。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- search_in_files_by_regex
IntelliJ の検索エンジンを使用して、プロジェクト内のすべてのファイル内で正規表現パターンを検索します。 コマンドラインツールでファイルを読み取るよりも、このツールの方がはるかに高速なので、推奨されます。
結果に含まれる出現箇所は、
||文字で囲まれます。 例:some text ||substring|| text。パラメーター:
regexPattern: 検索する正規表現パターン。directoryToSearch: プロジェクトルートからの相対的な検索ディレクトリ。 指定しない場合は、プロジェクト全体を検索します。fileMask: 検索するファイルマスク。 指定しない場合は、すべてのファイルを検索します。 例:*.java。caseSensitive: 検索で大文字と小文字を区別するかどうか。maxUsageCount: 返されるエントリの最大数。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- search_in_files_by_text
IntelliJ の検索エンジンを使用して、プロジェクト内のすべてのファイル内のテキスト部分文字列を検索します。 コマンドラインツールでファイルを読み取るよりも、このツールの方がはるかに高速なので、推奨されます。
結果に含まれる出現箇所は、
||文字で囲まれます。 例:some text ||substring|| textパラメーター:
searchText: 検索するテキストの部分文字列。directoryToSearch: プロジェクトルートからの相対的な検索ディレクトリ。 指定しない場合は、プロジェクト全体を検索します。fileMask: 検索するファイルマスク。 指定しない場合は、すべてのファイルを検索します。 例:*.java。caseSensitive: 検索で大文字と小文字を区別するかどうか。maxUsageCount: 返されるエントリの最大数。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
VCS ツール
- get_repositories
プロジェクト内の VCS ルートのリストを取得します。 このツールを使用すると、マルチリポジトリプロジェクト内のすべてのリポジトリを識別できます。
パラメーター:
projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。