Mcp Mat

io.github.codelipenghui由 GitHub 帳號 codelipenghui 發布v0.1.0更新於 Oct 24, 2026

Headless Eclipse MAT MCP server for Java heap dump analysis

已驗證STDIO僅桌面開發者工具資料與分析

概覽

AI 產生的概覽

無介面的 Eclipse MAT MCP 伺服器,讓助理分析 Java 堆積傾印:執行報告、OQL 查詢與內建 MAT 指令。

可以做什麼
檢查 MAT 與 Java 執行環境是否可用,以及堆積傾印是否已有索引產物,並取得 OQL 解析指引與支援的寫法。執行預先定義的 MAT 報告,例如洩漏嫌疑與系統概觀。執行 OQL 查詢並直接回傳結果。執行內建 MAT 分析指令,涵蓋支配樹、GC 根路徑、直方圖、洩漏偵測、執行緒、集合、參照、終結器、保留集、最大佔用物件、字串與堆積概觀。匯出堆積傾印,並針對基準傾印執行比較報告。
適用情境
適合從堆積傾印排查 Java 記憶體問題:尋找洩漏、支配樹、GC 根路徑、執行緒與集合分析,或比較兩份傾印。對象是已安裝 Eclipse MAT 並持有 .hprof 檔案的開發者與維運人員。
執行需求
以本機 Node.js 程序執行(npm 套件 mcp-mat,或從原始碼建置)。需要 Java 執行環境(JAVA_PATH,預設 java)與 Eclipse MAT 安裝(MAT_HOME 或 MAT_LAUNCHER)。選用設定包括 MAT_XMX_MB(預設 4096)、MAT_TIMEOUT_SEC(預設 1800)以及 /tmp 下的工作目錄。僅限桌面端。
安裝前請注意
分析會以本機 Java 程序執行 MAT,預設堆積較大(MAT_XMX_MB 為 4096)、預設逾時較長(MAT_TIMEOUT_SEC 為 1800),大型傾印可能佔用大量記憶體與時間。堆積傾印含敏感應用程式資料,MAT 預設會將設定、工作區與除錯日誌寫入本機目錄;MAT_PRIVACY_MODE 與日誌目錄設定可控制保留內容。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Mcp Mat,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

mcp-mat

Headless MCP server for Eclipse MAT using direct java -jar org.eclipse.equinox.launcher_*.jar execution.

Features

  • mat_healthcheck — Validate MAT launcher and Java runtime availability
  • mat_parse_report — Run predefined MAT reports (leak suspects, system overview, etc.)
  • mat_oql_query — Execute OQL queries and return inline results
  • mat_run_command — Execute 56 built-in MAT analysis commands (histogram, dominator_tree, path2gc, thread_overview, etc.)
  • mat_index_status — Check whether MAT index artifacts exist for a heap dump
  • mat_oql_spec — Return OQL parser guidance and supported patterns

Supported Commands (mat_run_command)

Dominator tree analysis

dominator_tree, show_dominator_tree, immediate_dominators, big_drops_in_dominator_tree

Path to GC roots

path2gc, merge_shortest_paths, gc_roots

Histogram & object listing

histogram, delta_histogram*, list_objects, group_by_value, duplicate_classes

Leak detection

leakhunter, leakhunter2, find_leaks, find_leaks2, reference_leak

Thread analysis

thread_overview, thread_details, thread_stack

Collection analysis

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

Reference analysis

references_statistics, weak_references_statistics, soft_references_statistics, phantom_references_statistics, finalizer_references_statistics

Finalizer analysis

finalizer_overview, finalizer_thread, finalizer_queue, finalizer_in_processing, finalizer_thread_locals

Retained set

show_retained_set, customized_retained_set

Component & top consumers

component_report, component_report_top, top_consumers, top_consumers_html, pie_biggest_objects

String & memory waste

find_strings, waste_in_char_arrays

Heap info & misc

heap_dump_overview, unreachable_objects, system_properties, class_references, comparison_report*

Eclipse/OSGi specific

bundle_registry, leaking_bundles

Export

export_hprof

* Requires a baseline heap dump (second .hprof file).

OQL mode notes

  • This server normalizes client OQL input and wraps it for MAT parse-app command mode.
  • You can send OQL with or without outer quotes.
  • For class ranking and top consumers, prefer mat_parse_report with org.eclipse.mat.api:overview and parse Class_Histogram*.txt.
  • For object inspection, use simple field-level OQL patterns (INSTANCEOF, OBJECTS 0x...).

Environment

All environment variables are optional:

  • MAT_HOME
  • MAT_LAUNCHER
  • JAVA_PATH (default java)
  • MAT_XMX_MB (default 4096)
  • MAT_TIMEOUT_SEC (default 1800)
  • MAT_CONFIG_DIR (default /tmp/mat-config)
  • MAT_DATA_DIR (default /tmp/mat-workspace)
  • MAT_DEBUG (default false)
  • MAT_DEBUG_LOG_DIR (default /tmp/mcp-mat-logs)
  • MAT_PRIVACY_MODE (default false)
  • MAT_OQL_MAX_BYTES (default 16384)
  • MAT_RESULT_PREVIEW_LINES (default 20)
  • MAT_STDIO_TAIL_CHARS (default 4000)

Run

bash
npm installnpm run buildMAT_HOME=/path/to/mat node dist/src/server.js

Test

bash
npm test

Install via npx

No build step required. Install directly from npm:

Claude Code

Add to ~/.claude/settings.json or project .claude/settings.json:

json
{  "mcpServers": {    "mat": {      "command": "npx",      "args": ["-y", "mcp-mat"],      "env": {        "MAT_HOME": "/Applications/MemoryAnalyzer.app/Contents/Eclipse"      }    }  }}

Codex

bash
codex mcp add \  --env MAT_HOME=/Applications/MemoryAnalyzer.app/Contents/Eclipse \  mat \  npx -y mcp-mat

Install in Claude Code (from source)

Add the MCP server to Claude Code settings (~/.claude/settings.json or project .claude/settings.json):

json
{  "mcpServers": {    "mat": {      "command": "node",      "args": ["/path/to/mcp-mat/dist/src/server.js"],      "env": {        "MAT_HOME": "/Applications/MemoryAnalyzer.app/Contents/Eclipse"      }    }  }}

Install in Codex (from source)

Build first:

bash
cd /path/to/mcp-matnpm installnpm run build

Add MCP server to Codex:

bash
codex mcp add \  --env MAT_HOME=/Applications/MemoryAnalyzer.app/Contents/Eclipse \  mat \  node /path/to/mcp-mat/dist/src/server.js

Verify:

bash
codex mcp listcodex mcp get mat --json

If you need to update the entry:

bash
codex mcp remove mat# then run codex mcp add ... again

Equivalent ~/.codex/config.toml entry:

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"

來源:README.md,提交 681cc67

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分