项目简介

pprof-mcp 是一个基于 Model Context Protocol (MCP) 的服务器实现,它作为一个工具集成到 LLM Agent 中,允许 Agent 调用该工具对运行中的 Go 服务器进行性能分析。该服务器通过 MCP 协议与 Agent 客户端通信,提供 'profile_server' 工具,可以收集 Go 服务器的 pprof 数据(如堆、CPU 等),并将分析结果以结构化 JSON 格式返回给 Agent,以便 Agent 进行进一步的分析和洞察。

主要功能点

  • 工具注册与执行: 注册 'profile_server' 工具,允许 LLM Agent 通过标准化的 MCP 协议调用该工具。
  • Go 程序性能分析: 连接到运行中的 Go 服务器的 pprof endpoints,收集性能数据(Heap, CPU 等)。
  • 结构化数据输出: 将性能分析结果以 JSON 格式输出,方便 LLM Agent 理解和处理。
  • 基于 MCP 协议: 遵循 MCP 协议标准,易于集成到任何支持 MCP 协议的 LLM Agent 平台。

安装步骤

方法一:快速安装 (无需 Go 编译器)

在终端中运行以下命令:

curl -fsSl https://raw.githubusercontent.com/vijitkamboj/pprof-mcp/main/run.sh | sh

此命令将下载预编译的二进制文件并使其可执行。

方法二:Go 包安装 (需要 Go 环境)

确保你已安装 Go 语言环境。在终端中运行以下命令:

go install github.com/vijitkamboj/pprof-mcp/cmd/profiler@latest

安装完成后,'profiler' 命令即可在你的终端中使用。

服务器配置

以下 JSON 配置信息用于 MCP 客户端配置连接 pprof-mcp 服务器。你需要将此配置添加到你的 MCP 客户端配置中。

{
  "serverName": "pprof-mcp-server",  // MCP 服务器名称,自定义
  "command": "profiler",             // 启动 pprof-mcp 服务器的命令,假设 'profiler' 命令已添加到系统 PATH 或在当前工作目录
  "args": []                         // 启动参数,当前 pprof-mcp 服务器无需额外参数
}

参数注释:

  • 'serverName': MCP 服务器的名称,可以自定义,用于在客户端中标识不同的 MCP 服务器。
  • 'command': 启动 MCP 服务器的可执行命令。如果使用方法二安装,且 'profiler' 命令已添加到系统 PATH,则直接使用 'profiler'。如果未添加到 PATH 或使用方法一安装,可能需要指定 'profiler' 可执行文件的完整路径。
  • 'args': 启动命令的参数。当前 'pprof-mcp' 服务器程序运行时不需要任何额外的命令行参数,因此配置为空数组 '[]'。

基本使用方法

  1. 启动 pprof-mcp 服务器: 根据安装步骤启动 'profiler' 服务器。服务器启动后,将通过标准输入/输出 (stdio) 与 MCP 客户端通信。

  2. 配置 MCP 客户端: 将上述服务器配置 JSON 添加到你的 MCP 客户端配置中。确保客户端能够通过 'command' 和 'args' 找到并启动 'pprof-mcp' 服务器。

  3. 在 LLM Agent 中使用 'profile_server' 工具: 在你的 LLM Agent 中,可以使用以下方式调用 'profile_server' 工具来分析 Go 服务器的性能:

    profile_server(host="<your_go_server_host:port>")

    将 '<your_go_server_host:port>' 替换为你要分析的 Go 服务器的地址和端口,该 Go 服务器需要已启用 pprof endpoints (通常通过 'import _ "net/http/pprof"' 引入 pprof)。例如:

    profile_server(host="localhost:6060")

    Agent 调用 'profile_server' 后,pprof-mcp 服务器将连接到指定的 Go 服务器,收集性能数据,并将结构化分析结果返回给 Agent。Agent 可以利用这些结果进行性能分析、问题诊断等。

信息

分类

开发者工具