mcp-mat
使用说明
- 项目简介
- mcp-mat 是一个可运行的 MCP 服务器实现,核心功能是将 Eclipse MAT 的分析能力以 MCP 服务的形式暴露给 LLM 客户端,通过 JSON-RPC 进行资源读取、工具调用以及提示模板的获取等操作。
- 主要功能点
- 提供材料资源与查询能力:能够读取和管理 MAT 的堆 dump、查询结果及生成的报告 artifacts。
- 注册与执行工具:通过 MCP 的工具接口执行 MAT 内置分析命令、OQL 查询等,返回结构化结果。
- 提供 OQL 解析支持与规范:包含 OQL 规范、输入规范与格式化包装,便于在客户端进行安全封装与解析。
- 会话与日志:内置会话标识、请求日志和调试日志选项,便于追踪和排错。
- 多环境与安全控制:对 heap 路径进行白名单校验、写入权限检查,并支持 MAT_HOME、MAT_LAUNCHER、JAVA_PATH 等环境配置。
- 安装步骤
- 克隆并安装依赖
- 构建项目
- 运行服务(示例,实际请替换为你的环境路径)
- 在运行环境中通过 JSON 配置指定堆文件目录、MAT 安装路径等
- 服务器配置
- MCP 客户端连接该服务器需要提供启动该 MCP 服务器的命令与参数。示例配置如下(请以你的实际环境替换路径和参数;该配置由客户端使用,不在服务器端代码中暴露): { "server_name": "mcp-mat", "command": "node", "args": ["/path/to/mcp-mat/dist/src/server.js"], "env": { "MAT_ALLOWED_ROOTS": "/absolute/path/to/heap_dir", "MAT_HOME": "/Applications/MemoryAnalyzer.app/Contents/Eclipse", "JAVA_PATH": "java" } // 说明: // - server_name: MCP 服务在客户端侧的标识名称,应与服务器实际名称一致(代码中设置为 mcp-mat)。 // - command/args: 启动服务器的命令及参数,指向编译输出的 server.js。 // - env: 运行时所需的环境变量,如允许的 heap 目录、MAT 安装路径等。客户端可按需配置。 }
- 基本使用方法
- 启动服务器后,客户端通过 MCP JSON-RPC 调用即可读取资源、执行工具、获取 Prompts/模板等能力。
- 客户端可按需要配置 MAT_ALLOWED_ROOTS、MAT_HOME、JAVA_PATH 等环境变量来匹配本地环境。
- 如需进行 OQL 查询、MAT 解析报告等操作,客户端应通过相应的工具名称和参数向服务器发起请求,并处理返回的 JSON-RPC 响应。