项目简介

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 工具。

安装步骤

  1. 安装 Go 环境:确保您的机器上已安装 Go 1.18 或更高版本。
  2. 安装 pprof-analyzer-mcp: 打开终端,运行以下命令安装:
    go install github.com/ZephyrDeng/pprof-analyzer-mcp@latest
    安装成功后,'pprof-analyzer-mcp' 可执行文件将被安装到 '$GOPATH/bin' 或 '$HOME/go/bin' 目录。请确保该目录已添加到系统的 PATH 环境变量中。

服务器配置

要将此 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 文件中提供的更多使用示例和参数说明。

信息

分类

开发者工具