{
  "markdown": "# mcp-mat\n\nHeadless MCP server for Eclipse MAT using direct `java -jar org.eclipse.equinox.launcher_*.jar` execution.\n\n## Features\n\n- `mat_healthcheck` — Validate MAT launcher and Java runtime availability\n- `mat_parse_report` — Run predefined MAT reports (leak suspects, system overview, etc.)\n- `mat_oql_query` — Execute OQL queries and return inline results\n- `mat_run_command` — Execute 56 built-in MAT analysis commands (histogram, dominator_tree, path2gc, thread_overview, etc.)\n- `mat_index_status` — Check whether MAT index artifacts exist for a heap dump\n- `mat_oql_spec` — Return OQL parser guidance and supported patterns\n\n## Supported Commands (`mat_run_command`)\n\n### Dominator tree analysis\n`dominator_tree`, `show_dominator_tree`, `immediate_dominators`, `big_drops_in_dominator_tree`\n\n### Path to GC roots\n`path2gc`, `merge_shortest_paths`, `gc_roots`\n\n### Histogram & object listing\n`histogram`, `delta_histogram`*, `list_objects`, `group_by_value`, `duplicate_classes`\n\n### Leak detection\n`leakhunter`, `leakhunter2`*, `find_leaks`, `find_leaks2`*, `reference_leak`\n\n### Thread analysis\n`thread_overview`, `thread_details`, `thread_stack`\n\n### Collection analysis\n`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`\n\n### Reference analysis\n`references_statistics`, `weak_references_statistics`, `soft_references_statistics`, `phantom_references_statistics`, `finalizer_references_statistics`\n\n### Finalizer analysis\n`finalizer_overview`, `finalizer_thread`, `finalizer_queue`, `finalizer_in_processing`, `finalizer_thread_locals`\n\n### Retained set\n`show_retained_set`, `customized_retained_set`\n\n### Component & top consumers\n`component_report`, `component_report_top`, `top_consumers`, `top_consumers_html`, `pie_biggest_objects`\n\n### String & memory waste\n`find_strings`, `waste_in_char_arrays`\n\n### Heap info & misc\n`heap_dump_overview`, `unreachable_objects`, `system_properties`, `class_references`, `comparison_report`*\n\n### Eclipse/OSGi specific\n`bundle_registry`, `leaking_bundles`\n\n### Export\n`export_hprof`\n\n\\* Requires a `baseline` heap dump (second `.hprof` file).\n\n## OQL mode notes\n\n- This server normalizes client OQL input and wraps it for MAT parse-app command mode.\n- You can send OQL with or without outer quotes.\n- For class ranking and top consumers, prefer `mat_parse_report` with `org.eclipse.mat.api:overview` and parse `Class_Histogram*.txt`.\n- For object inspection, use simple field-level OQL patterns (`INSTANCEOF`, `OBJECTS 0x...`).\n\n## Environment\n\nAll environment variables are optional:\n\n- `MAT_HOME`\n- `MAT_LAUNCHER`\n- `JAVA_PATH` (default `java`)\n- `MAT_XMX_MB` (default `4096`)\n- `MAT_TIMEOUT_SEC` (default `1800`)\n- `MAT_CONFIG_DIR` (default `/tmp/mat-config`)\n- `MAT_DATA_DIR` (default `/tmp/mat-workspace`)\n- `MAT_DEBUG` (default `false`)\n- `MAT_DEBUG_LOG_DIR` (default `/tmp/mcp-mat-logs`)\n- `MAT_PRIVACY_MODE` (default `false`)\n- `MAT_OQL_MAX_BYTES` (default `16384`)\n- `MAT_RESULT_PREVIEW_LINES` (default `20`)\n- `MAT_STDIO_TAIL_CHARS` (default `4000`)\n\n## Run\n\n```bash\nnpm install\nnpm run build\nMAT_HOME=/path/to/mat node dist/src/server.js\n```\n\n## Test\n\n```bash\nnpm test\n```\n\n## Install via npx\n\nNo build step required. Install directly from npm:\n\n### Claude Code\n\nAdd to `~/.claude/settings.json` or project `.claude/settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"mat\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-mat\"],\n      \"env\": {\n        \"MAT_HOME\": \"/Applications/MemoryAnalyzer.app/Contents/Eclipse\"\n      }\n    }\n  }\n}\n```\n\n### Codex\n\n```bash\ncodex mcp add \\\n  --env MAT_HOME=/Applications/MemoryAnalyzer.app/Contents/Eclipse \\\n  mat \\\n  npx -y mcp-mat\n```\n\n## Install in Claude Code (from source)\n\nAdd the MCP server to Claude Code settings (`~/.claude/settings.json` or project `.claude/settings.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"mat\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/mcp-mat/dist/src/server.js\"],\n      \"env\": {\n        \"MAT_HOME\": \"/Applications/MemoryAnalyzer.app/Contents/Eclipse\"\n      }\n    }\n  }\n}\n```\n\n## Install in Codex (from source)\n\nBuild first:\n\n```bash\ncd /path/to/mcp-mat\nnpm install\nnpm run build\n```\n\nAdd MCP server to Codex:\n\n```bash\ncodex mcp add \\\n  --env MAT_HOME=/Applications/MemoryAnalyzer.app/Contents/Eclipse \\\n  mat \\\n  node /path/to/mcp-mat/dist/src/server.js\n```\n\nVerify:\n\n```bash\ncodex mcp list\ncodex mcp get mat --json\n```\n\nIf you need to update the entry:\n\n```bash\ncodex mcp remove mat\n# then run codex mcp add ... again\n```\n\nEquivalent `~/.codex/config.toml` entry:\n\n```toml\n[mcp_servers.mat]\ncommand = \"node\"\nargs = [\"/path/to/mcp-mat/dist/src/server.js\"]\n\n[mcp_servers.mat.env]\nMAT_HOME = \"/Applications/MemoryAnalyzer.app/Contents/Eclipse\"\n```\n",
  "bytes": 4864,
  "sha": "c219c4706b0bc606adda08bae88317fecba6b6c50e960350bc1a5bb10a933952",
  "repo_slug": "codelipenghui/mcp-mat",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_codelipenghui_mcp_mat_5a3036fa/readme"
}