MCP サーバー
バージョン 2025.2 以降、PhpStorm には統合された MCP サーバー(英語)が搭載されており、Claude Desktop、Cursor、Codex、VS Code などの外部クライアントから IDE が提供するツールにアクセスできます。これにより、ユーザーは好みのアプリケーションを移動することなく、JetBrains IDE を制御および操作できるようになります。
外部クライアントのセットアップ
Claude Code、Claude Desktop、Cursor、VS Code、Codex、Windsurf などの外部クライアントの場合、構成は自動的に実行できます。
メインメニューで、に移動します。
MCP サーバーを有効にするをクリックします。
クライアントの自動構成セクションで、MCP サーバーで使用するために設定したい各クライアントの自動構成をクリックします。これにより、JSON 設定が自動的に更新されます。

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

コピーした構成をクライアントの設定または構成ファイルに貼り付けます。
設定を有効にするにはクライアントを再起動してください。
確認なしでアクションを実行する
MCP サーバーを使用すると、接続された外部クライアントは、毎回ユーザーに確認を求めることなく、ターミナルコマンドを実行したり、IDE で構成を実行したりできます。
このモードを有効にするには:
メインメニューで、に移動します。
コマンド実行セクションで、確認なしでシェルコマンドまたは実行構成を実行する (勇敢なモード) 設定を有効にします。
適用をクリックします。
サポートされているツール
以下は、MCP サーバーによって提供されるツールのリストです。
- execute_run_configuration
現在のプロジェクトで特定の実行構成を実行し、指定されたタイムアウトまで完了を待機します。このツールは、
get_run_configurationsツールで取得した実行構成を実行する場合に使用します。終了コード、出力、成功ステータスを含む実行結果を返します。
パラメーター:
configurationName: 実行する実行構成の名前。timeout: タイムアウト(ミリ秒)。maxLinesCount: 返される行の最大数。truncateMode: テキストを切り捨てる方法: 先頭から、途中から、最後から、まったく切り捨てない。projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- get_run_configurations
現在のプロジェクトの実行構成のリストを返します。実行構成は、ソースからアプリケーション、タスク、テストスイートを実行する方法を定義します。
このツールは、利用可能な場合にはコマンドライン、作業ディレクトリ、環境変数などの追加情報も提供します。
このツールを使用して、現在のプロジェクトで使用可能な実行構成のリストを照会します。
パラメーター:
projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- get_file_problems
IntelliJ インスペクションを使用して、指定されたファイルのエラーと警告を分析します。このツールを使用すると、特定のファイル内のコーディングの問題、構文エラー、その他の問題を特定できます。
重大度、説明、場所の情報を含む問題のリストを返します。
パラメーター:
filePath: プロジェクトルートからの相対パス。errorsOnly: エラーのみを含めるか、エラーと警告の両方を含めるか。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- get_project_dependencies
プロジェクトで定義されているすべての依存関係のリストを返します。ライブラリ名に関する構造化された情報を提供します。
パラメーター:
projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- get_project_modules
プロジェクト内のすべてのモジュールとそのタイプをリスト形式で返します。各モジュールの名前やタイプなど、構造化された情報を提供します。
パラメーター:
projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- create_new_file
プロジェクトディレクトリ内の指定されたパスに新しいファイルを作成します。オプションで、指定されたテキストをファイルに書き込みます。
パラメーター:
pathInProject: プロジェクトルートを基準としてファイルを作成するパス。text(オプション): 新しいファイルに書き込むコンテンツ。overwrite: 既存のファイルを上書きするかどうか。falseに設定すると、競合が発生した場合に例外がスローされます。projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- find_files_by_glob
プロジェクト内のファイルのうち、相対パスが指定された glob パターンに一致するすべてのファイルを検索します。検索は、プロジェクトディレクトリのすべてのサブディレクトリ、または指定されたサブディレクトリで再帰的に実行されます。このツールは、glob パターン(例:
**/*.txt)でファイルを検索する場合に使用します。パラメーター:
globPattern: 検索する glob パターン。パターンはプロジェクトルートからの相対パスで指定する必要があります。例:src/**/*.javasubDirectoryRelativePath(オプション): 検索するプロジェクトに相対するサブディレクトリ。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: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- 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: 検索するファイルマスク。指定しない場合は、すべてのファイルを検索します。例:*.javacaseSensitive: 検索で大文字と小文字を区別するかどうか。maxUsageCount: 返されるエントリの最大数。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- search_in_files_by_text
IntelliJ の検索エンジンを使用して、プロジェクト内のすべてのファイル内のテキスト部分文字列を検索します。コマンドラインツールでファイルを読み取るよりも、このツールの方がはるかに高速なので、推奨されます。
結果内の出現箇所は、
||文字で囲まれてハイライトされます。例:some text ||substring|| textパラメーター:
searchText: 検索するテキストの部分文字列。directoryToSearch: プロジェクトルートからの相対的な検索ディレクトリ。指定しない場合は、プロジェクト全体を検索します。fileMask: 検索するファイルマスク。指定しない場合は、すべてのファイルを検索します。例:*.javacaseSensitive: 検索で大文字と小文字を区別するかどうか。maxUsageCount: 返されるエントリの最大数。timeout: タイムアウト(ミリ秒)。projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- get_symbol_info
指定されたファイル内の指定された位置にあるシンボルに関する情報を取得します。IntelliJ IDEA のクイックドキュメント機能と同じ情報を提供します。この情報には、プログラミング言語に応じて、シンボルの名前、シグネチャー、型、ドキュメント、その他の詳細が含まれる場合があります。
位置がシンボルを参照している場合、ツールはシンボルの宣言(存在する場合)を含むコードスニペットを返します。このツールを使用して、シンボルの宣言、セマンティクス、位置を理解してください。
パラメーター:
filePath: プロジェクトルートからの相対パス。line: 1 から始まる行番号。column: 1 から始まる列番号。projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- rename_refactoring
指定されたファイル内のシンボル(変数、関数、クラスなど)の名前を変更します。このツールを使用して、名前変更リファクタリング操作を実行します。
単純なテキスト検索と置換とは異なり、
rename_refactoringツールはコード構造を理解するコンテキスト対応ユーティリティです。プロジェクト全体にわたって指定されたシンボルへの参照をすべてインテリジェントに更新することで、コードの整合性を確保し、参照の破損を防ぎます。プログラムシンボルの名前変更には、常にrename_refactoringが推奨される方法です。ツールは、名前の変更操作が成功した場合には成功メッセージを返します。ファイルまたはシンボルが見つからない場合、または名前の変更操作が失敗した場合にはエラーメッセージを返します。
パラメーター:
pathInProject: プロジェクトルートからの相対パス。symbolName: 名前を変更する既存のシンボルの正確な名前(大文字と小文字が区別されます)(例:getUserData)。newName: シンボルの正確な名前(大文字と小文字が区別されます) (例:fetchUserData)。projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- execute_terminal_command
IDE の統合ターミナルで指定されたシェルコマンドを実行します。このツールを使用すると、IDE 環境内でターミナルコマンドを実行できます。
重要な機能と制限事項:
出力を収集する前にプロセスが実行中かどうかを確認します。
出力を 2000 行に制限します (超過分は切り捨てられます)。
指定されたタイムアウト後に通知とともにタイムアウトします。
設定でブレイブモードが有効になっていない限り、ユーザーの確認が必要です。
可能な応答を返します:
ターミナル出力 (2000 行を超える場合は切り捨てられます)。
コマンドがタイムアウトした場合に中断通知を出力します。
さまざまな失敗ケースのエラーメッセージ。
パラメーター:
command: 実行するシェルコマンド。executeInShell: コマンドをユーザーのデフォルトシェル(bash、zsh など)で実行するかどうかを指定します。コマンドがシェルスクリプトの場合、またはユーザーのターミナルの実際の環境を維持することが重要な場合に便利です。falseに設定すると、コマンドはプロセスとして起動されます。reuseExistingTerminalWindow: 複数のターミナルを作成しないように、既存のターミナルウィンドウを再利用するかどうか。timeout: タイムアウト(ミリ秒)。maxLinesCount: 返される行の最大数。truncateMode: テキストを切り捨てる方法: 先頭から、途中から、最後から、まったく切り捨てない。projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
- get_repositories
プロジェクト内の VCS ルートのリストを取得します。このツールを使用すると、マルチリポジトリプロジェクト内のすべてのリポジトリを識別できます。
パラメーター:
projectPath: プロジェクトパス。曖昧な呼び出しを減らすため、この値がわかっている場合は必ずこの値を指定してください。現在の作業ディレクトリのみがわかっている場合は、それをプロジェクトパスとして使用できます。
データベース固有のツール
AI エージェントに対して厳密に読み取り専用アクセスを保証するには、適切な制限(読み取り専用)権限を持つデータベースユーザーを使用し、データソースがそのユーザーを使用するように構成します。
- 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です。