MemPro MCP服务器
MCP(模型上下文协议)服务器,用于分析MemPro内存分析数据,并使用AI分析检测内存错误。
概述
该服务器提供MemPro JSON导出的智能分析,使AI助手能够快速识别C++应用程序中的内存泄漏、碎片问题和大量分配。
特性
MCP工具
- 分析泄漏 -分析内存泄漏并返回优先级问题
- 输入: json_path (可选,默认为test_memory_analysis.json) - 输出:内存泄漏问题的JSON数组,包括严重程度、描述和建议
- get_summary -提供全面的内存使用情况摘要
- 输入: json_path (可选) - 输出:关键指标和关键发现的文本摘要
- get_top_leakers -返回导致内存泄漏的前N个函数
- 输入: json_path (可选), count (默认值:10) - 输出:包含详细信息的顶级泄密者格式化列表
- 分析放大 -分析内存碎片
- 输入: json_path (可选) - 产出:碎片化问题和建议
- find_large_分配 -识别异常大的分配
- 输入: json_path (可选) - 输出:大型分配问题列表
- 获取所有问题 -全面分析所有问题
- 输入: json_path (可选) - 输出:完整的分析,包括摘要、泄漏、碎片和大量分配
MCP资源
- mempro://stats -快速访问JSON格式的内存统计信息
安装
- 确保已安装Go 1.22+
- 导航到MemProMCP目录:
cd "C:\Program Files\PureDevSoftware\MemPro\MemProReader\MemProMCP"- 下载依赖关系:
go mod tidy- 构建服务器:
go build -o mempro-mcp.exe用法
运行服务器
服务器使用stdio传输与MCP客户端通信:
./mempro-mcp.exe与Claude Desktop集成
添加到您的Claude Desktop配置(claude_desktop_config.json):
{
"mcpServers": {
"mempro": {
"command": "C:\\Program Files\\PureDevSoftware\\MemPro\\MemProReader\\MemProMCP\\mempro-mcp.exe",
"env": {
"MEMPRO_JSON_PATH": "C:\\Program Files\\PureDevSoftware\\MemPro\\MemProReader\\test_memory_analysis.json"
}
}
}
}环境变量
MEMPRO_JSON_PATH-MemPro JSON文件的默认路径(可选)
分析能力
内存泄漏检测
分析器根据以下内容识别内存泄漏:
- 泄漏尺寸和数量
- MemPro的泄漏评分
- 可疑标志
- 函数上下文和调用堆栈
严重程度:
- 关键的:疑似泄漏>100KB
- 高:怀疑泄漏或泄漏>50KB
- 中等:泄漏>10KB或>100个分配
- 低:其他泄漏
智能建议
分析器提供上下文感知建议:
- 未知功能:启用调试符号
- STL容器:检查析构函数和循环引用
- 主要功能:审查分配所有权,使用RAII
- 将军:使用智能指针(std::unique_ptr,std::shared_ptr)
碎片分析
检测内存碎片问题:
- 高 (>80%):严重碎片化,需要立即关注
- 中等 (>50%):需要监控的碎片化程度适中
建议包括对象池、内存竞技场和分配模式优化。
大分配检测
确定可能从优化中受益的分配:
- 平均大小>10KB
- 最大大小>50KB(中)或>100KB(高)
建议采用分块、流媒体或增量分配策略。
AI查询示例
当将此服务器与AI助手一起使用时:
- “应用程序中最严重的内存泄漏是什么?”
- “分析内存碎片并提供建议”
- “显示导致内存泄漏的前5个函数”
- “请对所有内存问题进行全面分析”
- “我应该优化哪些大额分配?”
数据结构
服务器通过以下关键部分解析MemPro JSON:
- CallTrees:分层分配调用树
- 函数:功能级分配统计
- 泄漏:检测到带有可疑标志的内存泄漏
- 页面浏览量:内存页使用信息
- 类型:分配类型统计
发展
项目结构
MemProMCP/
├── main.go # MCP server setup and tool handlers
├── analyzer.go # Memory analysis logic
├── types.go # Data structures for MemPro JSON
├── go.mod # Go module definition
└── README.md # This file添加新工具
- 在中定义工具
setupTools()在main.go中 - 按照模式创建处理程序函数
- 在analyzer.go中实现分析逻辑
- 使用工具文档更新README
许可证
此工具旨在与PureDevSoftware的MemPro内存分析器配合使用。
支持
有关MemPro的问题或疑问,请访问:https://www.puredevsoftware.com/mempro/
有关MCP协议信息:https://modelcontextprotocol.io/
