项目简介
Pprof性能分析MCP服务器是一个实现了Model Context Protocol (MCP) 的后端应用,它提供了一系列工具来分析 Go 语言的 pprof 性能 профилирование 文件。通过标准化的 MCP 协议,它可以与各种支持 MCP 协议的客户端(如VS Code 插件)集成,为开发者提供便捷的性能分析能力。
主要功能点
- 'analyze_pprof' 工具:
- 分析本地 pprof 文件,支持 CPU、内存 (heap)、goroutine 等多种 профилирование 类型。
- 提供 'text' 和 'markdown' 两种文本格式的分析结果,以及 'json' 格式的结构化数据输出(部分类型支持)。
- 可以配置返回结果的数量上限(Top N)。
- 'generate_flamegraph' 工具:
- 使用 'go tool pprof' 命令生成 pprof 文件的火焰图 (SVG 格式)。
- 支持 CPU、内存、goroutine 等多种 профилирование 类型。
- 需要用户指定火焰图 SVG 文件的保存路径。
- 依赖 Graphviz:生成火焰图需要 Graphviz 工具。
安装步骤
- 安装 Go 环境:确保您的机器上已安装 Go 1.18 或更高版本。
- 安装 pprof-analyzer-mcp:
打开终端,运行以下命令安装:
安装成功后,'pprof-analyzer-mcp' 可执行文件将被安装到 '$GOPATH/bin' 或 '$HOME/go/bin' 目录。请确保该目录已添加到系统的 PATH 环境变量中。go install github.com/ZephyrDeng/pprof-analyzer-mcp@latest
服务器配置
要将此 MCP 服务器与 MCP 客户端(例如 Roo Cline for VS Code)配合使用,您需要在客户端的配置文件中添加服务器配置信息。通常,您需要在项目根目录的 '.roo/mcp.json' 文件中进行配置。
以下是一个示例配置,您需要根据实际情况修改 'command' 字段:
{ "mcpServers": { "pprof-analyzer": { // 服务器名称,您可以自定义 "command": "pprof-analyzer-mcp" // 启动服务器的命令。如果您已将安装目录添加到 PATH,则可以直接使用命令名。 // 如果上述命令无法工作,您可能需要指定可执行文件的完整路径。 // 例如,如果您使用 'go build' 构建了可执行文件,并且文件位于项目目录下的 'pprof-analyzer-mcp' 目录中, // 则 "command" 的值可能是: "./pprof-analyzer-mcp/pprof-analyzer-mcp" (相对路径)或 "/path/to/your/project/pprof-analyzer-mcp/pprof-analyzer-mcp" (绝对路径)。 } // ... 其他服务器配置 } }
配置说明:
- '"mcpServers"': 定义 MCP 服务器配置的顶级字段。
- '"pprof-analyzer"': 您为该服务器定义的名称,可以自定义,在客户端中通过此名称引用该服务器。
- '"command"': 重要配置。指定启动 pprof-analyzer-mcp 服务器的命令。
- 如果您按照 安装步骤 使用 'go install' 命令安装,并且 '$GOPATH/bin' 或 '$HOME/go/bin' 目录已添加到系统的 PATH 环境变量中,则可以直接使用 '"pprof-analyzer-mcp"'。
- 否则,您需要提供 'pprof-analyzer-mcp' 可执行文件的完整路径或相对于项目根目录的路径。 这取决于您如何构建和部署服务器。
请注意: MCP 客户端通常只需要 'command' 字段来启动 MCP 服务器,无需其他参数配置。服务器的工具和功能是通过 MCP 协议动态发现和调用的。
基本使用方法
配置完成后,在 MCP 客户端中,您可以通过调用 'pprof-analyzer' 服务器提供的工具来分析 pprof 文件。
示例:使用 'analyze_pprof' 工具分析 CPU профилирование 文件 (文本格式,Top 5)
{ "tool_name": "analyze_pprof", "arguments": { "profile_uri": "file:///path/to/your/cpu.pprof", // pprof 文件 URI,必须是 'file://' 协议,指向您本地的 pprof 文件路径 "profile_type": "cpu" // 要分析的 профилирование 类型,例如 cpu, heap, goroutine } }
示例:使用 'generate_flamegraph' 工具生成 Heap профилирование 文件的火焰图
{ "tool_name": "generate_flamegraph", "arguments": { "profile_uri": "file:///path/to/your/heap.pprof", // pprof 文件 URI "profile_type": "heap", // профилирование 类型 "output_svg_path": "/path/to/save/heap_flamegraph.svg" // 火焰图 SVG 文件的保存路径,请替换为您希望保存的路径 } }
在 MCP 客户端中发送上述 JSON 请求,即可调用 pprof-analyzer-mcp 服务器的相应工具,获取性能分析结果或生成火焰图。请根据您的具体需求,参考仓库 README.md 文件中提供的更多使用示例和参数说明。
信息
分类
开发者工具