mcpField
J
JVM MCP Server

JVM MCP Server

ローカル
github.com/xzq-xu開発ツール9130 週間前に更新

JVM MCP Server について

JVM MCP Server は、jps、jstack、jmap などの JDK 標準ツールを用いた軽量な JVM 監視・診断 MCP サーバーです。Arthas などのサードパーティ製ツールを使わずに、AI エージェントから Java アプリケーションを分析したい開発者を対象としており、SSH 経由のリモート監視にも対応しています。

主な機能

  1. 01JDK 標準ツールを使用し、サードパーティ依存なし
  2. 02Java プロセスの一覧と JVM・メモリ・スレッド情報の取得
  3. 03スタックトレースとクラス構造の取得
  4. 04クラスのデコンパイルとメソッドの検索・監視
  5. 05ローカルおよび SSH によるリモート監視

活用シーン

  1. 01AI エージェントによる稼働中 Java アプリケーションのスレッド問題調査
  2. 02JVM のメモリ使用量とクラスロード統計の確認
  3. 03リモートサーバー上の Java プロセスの監視

MCP 対応

本プロジェクトは MCP サーバーであり、list_java_processes、get_stack_trace、decompile_class などの JVM 監視・診断ツールを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

JVM MCP Server

Python バージョン JDK バージョン ライセンス

英語 | 中国語

MseeP.ai セキュリティ評価バッジ

ネイティブ JDK ツールを基盤とする、軽量な JVM 監視・診断用 MCP(Multi-Agent Communication Protocol)サーバーの実装です。Arthas のようなサードパーティ製ツールを必要とせず、AI エージェントに Java アプリケーションを監視・分析する強力な機能を提供します。

JVM Server MCP サーバー

ホステッドデプロイ

Fronteir AIでホステッドデプロイを利用できます。

特長

  • 依存関係ゼロ:ネイティブ JDK ツール(jps、jstack、jmap など)のみを使用します
  • 軽量:エージェントベースのソリューションと比較して、リソース消費を最小限に抑えます
  • 高い互換性:すべての Java バージョンおよびプラットフォームで動作します
  • 非侵襲的:対象アプリケーションを変更する必要はありません
  • 安全:JDK 認定のツールとコマンドのみを使用します
  • リモート監視:SSH 経由でローカルとリモートの両方の JVM を監視できます

主な機能

基本的な監視
  • Java プロセスの一覧表示と識別
  • JVM の基本情報の取得
  • メモリ使用量の監視
  • スレッド情報とスタックトレースの分析
  • クラス読み込み統計
  • クラス構造の詳細情報
高度な機能
  • メソッド呼び出しパスの分析
  • クラスの逆コンパイル
  • メソッドの検索と調査
  • メソッド呼び出しの監視
  • ロガーレベルの管理
  • システムリソースダッシュボード

システム要件

  • Python 3.6+
  • JDK 8+
  • Linux/Unix/Windows OS
  • SSH アクセス(リモート監視の場合)

インストール

uv を使用する(推奨)
# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh  # Linux/macOS
# or
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"  # Windows

# Install the package
uv pip install jvm-mcp-server
pip を使用する
pip install jvm-mcp-server
ソースからインストール
# Clone the repository
git clone https://github.com/your-repo/jvm-mcp-server.git
cd jvm-mcp-server

# Using uv (recommended)
uv venv  # Create virtual environment
uv sync  # Install dependencies

# Or install in development mode
uv pip install -e .

クイックスタート

サーバーの起動
uv を使用する(推奨)
# Local mode
uv run jvm-mcp-server

# Using environment variables file for remote mode
uv run --env-file .env jvm-mcp-server

# In specific directory
uv --directory /path/to/project run --env-file .env jvm-mcp-server
uvx を使用する
# Local mode
uvx run jvm-mcp-server

# With environment variables
uvx run --env-file .env jvm-mcp-server
Python を直接使用する
from jvm_mcp_server import JvmMcpServer

# Local mode
server = JvmMcpServer()
server.run()

# Remote mode (via environment variables)
# Set SSH_HOST, SSH_PORT, SSH_USER, SSH_PASSWORD or SSH_KEY
import os
os.environ['SSH_HOST'] = 'user@remote-host'
os.environ['SSH_PORT'] = '22'
server = JvmMcpServer()
server.run()
MCP 設定で使用する
{
  "mcpServers": {
    "jvm-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/jvm-mcp-server",
        "run",
        "--env-file",
        "/path/to/jvm-mcp-server/.env",
        "jvm-mcp-server"
      ]
    }
  }
}

