# mcp-mat

Гоняет отчёты Eclipse MAT по дампу кучи Java и отдаёт результаты прямо в чат. Пригодится, когда приложение падает по памяти, а разбираться в GUI MAT не хочется.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 26
- Автор: codelipenghui
- Лицензия: Apache-2.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/codelipenghui/mcp-mat
- Обновлён: 2026-03-19
- HTML: https://affpapa.org/nevibecode/mcp/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`.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `MAT_HOME`, `JAVA_PATH`, `MAT_XMX_MB` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
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

**Командой платформы**
```bash
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
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-mat": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-mat"
            ],
            "env": {
                "MAT_HOME": "<MAT_HOME>",
                "JAVA_PATH": "<JAVA_PATH>",
                "MAT_XMX_MB": "<MAT_XMX_MB>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "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 CLI

**Командой платформы**
```bash
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
```
Вместо <…> подставьте свои значения

## Когда брать
- разобрать дамп кучи 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

## Похожие
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115
- [Oh My Posh Validator](https://affpapa.org/nevibecode/mcp/oh-my-posh-validator.md) — MCP-сервер · ★ 23643
- [Keploy](https://affpapa.org/nevibecode/mcp/keploy.md) — MCP-сервер · ★ 18727
- [Coder](https://affpapa.org/nevibecode/mcp/coder.md) — MCP-сервер · ★ 17160
- [mcp](https://affpapa.org/nevibecode/mcp/kubeshark-mcp.md) — MCP-сервер · ★ 12109

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
