JVM Diagnostics MCP について
JVM Diagnostics MCPは、JVMのコマンドライン診断機能をMCP経由で提供するサーバーです。jstat、jps、jcmdなどを利用でき、スレッドダンプやヒープダンプも分析できます。現在はstdioでローカル実行します。
主な機能
- 01jstatによるメトリクス監視
- 02jpsによるプロセス確認
- 03jcmdによる診断コマンド実行
- 04スレッドダンプとヒープダンプの分析
- 05JavaアプリまたはDockerコンテナで実行
活用シーン
- 01JVMパフォーマンス指標の確認
- 02JVMプロセスの検索と調査
- 03JVM診断コマンドの実行
- 04スレッドまたはヒープダンプの分析
MCP 対応
MCPを介してJVM診断用のコマンドラインツールを公開し、対応クライアントから実行できます。現在はstdioトランスポートを使い、ローカルでの実行を想定しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e JAVA_HOME ghcr.io/brunoborges/jvm-diagnostics-mcp:latestJAVA_HOMEローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/brunoborges/jvm-diagnostics-mcp:lateststdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
JVM Diagnostics MCP
これは、jstat、jcmd、jps などのさまざまな JVM 診断ツール(CLI)をラップし、ツールの使い方を改善するプロンプトを追加して公開するMCP サーバーです。
何ができますか?
さまざまな JVM 診断ツールにアクセスできるため、次のようなタスクを実行できます。
jstatを使用して JVM のパフォーマンス指標を監視します。jpsを使用して JVM プロセスを調査、管理します。jcmdを使用して診断コマンドを実行します。- スレッドダンプ、ヒープダンプ、その他の JVM 関連の診断情報を分析します。
安全に使用できますか?
MCP サーバーは LLM によって操作されるため、生成されたコマンドには注意し、検証することをおすすめします。JVM ツールに関する優れたトレーニングデータを備えた Claude 3.7 や GPT-4o など、信頼できる LLM を使用した場合、これまでのところ非常に良好な結果が得られています。
ライセンスをお読みください。そこには「本ソフトウェアは『現状有姿』で提供され、いかなる種類の保証もありません」と記載されています。この MCP サーバーは、ご自身の責任でご使用ください。
セキュリティは確保されていますか?リモートサーバーで実行すべきですか?
簡潔に言えば、いいえです。
この MCP サーバーはユーザーに代わって JVM 診断コマンドを実行するため、攻撃者に悪用されて他のコマンドを実行される可能性があります。現時点での多くの MCP サーバーと同様に、現在の実装は stdio トランスポートでのみ動作します。これは、ユーザーが自分で操作するのと同じように、ローカルマシン上で JVM ツールを使って実行することを想定しています。
将来的には、この MCP サーバーが http トランスポートとトークンベースの認証をサポートし、異なるユーザーがリモートで利用できるようになる可能性があります。MCP 仕様と SDK がより安定した段階で検討する予定です。
インストール方法
この MCP サーバーは現在 stdio トランスポートでのみ動作するため、JVM 診断ツールを使ってローカルマシン上で実行してください。
このサーバーは Java アプリケーションとして、または Docker コンテナ内で実行できます。 マシンに Java がインストールされている場合は、最初の方法が最も簡単でしょう。Java がインストールされていない場合や、もう少し安全な方法を使いたい場合は、2 つ目の方法を利用できます。
Java を使ってサーバーをインストール、設定する
- Java 17 以降がインストールされていることを確認してください。ターミナルで
java -versionを実行すると確認できます。 jstat、jcmd、jpsなどの JVM 診断ツールが環境で利用できることを確認してください。
バイナリはGitHub のリリースページで入手できます。GitHub CLI を使って最新のバイナリをダウンロードする方法は次のとおりです。
- 最新のリリースをダウンロードします:
gh release download --repo brunoborges/jvm-diagnostics-mcp --pattern='jvm-diagnostics-mcp.jar'
Claude Desktop からサーバーを使用するには、claude_desktop_config.json ファイルにサーバーを追加します。jvm-diagnostics-mcp.jar ファイルをダウンロードした場所を指定してください。
{
"mcpServers": {
"jvm-diagnostics": {
"command": "java",
"args": [
"-jar",
"~/Downloads/jvm-diagnostics-mcp.jar"
]
}
}
}
VS Code Insiders からサーバーを使用する場合は、次の手順で設定します。
- GitHub Copilot をインストールします
- コマンドパレットから
MCP: Add Server...を実行して、この MCP サーバーをインストールします - チャットウィンドウ下部の矢印をクリックし、GitHub Copilot が
Agentモードで実行されるように設定します - チャットウィンドウの上部に、ツールとして設定された
jvm-diagnostics-mcpサーバーが表示されます
Docker を使ってサーバーをインストール、設定する
Claude Desktop からサーバーを使用するには、claude_desktop_config.json ファイルにサーバーを追加します。JAVA_HOME 環境変数には、Java のインストール先を設定してください。
{
"mcpServers": {
"jvm-diagnostics": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"JAVA_HOME",
"ghcr.io/brunoborges/jvm-diagnostics-mcp:latest"
],
"env": {
"JAVA_HOME": "/path/to/java/home"
}
}
}
}
VS Code Insiders からサーバーを使用する場合は、次の手順で設定します。
- GitHub Copilot をインストールします
- コマンドパレットから
MCP: Add Server...を実行して、この MCP サーバーをインストールします - チャットウィンドウ下部の矢印をクリックし、GitHub Copilot が
Agentモードで実行されるように設定します - チャットウィンドウの上部に、ツールとして設定された
jvm-diagnostics-mcpサーバーが表示されます
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。