利用可能なツール

JVM-MCP-Server は、JVM の監視と診断に必要な包括的なツールを提供します。

  • list_java_processes:すべての Java プロセスを一覧表示します
  • get_thread_info:指定したプロセスのスレッド情報を取得します
  • get_jvm_info:JVM の基本情報を取得します
  • get_memory_info:メモリ使用量の情報を取得します
  • get_stack_trace:スレッドのスタックトレース情報を取得します
  • get_class_info:構造を含むクラスの詳細情報を取得します
  • get_stack_trace_by_method:メソッド呼び出しパスを取得します
  • decompile_class:クラスのソースコードを逆コンパイルします
  • search_method:クラス内のメソッドを検索します
  • watch_method:メソッド呼び出しを監視します
  • get_logger_info:ロガー情報を取得します
  • set_logger_level:ロガーレベルを設定します
  • get_dashboard:システムリソースダッシュボードを取得します
  • get_jcmd_output:JDK の jcmd コマンドを実行します
  • get_jstat_output:JDK の jstat コマンドを実行します

各ツールの詳しいドキュメントについては、利用可能なツールを参照してください。

アーキテクチャ

JVM-MCP-Server は、モジュール式のアーキテクチャに基づいて構築されています。

  1. コマンドレイヤー:JDK のネイティブコマンドをラップします
  2. 実行レイヤー:ローカルおよびリモートでのコマンド実行を処理します
  3. フォーマッターレイヤー:コマンド出力を処理して整形します
  4. MCP インターフェース:FastMCP プロトコルを通じて機能を公開します
主なコンポーネント
  • BaseCommand:すべてのコマンドの抽象基底クラス
  • CommandExecutor:コマンド実行のインターフェース(ローカルおよびリモート)
  • OutputFormatter:コマンド出力を整形するインターフェース
  • JvmMcpServer:すべてのツールを登録するメインサーバークラス

開発状況

プロジェクトは現在活発に開発されています。現在の進捗については、Native_TODO.md をご覧ください。

完了済み
  • コアアーキテクチャとコマンドフレームワーク
  • 基本コマンドの実装(jps、jstack、jmap、jinfo、jcmd、jstat)
  • クラス情報取得システム
  • MCP ツールのパラメーター型の互換性修正
開発中
  • キャッシュ機構
  • メソッドのトレース
  • パフォーマンス監視
  • エラー処理の改善

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

  1. リポジトリをフォークします
  2. 機能ブランチを作成します(git checkout -b feature/amazing-feature)
  3. 変更をコミットします(git commit -m 'Add some amazing feature')
  4. ブランチにプッシュします(git push origin feature/amazing-feature)
  5. プルリクエストを作成します

ライセンス

このプロジェクトは MIT ライセンスの下で公開されています。詳細については、LICENSE ファイルをご覧ください。

NP|## 謝辞 #MH| #TK|- JDK ツールのドキュメント #WY|- FastMCP プロトコル仕様 #JK|- 貢献者およびテスター #BP| #KG|## 権限要件 #YM| #KB|一部の JVM 診断コマンド(jstack、jmap、jinfo、jcmd など)では、対象の JVM プロセスにアタッチするために十分な権限が必要です。権限エラーが発生した場合は、次の解決策をお試しください。 #YB| #KB|### よくあるエラー #RR| #KB|- Permission denied:権限が不足しています #YZ|- Unable to open socket file:JVM プロセスに接続できません #KD|- No such process:プロセスが存在しないか、終了しています #MH| #KB|### 解決策 #BR| #KB|1. sudo で実行する(推奨):sudo uv run jvm-mcp-server #XZ|2. 対象の Java プロセスと同じユーザーで実行する:Java プロセスのユーザー ID を確認し、そのユーザーとして実行します #HM|3. JDK に実験的なアタッチ権限を追加する:JVM の起動引数に次を追加します

```

-XX:+AllowRedefinitionToAddDeleteMethods

```

#XQ|4. Docker の場合:コンテナに十分な権限があることを確認します(--privileged を指定するか、/proc をマウントします) #KB| #KB|注:list_java_processes は jps コマンドを使用するため、特別な権限は必要ありません。その他のコマンドでは、上記の解決策に従って設定が必要な場合があります。

  • JDK ツールのドキュメント
  • FastMCP プロトコル仕様
  • 貢献者およびテスター

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。