mcpField
M
mcp-mat

mcp-mat

ローカル
github.com/codelipenghui開発ツール2832 週間前に更新

mcp-mat について

mcp-mat は、Eclipse MAT をヘッドレスで動かす MCP サーバーで、java -jar で MAT のランチャーを直接実行して Java ヒープダンプを分析します。MAT の GUI を使わずに、AI アシスタントから Java のメモリ問題を調べたい開発者に向いています。

主な機能

  1. 01リーク疑いの分析など、定義済みの MAT レポートの実行
  2. 02OQL クエリによるオブジェクト検索と結果の返却
  3. 0356 種類の組み込み MAT 分析コマンド
  4. 04ヒープダンプのインデックスファイルの有無の確認
  5. 05OQL 構文のガイダンスと対応パターンの提供

活用シーン

  1. 01Java ヒープダンプのメモリリーク疑いを調査する
  2. 02ドミネーターツリーと GC ルートまでの経路を確認する
  3. 03スレッドの概要とスタックを確認する

MCP 対応

本プロジェクトは MCP サーバーであり、MAT のヘルスチェック、レポート実行、OQL クエリ、分析コマンドを MCP クライアント向けのツールとして公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"codelipenghui-mcp-mat": {
"command": "npx",
"args": [
"-y",
"mcp-mat"
],
"env": {
"MAT_HOME": "<MAT_HOME>",
"JAVA_PATH": "<JAVA_PATH>",
"MAT_XMX_MB": "<MAT_XMX_MB>"
}
}
}
}
起動コマンドnpx -y mcp-mat
設定が必要な環境変数
MAT_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-mat0.1.0

ツール

6

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
mat_homestringいいえ
java_pathstringいいえ

詳細

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_HOME
  • MAT_LAUNCHER
  • JAVA_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"

コメント

MCP は初めてですか?

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

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