mcp-mat — MCP-сервер для Claude Code: анализ heap dump
Гоняет отчёты Eclipse MAT по дампу кучи Java и отдаёт результаты прямо в чат. Пригодится, когда приложение падает по памяти, а разбираться в GUI MAT не хочется.
claude mcp add --env MAT_HOME=<MAT_HOME> --env JAVA_PATH=<JAVA_PATH> --env MAT_XMX_MB=<MAT_XMX_MB> --transport stdio mcp-mat -- npx -y mcp-matЧто делает mcp-mat
Сервер запускает Eclipse MAT в headless-режиме через java -jar org.eclipse.equinox.launcher_*.jar, без графики. Внутри шесть инструментов: mat_healthcheck проверяет, что лаунчер MAT и Java на месте, mat_parse_report прогоняет готовые отчёты вроде leak suspects или system overview, mat_oql_query выполняет запросы OQL, mat_run_command — одна из 56 встроенных команд анализа, mat_index_status смотрит, есть ли уже индекс для дампа, а mat_oql_spec подсказывает синтаксис OQL.
Среди команд mat_run_command есть histogram, dominator_tree, path2gc, thread_overview, leakhunter, отчёты по коллекциям и ссылкам, top_consumers и экспорт export_hprof. Часть из них (delta_histogram, leakhunter2, find_leaks2, comparison_report) работает только при наличии второго файла .hprof — baseline для сравнения.
Перед запуском нужен сам Eclipse MAT: путь к его каталогу указывается в MAT_HOME, остальные переменные окружения необязательны. JAVA_PATH по умолчанию равен java, MAT_XMX_MB — 4096, таймаут — 1800 секунд. Без работающего лаунчера MAT сервер не поднимется, поэтому первым делом стоит вызвать mat_healthcheck.
Какие задачи решает
- разобрать дамп кучи Java после падения по нехватке памяти
- найти утечку через leak suspects и path to GC roots
- сравнить два дампа и увидеть, что выросло в памяти
- посмотреть histogram и dominator tree без запуска GUI MAT
- выполнить OQL-запрос к объектам прямо из чата
Примеры запросов агенту
- Проверь через mcp-mat, есть ли индекс для дампа
heap.hprof, и если нет — построй его - Прогони histogram по
heap.hprofи покажи топ классов по числу экземпляров - Найди path to GC roots для
com.example.Cacheчерез mcp-mat
Как установить mcp-mat
Командой платформы
claude mcp add --env MAT_HOME=<MAT_HOME> --env JAVA_PATH=<JAVA_PATH> --env MAT_XMX_MB=<MAT_XMX_MB> --transport stdio mcp-mat -- npx -y mcp-matВместо <…> подставьте свои значения
Командой платформы
codex mcp add mcp-mat --env MAT_HOME=<MAT_HOME> --env JAVA_PATH=<JAVA_PATH> --env MAT_XMX_MB=<MAT_XMX_MB> -- npx -y mcp-matВместо <…> подставьте свои значения
Файл настроек
{
"mcpServers": {
"mcp-mat": {
"command": "npx",
"args": [
"-y",
"mcp-mat"
],
"env": {
"MAT_HOME": "<MAT_HOME>",
"JAVA_PATH": "<JAVA_PATH>",
"MAT_XMX_MB": "<MAT_XMX_MB>"
}
}
}
}Вместо <…> подставьте свои значения
Файл настроек
{
"servers": {
"mcp-mat": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-mat"
],
"env": {
"MAT_HOME": "<MAT_HOME>",
"JAVA_PATH": "<JAVA_PATH>",
"MAT_XMX_MB": "<MAT_XMX_MB>"
}
}
}
}Вместо <…> подставьте свои значения
Командой платформы
gemini mcp add -e MAT_HOME=<MAT_HOME> -e JAVA_PATH=<JAVA_PATH> -e MAT_XMX_MB=<MAT_XMX_MB> mcp-mat npx -y mcp-matВместо <…> подставьте свои значения
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о mcp-mat
Как установить mcp-mat в Claude Code?
Одной командой: claude mcp add mcp-mat -- npx -y mcp-mat. Если нужно сразу задать окружение, добавьте переменные: claude mcp add --env MAT_HOME=<MAT_HOME> --env JAVA_PATH=<JAVA_PATH> --env MAT_XMX_MB=<MAT_XMX_MB> --transport stdio mcp-mat -- npx -y mcp-mat.
Что делает mcp-mat?
Запускает Eclipse MAT без графического интерфейса и даёт агенту инструменты для анализа дампа кучи: отчёты, OQL-запросы, histogram, dominator tree, поиск утечек и обзор потоков.
Какие команды требуют второй дамп?
delta_histogram, leakhunter2, find_leaks2 и comparison_report — им нужен baseline-файл .hprof для сравнения.