Jolokia MCP Server について
Jolokia MCP Server は、Jolokia の JMX-HTTP ブリッジ経由で Java アプリケーションを管理する MCP サーバーです。JVM の MBean を調査・操作する開発者や運用担当者向けで、スタンドアロンと JVM Agent の構成を選べます。
主な機能
- 01JVM 内の MBean 一覧表示
- 02MBean の操作と属性の確認
- 03属性値の読み取りと書き込み
- 04MBean 操作の実行
活用シーン
- 01Java アプリケーションの MBean 調査
- 02実行時属性の読み取りや変更
- 03JVM 管理操作の呼び出し
MCP 対応
MCP クライアントに JVM の MBean を照会・操作するツールを提供します。Jolokia に接続するスタンドアロンサーバー、またはアプリケーション自身が MCP HTTP エンドポイントを提供する JVM Agent として動作します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Jolokia MCP サーバー
Java アプリケーション向けの JMX-HTTP ブリッジである Jolokia の MCP サーバーです。この MCP サーバーにより、LLM は Jolokia 経由で JMX API を使用して Java アプリケーションを管理できます。
https://github.com/user-attachments/assets/624ec93b-da69-49b5-be8f-02f2ff14bd2e
ディストリビューション
バージョン 0.4 以降、Jolokia MCP Server では、さまざまなデプロイのニーズに応じて、次の 2 種類のディストリビューションを提供しています。
スタンドアロン MCP サーバー
スタンドアロン MCP サーバーは、標準的な MCP サーバーとして機能します。stdio または HTTP を使用して MCP ホストに登録され、MCP サーバー自体が、Jolokia エージェントをアタッチした Java アプリケーションと、HTTP 経由の JMX で通信します。
スタンドアロン MCP サーバーを使用するには、まず Java アプリケーションに Jolokia エージェントをアタッチする必要があります。詳しい手順については、Jolokia のマニュアルを参照してください。 https://jolokia.org/reference/html/manual/agents.html
JVM エージェント MCP サーバー
一方、JVM エージェント MCP サーバーは、標準の Jolokia JVM エージェントを簡単に置き換えられる「ドロップイン」代替として提供します。
このディストリビューションでは、標準の Jolokia JVM エージェントの代わりに、MCP サーバーの JVM エージェントをアプリケーションにアタッチするだけです。すると、JVM エージェント MCP サーバーが MCP プロトコル用の HTTP ポートを直接開き、Java アプリケーション自体を MCP サーバーとして機能させます。
機能
この MCP サーバーは起動時に単一の JVM に接続し、接続した JVM に対して次の機能を提供します。
- 接続した JVM の MBean を一覧表示する
- MBean の操作を一覧表示する
- MBean の属性を一覧表示する
- MBean の属性を読み書きする
- MBean の操作を実行する
ツール
この MCP サーバーは 6 つのツールを提供します。
- listMBeans
- JVM で利用可能な MBean を一覧表示する
- 出力(
List<String>):JVM 内のすべての MBean オブジェクト名の一覧
- listMBeanOperations
- 指定した MBean で利用可能な操作を一覧表示する
- 入力:
mbean(String):MBean 名
- 出力(
String):指定した MBean で利用可能なすべての操作の定義を JSON 形式で表したもの
- listMBeanAttributes
- 指定した MBean で利用可能な属性を一覧表示する
- 入力:
mbean(String):MBean 名
- 出力(
String):指定した MBean で利用可能なすべての属性の定義を JSON 形式で表したもの
- readMBeanAttribute
- 指定した MBean の属性を読み取る
- 入力:
mbean(String):MBean 名attribute(String):属性名
- 出力(
String):指定した属性の値を文字列で表したもの、または "null"
- writeMBeanAttribute
- 指定した MBean の属性値を設定する
- 入力:
mbean(String):MBean 名attribute(String):属性名value(Object):属性値
- 出力(
String):指定した属性の以前の値を文字列で表したもの、または "null"
- executeMBeanOperation
- 指定した MBean の操作を実行する
- 入力:
mbean(String):MBean 名operation(String):操作名args(Object[]):引数
- 出力(
String):操作の戻り値を文字列で表したもの、または "null"
Jolokia のバージョン互換性
以下の表に、jolokia-mcp-server の各リリースと互換性のある Jolokia のバージョンを示します。
| jolokia-mcp-server | Jolokia |
|---|---|
| 0.6.x | 2.6.1 – 2.6.3 |
| 0.5.x | 2.4.3 – 2.6.0 |
| 0.4.x | 2.2.9 – 2.4.3 |
| 0.3.x | 2.2.8 – 2.2.9 |
| 0.2.x | 2.2.8 |
| 0.1.x | 2.2.8 |
インストール
スタンドアロン
MCP サーバーのランナー jar をダウンロードします。
Jolokia MCP サーバーを MCP ホストにインストールするには、MCP の設定に以下の項目を追加します。
{
"mcpServers": {
"jolokia": {
"command": "java",
"args": [
"-jar",
"<path-to-the-runner-jar>/jolokia-mcp-0.6.1-runner.jar"
]
}
}
}
または、JBang を使用する場合は(この方法では jar のダウンロードは不要です)。
{
"mcpServers": {
"jolokia": {
"command": "jbang",
"args": [
"org.jolokia.mcp:jolokia-mcp-server:0.6.1:runner"
]
}
}
}
JVM エージェント
MCP サーバーの javaagent jar をダウンロードします。
次に、-javaagent オプションを指定して Java アプリケーションを実行します。
java -javaagent:jolokia-mcp-agent-jvm-0.6.1-javaagent.jar -jar your-app.jar
これにより、MCP HTTP トランスポートが http://localhost:8779/mcp で起動します。
Jolokia MCP サーバーを MCP ホストに登録するには、MCP の設定に以下の項目を追加します。
{
"mcpServers": {
"jolokia": {
"httpUrl": "http://localhost:8779/mcp"
}
}
}
実行
java -jar で実行します。
java -jar jolokia-mcp-server-0.6.1-runner.jar [Jolokia URL]
JBang を使用する場合は、Maven GAV(org.jolokia.mcp:jolokia-mcp-server:0.6.1:runner)を指定して直接実行できます。
jbang org.jolokia.mcp:jolokia-mcp-server:0.6.1:runner
HTTP トランスポート
この MCP サーバーはデフォルトで stdio トランスポートを使用します。HTTP トランスポートに切り替えるには、--http オプションを使用します。
java -jar jolokia-mcp-server-0.6.1-runner.jar --http
HTTP トランスポートのエンドポイントは、デフォルトで http://localhost:8080/mcp に起動します。
設定オプション
| パラメーター/オプション | デフォルト | 説明 |
|---|---|---|
| 位置パラメーター | http://localhost:8778/jolokia | MCP サーバーが接続する Jolokia エンドポイントの URL |
--http | false (stdio) | HTTP トランスポートを有効にします |
--sse | false (stdio) | 非推奨です。--http を使用してください |
--port=<number> | 8080 | HTTP エンドポイントのポートです。-Dquarkus.http.port=<number> と同等です。このオプションを設定すると、HTTP が常に有効になります |
--method=<GET|POST> | Jolokia リクエストに使用する優先 HTTP メソッド(GET または POST)です。-Djolokia.mcp.preferred-http-method=<method> と同等です | |
-D*=* | システムプロパティ |
MCP サーバーに関連するシステムプロパティは次のとおりです。
| システムプロパティ | デフォルト | 説明 |
|---|---|---|
quarkus.http.port | 8080 | (HTTP)HTTP エンドポイントのポートです |
jolokia.mcp.url | http://localhost:8778/jolokia | 位置パラメーターと同等です |
jolokia.mcp.preferred-http-method | 未設定 | Jolokia リクエストに使用する優先 HTTP メソッド(GET または POST)です |
ビルド
mvn clean install
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。