IntelliJ IDEA 2026.2 Help

MCP サーバー

バージョン 2025.2 以降、IntelliJ IDEA には MCP サーバー が統合され、Claude Desktop、Cursor、Codex、VS Code などの外部クライアントが IDE が提供するツールにアクセスできるようになりました。 これにより、ユーザーは選択したアプリケーションを移動することなく、JetBrains IDE を制御および操作できるようになります。

MCP サーバー プラグインを有効化する。

この機能は、MCP サーバー プラグインに依存しており、IntelliJ IDEA にはデフォルトでバンドルされて有効化されています。 関連機能が利用できない場合は、プラグインを無効化していないことを確認してください。

  1. Ctrl+Alt+S を押して設定を開き、 プラグイン を選択します。

  2. インストール済み タブを開き、 MCP サーバー プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。

外部クライアントのセットアップ

Claude CodeClaude DesktopCursorVS CodeCodexWindsurf などの外部クライアントの場合、構成を自動で実行できます。

  1. メインメニューで 設定 | ツール | MCP サーバー へ移動します。

  2. MCP サーバーを有効化},{ をクリックします。

  3. クライアントの自動構成},{ セクションで、MCP サーバーで使用するために設定したい各クライアントの 自動構成},{ をクリックします。 これにより、JSON 設定が自動的に更新されます。

    MCP サーバー設定
  4. 構成を有効にするにはクライアントを再起動してください。

他のクライアントから MCP サーバーに接続する場合は、手動で設定を行う必要があります。

  1. 手動クライアント構成},{ セクションで、接続タイプに応じて SSE 設定をコピー},{標準入出力設定をコピーする},{ 、または HTTP ストリーム構成のコピー のいずれかをクリックします。

    MCP サーバーの手動設定
  2. コピーした構成をクライアントの設定または構成ファイルに貼り付けます。

  3. 構成を有効にするにはクライアントを再起動してください。

確認なしでアクションを実行する

MCP サーバーを使用すると、接続された外部クライアントは、毎回ユーザーに確認を求めることなく、ターミナルコマンドを実行したり、IDE で構成を実行したりできます。

このモードを有効にするには:

  1. メインメニューで 設定 | ツール | MCP サーバー へ移動します。

  2. コマンド実行},{ セクションで、 確認なしでシェルコマンドまたは実行構成を実行する(勇敢なモード)},{ 設定を有効にします。

  3. 適用 をクリックします。

サポートされているツール

MCP サーバーは、外部クライアントが IDE およびプロジェクトとやり取りできる一連のツールを提供します。たとえば、コードを解析したり、ファイルを修正したり、構成を実行したり、ターミナルコマンドを実行したりできます。

設定 | ツール | MCP サーバー | 公開ツール で利用可能なツール一覧の表示および管理ができます。 このページから、ワークフローや環境設定に応じて特定のツールを有効化または無効化できます。

以下は、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 スキルを各スキルフォルダーにコピーできます。 これを行うには、次の手順を実行します。

  1. メインメニューで 移動 | どこでも検索 に移動するか、 Shift を2回押して検索ウィンドウを開きます。

  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 を再利用しないでください。

次の呼び出し:

結果のステータス値:

  • 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\\" のようなリテラルのエスケープシーケンスは渡さないでください。

次の呼び出し:

パラメーター:

  • sessionId :デバッグセッション ID。 xdebug_get_debugger_status または xdebug_デバッガー_セッション開始 で返された現在の ID を使ってください。 セッションが停止・タイムアウト・消失した場合は、古い ID を再利用する前にセッション一覧を更新してください。 フォーマット:デフォルトでセッションのお名前を ID に使用します。同じお名前のセッションが複数ある場合、ID は <sessionName>#<executionId> となります。 null かつアクティブなセッションが 1 件だけ存在する場合、自動的に選択されます。 複数のセッションがアクティブで sessionId が省略された場合、呼び出しは失敗します。 デフォルト:null。

  • frameIndex :スタックフレームインデックス(整数、0=最上位フレーム)。 これは現在一時停止中の xdebug_get_stack 結果から取得してください。 RESUMESTEP_*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 は、 RESUMESTEP_*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 結果から取得してください。 RESUMESTEP_*xdebug_run_to_line または一時停止場所が変更された後は、キャッシュされているフレームインデックスを再利用しないでください。 Null の場合は最上位フレームが使用されます。 デフォルト:null。

  • depth: 評価結果の子要素を展開する最大深度(0 = 値のみ、1 = 直下の子、2 = 子と孫など)。 デフォルト: 0。

  • projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。

xdebug_get_stack

デバッグセッション内のスレッドのコールスタックを返します。 このツールを使うと、現在の実行ポイントまでに呼び出されたメソッドの連なりを見ることができます。

前提条件:

  • セッションが一時停止状態である必要があります。

振る舞い:

  • threadIdxdebug_get_threads から取得し、デバッガースレッドの表示お名前と一致します(デフォルトはアクティブなスレッド)。

  • ソース位置がない場合でもフレームが含まれます(ファイル/line は null の場合があります)。

ページネーション:

  • offset/limit は完全なスタックを収集した後に適用されます。

フレームフィールドに含まれるのは:

  • index

  • ファイル

  • line

  • isCurrent

  • presentation

ファイル はデバッガーが提供したまま報告されます(パスの正規化なし)。

次の呼び出し:

パラメーター:

  • 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

デバッグセッション内のスレッド一覧を返します。 このツールを使うと、すべてのスレッドとその現在のステータスを確認できます。

前提条件:

  • セッションが一時停止状態である必要があります。

次の呼び出し:

ページネーション:

  • offset/limit はすべてのスタック収集後に適用されます。

順序:

  • アクティブなスレッドが先頭に表示されます。

  • 残りのスレッドはスタックの深さが深い順に並べ替えられます。

スキーマフィールドには以下が含まれます:

  • id

  • name

  • state

  • isCurrent

  • additionalInfo

  • additionalInfoTooltip

  • frameCount

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 トークンは、 RESUMESTEP_*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 結果から取得してください。 RESUMESTEP_*xdebug_run_to_line または一時停止場所が変更された後は、キャッシュされているフレームインデックスを再利用しないでください。 Null の場合は最上位フレームが使用されます。 デフォルト:null。

  • path: 移動する子のお名前リスト(例: ['myObject', 'field', 'subField'] または ['items', '[0]', 'name'])。 一時停止中の xdebug_get_frame_valuesxdebug_get_value_by_path 出力から正確なノードお名前を使用し、一時停止場所が変更された場合はパストークンをリフレッシュしてください。

  • depth: 評価結果の子要素を展開する最大深度(0 = 値のみ、1 = 直下の子、2 = 子と孫など)。 デフォルト: 0。

  • projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。

xdebug_list_breakpoints

プロジェクトまたはファイル内のすべてのブレークポイントをリスト表示します。 このツールを使うと、現在設定されているすべてのブレークポイントとそのプロパティを確認できます。

振る舞い:

  • filePath が指定されている場合、そのファイル内のブレークポイントのみを返します。

  • 各ブレークポイントに対してリッチな属性(idファイルlineenabledownerconditionisLogMessageisLogStacktemporarysuspendPolicyhitCount )を返します。

次の呼び出し:

  • 適切なブレークポイントがない場合、 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=userowner=agent で 2 回呼び出してください。

次の呼び出し:

パラメーター:

  • 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: タイムアウト内に一時停止/停止しませんでした。

次の呼び出し:

パラメーター:

  • 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によるブレークポイントの更新、トレースポイントやログ動作の制御ができます。

ターゲットモード:

  • 場所指定: filePathline を指定し、 breakpointId を省略してください(もしくは null を渡してください)。 """/""__omit__" などのプレースホルダー文字列は使わないでください。

  • ID で指定:既存の不透明な標準 breakpointIdxdebug_ブレークポイント設定 または xdebug_ブレークポイント一覧 で取得し指定します(オプションで filePath/line で行ブレークポイントも再配置できます)。

検証:

  • 場所指定モードでは filePathline の両方が必須です。

  • ID モードでは、ブレークポイントは存在し breakpointId により一意に特定されている必要があります。

  • 場所指定モードでは filePath はプロジェクトルートからの相対、 line は 1 始まり、ターゲット位置は実行可能ファイルでなければなりません。

イベントレポート:

  • 無効な condition 式は xdebug_control_session(...).breakpointErrorsTail を通じて非同期的に報告されます。

  • isLogMessageisLogStack を含むブレークポイントのトレースポイント出力は xdebug_control_session(action=DRAIN_EVENTS).tracepointOutputsTail 経由で取得されます。

  • ブレークポイントエラーとトレースポイント出力のレポートは現在 JVM ベースのデバッガー(Java、Kotlin など)でのみサポートされています。

  • xdebug_ブレークポイント設定 応答が成功しても、 condition やトレースポイント式の妥当性は保証されません。信頼する前に後続の breakpointErrorsTail をご確認ください。

  • 行ブレークポイントが正常に返された場合は lineText も含まれ、ブレークポイントが現在存在するソース行の抜粋が短縮形で含まれます。 再開する前にそれを確認して配置を検証してください。

セマンティクス適用:

  • 指定されたフィールドがターゲットブレークポイントの状態として適用されます。

  • condition=null で既存の条件がクリアされます。

  • isLogMessage=true でブレークポイントヒット位置をログに記録します。

  • isLogStack=true で現在のスタックトレースをログに記録します。

  • 両方のフラグが true の場合は、位置とスタックの両方がログされます。

  • isLogMessageisLogStacksuspendPolicy=NONE の場合、ブレークポイントはトレースポイントとして動作します。

  • ID モードで行ブレークポイントに filePathline が指定された場合、新しい場所に再配置(再作成)されます。

  • IDモードで非行ブレークポイントの場合、 filePathline は無視され、 メッセージ で報告されます。

  • いずれかの操作が成功すると、ブレークポイントは 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: サスペンドポリシー: ALLTHREADNONE。 デフォルト: ALL

  • enabled: ブレークポイントが有効化されているかどうか。 デフォルト: true。

  • projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。

xdebug_set_variable

選択されたスタックフレーム内のパスで変数の値を変更します。 このツールを使ってデバッグ中に状態を変更できます。

前提条件:

  • セッションが一時停止状態である必要があります。

  • 値は変更可能でなければなりません。

  • path は現在一時停止中の xdebug_get_frame_valuesxdebug_get_value_by_path の出力から取得する必要があります。

パスのフォーマットは xdebug_get_value_by_path と同じです。 newValue は現在のフレームの言語で書かれた生の式である必要があり、デバッガーまたは評価者によってターゲット値に代入可能でなければなりません。 \\"text\\" のような JSON エスケープ済みのペイロードやリテラルなエスケープシーケンスは渡さないでください。

結果:

  • oldValuenewValueapplied を返します。

  • 未対応の変更はエラーとテキスト形式のメッセージを返します。

次の呼び出し:

パラメーター:

  • sessionId :デバッグセッション ID。 xdebug_get_debugger_status または xdebug_デバッガー_セッション開始 で返された現在の ID を使ってください。 セッションが停止・タイムアウト・消失した場合は、古い ID を再利用する前にセッション一覧を更新してください。 フォーマット:デフォルトでセッションのお名前を ID に使用します。同じお名前のセッションが複数ある場合、ID は <sessionName>#<executionId> となります。 null かつアクティブなセッションが 1 件だけ存在する場合、自動的に選択されます。 複数のセッションがアクティブで sessionId が省略された場合、呼び出しは失敗します。 デフォルト:null。

  • frameIndex :スタックフレームインデックス(整数、0=最上位フレーム)。 これは現在一時停止中の xdebug_get_stack 結果から取得してください。 RESUMESTEP_*xdebug_run_to_line または一時停止場所が変更された後は、キャッシュされているフレームインデックスを再利用しないでください。 Null の場合は最上位フレームが使用されます。 デフォルト:null。

  • path: ターゲット値へのパス。 xdebug_get_value_by_path と同じフォーマットです。 現在一時停止中の xdebug_get_frame_valuesxdebug_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 、または filePathline のセットいずれかを渡してください。 これらのモードは同時に使用できません。

振る舞い:

  • セッション作成のため最大 timeout まで待機します。

  • セッション開始後に graceWaitMs のグレース待機を適用し、状態をリフレッシュしたものを返します。

  • オプションの起動オーバーライド(programArgumentsworkingDirectoryenvs )はこのデバッグ起動時のみ有効で、保存されません。

  • get_run_configurations がオーバーライドサポートの基準です。選択した実行構成が supportsDynamicLaunchOverrides=true を報告したときのみ起動オーバーライドを渡してください。

  • このデバッグ起動で構成された起動値を明示的に変更する必要がある場合のみ、これらのオーバーライドパラメーターを渡してください。

  • オーバーライドパラメーターが未指定または null の場合は、既存の実行構成値がそのまま維持されます。

  • 文字列オーバーライド(programArgumentsworkingDirectory )の場合、欠落/null または空文字列("" )では既存値が維持されます。

  • " " のような空白のみの文字列を渡すことで、このデバッグ起動の既存値をクリアします。

次の呼び出し:

デバッガーセッションのメタデータと起動からの実行スナップショットフィールドを含むフラットな結果を返します:

  • sessionIdnamestatus 、オプションで runConfigurationName

  • output プレビュー、オプションで fullOutputPath

  • プロセス終了が既知の場合はオプションで exitCode

パラメーター:

  • configurationName: デバッグ対象の既存実行構成のお名前。

  • filePath: プロジェクトルートからのファイルパス。 line と一緒に指定してコード位置からデバッグを開始します。

  • line: filePath の 1 から始まる行番号。 filePath と一緒に指定し、 configurationName とは組み合わせないでください。

  • timeout: デバッグセッション開始を待機するタイムアウト(ミリ秒)。 デフォルト: 60000。

  • graceWaitMs: セッション開始後に状態をリフレッシュするためのグレース待機(ミリ秒)。 デフォルト: 2000。

  • programArguments: この起動に限り適用されるオプションのプログラム引数のオーバーライド。 これは、選択した実行構成が supportsDynamicLaunchOverrides=trueget_run_configurations で報告している場合のみ渡してください。 欠落/null または空文字列の場合、既存値を維持します。空白のみの文字列で既存値がクリアされます。

  • workingDirectory: この起動に限り適用されるオプションの作業ディレクトリオーバーライド。 これは、選択した実行構成が supportsDynamicLaunchOverrides=trueget_run_configurations で報告している場合のみ渡してください。 欠落/null または空文字列の場合、既存値を維持します。空白のみの文字列で既存値がクリアされます。

  • envs: この起動に限り適用されるオプションの環境変数オーバーライド。 これは、選択した実行構成が supportsDynamicLaunchOverrides=trueget_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 )のいずれかで使用します。

オプションの起動オーバーライド(programArgumentsworkingDirectoryenvs )はこの実行のみ有効で、保存されません。 この実行で構成された起動値を明示的に変更する必要がある場合のみ、これらのオーバーライドパラメーターを渡してください。 オーバーライドパラメーターが未指定または null の場合は、既存の実行構成値がそのまま維持されます。 文字列オーバーライド(programArgumentsworkingDirectory )の場合、欠落/null または空文字列("" )では既存値が維持されます。 " " のような空白のみの文字列を渡すことでこの実行の既存値をクリアします。

configurationName 、または filePathline のセットいずれかを渡してください。 これらのモードは同時に使用できません。

振る舞い:

  • 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 における一時的な起動オーバーライド(programArgumentsworkingDirectoryenvs )のソースオブトゥルース機能フラグです。 このフラグが 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 ユーティリティに似た疑似グラフィック形式で提供します。 このツールは、ディレクトリまたはプロジェクト全体の内容を調べるのに使用できます。 ディレクトリ一覧の表示には、 lsdir などのコマンドラインユーティリティよりも、このツールを推奨します。

パラメーター:

  • 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_filesget_file_problems のような重い操作の前に使うことでタイムアウトを回避します。

パラメーター:

  • projectPath: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。

読み取りツール

ファイル読み込み

プロジェクトディレクトリや依存関係、他のプロジェクトソースルート内のファイルを読み取ります。 Jar/Jrt ファイル内のソース読み取りや、Jar/Jrt ファイルまたはディスク上の Java クラスファイルのデコンパイルも可能です。 行番号(1 インデックス)付きテキストとして返します。

モード:

  • slice

  • lines

  • line_columns

  • offsets

  • indentation

モード詳細:

  • slicestart_line および max_lines を使用します。

  • linesstart_line/end_line (両方含む)を使用します。

  • line_columnsstart_line/start_column および end_line/end_column を使用します(end は除外、 end_linestart_line がデフォルト)。

  • offsetsstart_offset/end_offset を使用します(end は除外)。

  • indentationstart_linemax_levels/include_* と共に使います。

max_lines は全モードで出力を制限し、 context_lines はレンジモード(サイド毎)に適用されます。

パラメーター:

  • file_path: ファイルへのパス。 プロジェクト相対パス、 '..' を含むパス、絶対パス、 /path/lib.jar!/pkg/Foo .class のようなアーカイブエントリ、 file:// jar:// jrt:// のような URL をサポートしています。 他のツールから返されたパスはそのまま渡すことができます(例: search_* ツールからのパス)。

  • モード: リードモード: slicelinesline_columnsoffsets 、または indentation

  • start_line: 1 起点の読み取り開始行番号。

  • max_lines: 返す最大行数(スライスは行数として利用、すべてのモードで出力制限)。

  • end_line: linesline_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: プロジェクトパス。 曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。 現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。

2026 年 7 月 14 日