mcp-mat について
mcp-mat は、Eclipse MAT をヘッドレスで動かす MCP サーバーで、java -jar で MAT のランチャーを直接実行して Java ヒープダンプを分析します。MAT の GUI を使わずに、AI アシスタントから Java のメモリ問題を調べたい開発者に向いています。
主な機能
- 01リーク疑いの分析など、定義済みの MAT レポートの実行
- 02OQL クエリによるオブジェクト検索と結果の返却
- 0356 種類の組み込み MAT 分析コマンド
- 04ヒープダンプのインデックスファイルの有無の確認
- 05OQL 構文のガイダンスと対応パターンの提供
活用シーン
- 01Java ヒープダンプのメモリリーク疑いを調査する
- 02ドミネーターツリーと GC ルートまでの経路を確認する
- 03スレッドの概要とスタックを確認する
MCP 対応
本プロジェクトは MCP サーバーであり、MAT のヘルスチェック、レポート実行、OQL クエリ、分析コマンドを MCP クライアント向けのツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y mcp-matMAT_HOMEPath to Eclipse MAT installation directory (e.g., /Applications/MemoryAnalyzer.app/Contents/Eclipse)JAVA_PATHPath to Java executable (default: java)MAT_XMX_MBMaximum JVM heap size in MB for MAT (default: 4096)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| mat_home | string | いいえ | |
| java_path | string | いいえ |
詳細
mcp-mat
Eclipse MAT 向けのヘッドレス MCP サーバーです。java -jar org.eclipse.equinox.launcher_*.jar を直接実行して使用します。
機能
mat_healthcheck— MAT ランチャーと Java ランタイムの可用性を検証しますmat_parse_report— 定義済みの MAT レポート(リーク候補、システム概要など)を実行しますmat_oql_query— OQL クエリを実行し、結果をインラインで返しますmat_run_command— 56 個の組み込み MAT 分析コマンド(histogram、dominator_tree、path2gc、thread_overview など)を実行しますmat_index_status— ヒープダンプに対して MAT インデックス成果物が存在するかどうかを確認しますmat_oql_spec— OQL パーサーのガイダンスとサポートされるパターンを返します
サポートされるコマンド(mat_run_command)
ドミネータツリー分析
dominator_tree、show_dominator_tree、immediate_dominators、big_drops_in_dominator_tree
GC ルートへのパス
path2gc、merge_shortest_paths、gc_roots
ヒストグラムとオブジェクト一覧
histogram、delta_histogram*、list_objects、group_by_value、duplicate_classes
リーク検出
leakhunter、leakhunter2、find_leaks、find_leaks2、reference_leak
スレッド分析
thread_overview、thread_details、thread_stack
コレクション分析
collection_fill_ratio、collections_grouped_by_size、array_fill_ratio、arrays_grouped_by_size、hash_entries、map_collision_ratio、extract_list_values、hash_set_values、primitive_arrays_with_a_constant_value
参照分析
references_statistics、weak_references_statistics、soft_references_statistics、phantom_references_statistics、finalizer_references_statistics
ファイナライザー分析
finalizer_overview、finalizer_thread、finalizer_queue、finalizer_in_processing、finalizer_thread_locals
保持セット
show_retained_set、customized_retained_set
コンポーネントとトップコンシューマー
component_report、component_report_top、top_consumers、top_consumers_html、pie_biggest_objects
文字列とメモリの浪費
find_strings、waste_in_char_arrays
ヒープ情報とその他
heap_dump_overview、unreachable_objects、system_properties、class_references、comparison_report*
Eclipse/OSGi 固有
bundle_registry、leaking_bundles
エクスポート
export_hprof
* baseline ヒープダンプ(2 つ目の .hprof ファイル)が必要です。
OQL モードの注意点
- このサーバーはクライアントの OQL 入力を正規化し、MAT の parse-app コマンドモード用にラップします。
- OQL は外側の引用符の有無にかかわらず送信できます。
- クラスランキングとトップコンシューマーについては、
org.eclipse.mat.api:overviewを指定したmat_parse_reportを使用し、Class_Histogram*.txtを解析することを推奨します。 - オブジェクトの検査には、シンプルなフィールドレベルの OQL パターン(
INSTANCEOF、OBJECTS 0x...)を使用してください。
環境
すべての環境変数は任意です:
MAT_HOMEMAT_LAUNCHERJAVA_PATH(デフォルトjava)MAT_XMX_MB(デフォルト4096)MAT_TIMEOUT_SEC(デフォルト1800)MAT_CONFIG_DIR(デフォルト/tmp/mat-config)MAT_DATA_DIR(デフォルト/tmp/mat-workspace)MAT_DEBUG(デフォルトfalse)MAT_DEBUG_LOG_DIR(デフォルト/tmp/mcp-mat-logs)MAT_PRIVACY_MODE(デフォルトfalse)MAT_OQL_MAX_BYTES(デフォルト16384)MAT_RESULT_PREVIEW_LINES(デフォルト20)MAT_STDIO_TAIL_CHARS(デフォルト4000)
実行
npm install
npm run build
MAT_HOME=/path/to/mat node dist/src/server.js
テスト
npm test
npx でのインストール
ビルド手順は不要です。npm から直接インストールできます:
Claude Code
~/.claude/settings.json またはプロジェクトの .claude/settings.json に追加します:
{
"mcpServers": {
"mat": {
"command": "npx",
"args": ["-y", "mcp-mat"],
"env": {
"MAT_HOME": "/Applications/MemoryAnalyzer.app/Contents/Eclipse"
}
}
}
}
Codex
codex mcp add \
--env MAT_HOME=/Applications/MemoryAnalyzer.app/Contents/Eclipse \
mat \
npx -y mcp-mat
Claude Code へのインストール(ソースから)
Claude Code の設定(~/.claude/settings.json またはプロジェクトの .claude/settings.json)に MCP サーバーを追加します:
{
"mcpServers": {
"mat": {
"command": "node",
"args": ["/path/to/mcp-mat/dist/src/server.js"],
"env": {
"MAT_HOME": "/Applications/MemoryAnalyzer.app/Contents/Eclipse"
}
}
}
}
Codex へのインストール(ソースから)
まずビルドします:
cd /path/to/mcp-mat
npm install
npm run build
Codex に MCP サーバーを追加します:
codex mcp add \
--env MAT_HOME=/Applications/MemoryAnalyzer.app/Contents/Eclipse \
mat \
node /path/to/mcp-mat/dist/src/server.js
確認します:
codex mcp list
codex mcp get mat --json
エントリを更新する必要がある場合:
codex mcp remove mat
# then run codex mcp add ... again
同等の ~/.codex/config.toml エントリ:
[mcp_servers.mat]
command = "node"
args = ["/path/to/mcp-mat/dist/src/server.js"]
[mcp_servers.mat.env]
MAT_HOME = "/Applications/MemoryAnalyzer.app/Contents/Eclipse"
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。