mcpField
P
Performance Co-Pilot

Performance Co-Pilot

本地服务
github.com/major数据与分析029 周前更新

关于 Performance Co-Pilot

Performance Co-Pilot 是用于查询 PCP 系统性能指标的 MCP 服务,面向监控本地或远程主机的运维人员,提供快照、进程排序、指标查询、搜索和说明工具。

主要功能

  1. 01获取 CPU、内存、磁盘和网络快照
  2. 02按 CPU、内存或 I/O 排序进程
  3. 03查询当前 PCP 指标值
  4. 04按模式搜索可用指标
  5. 05获取指标元数据

适用场景

  1. 01排查系统性能瓶颈
  2. 02检查生产服务器健康状况
  3. 03查找资源占用较高的进程
  4. 04查看用于容量规划的指标

MCP 相关

通过系统快照、进程排序、指标查询、指标搜索和指标说明工具,向 MCP 客户端提供 PCP 指标。它连接 pmproxy,并可指定远程 pmcd 主机作为监控目标。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"major-pcp": {
"command": "uvx",
"args": [
"pcp-mcp"
],
"env": {
"PCP_HOST": "<PCP_HOST>",
"PCP_PORT": "<PCP_PORT>",
"PCP_TARGET_HOST": "<PCP_TARGET_HOST>"
}
}
}
}
启动命令uvx pcp-mcp
需要配置的环境变量
PCP_HOSTpmproxy host
PCP_PORTpmproxy port
PCP_TARGET_HOSTTarget pmcd host to monitor

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypipcp-mcp1.5.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

pcp-mcp

用于查询 Performance Co-Pilot (PCP) 指标的 MCP 服务。

通过模型上下文协议查询系统性能指标,包括 CPU、内存、磁盘 I/O、网络、进程等。

📖 完整文档 | 🚀 快速入门

CI codecov PyPI version Python 3.10+ License: MIT

🚀 快速开始(无需安装)

使用 uvx 立即运行,无需安装:

uvx pcp-mcp

或将其安装为持久的全局工具:

uvx tool install pcp-mcp
pcp-mcp

📦 安装

pip install pcp-mcp

或使用 uv:

uv add pcp-mcp

📋 要求

  • Python:3.10+
  • PCP:运行着 pmcd 和 pmproxy 的 Performance Co-Pilot
    # Fedora/RHEL/CentOS
    sudo dnf install pcp
    sudo systemctl enable --now pmcd pmproxy
    
    # Ubuntu/Debian
    sudo apt install pcp
    sudo systemctl enable --now pmcd pmproxy
    

⚙️ 配置

通过环境变量进行配置:

变量描述默认值
PCP_HOSTpmproxy 主机localhost
PCP_PORTpmproxy 端口44322
PCP_TARGET_HOST要监控的目标 pmcd 主机localhost
PCP_USE_TLS对 pmproxy 使用 HTTPSfalse
PCP_TLS_VERIFY验证 TLS 证书true
PCP_TLS_CA_BUNDLE自定义 CA 证书包的路径(可选)
PCP_TIMEOUT请求超时时间(秒)30
PCP_USERNAMEHTTP 基本身份验证用户名(可选)
PCP_PASSWORDHTTP 基本身份验证密码(可选)
PCP_ALLOWED_HOSTS通过 host 参数允许访问的主机规格(可选)

🎯 用法

监控本地主机(默认)
pcp-mcp
监控远程主机
PCP_TARGET_HOST=webserver1.example.com pcp-mcp

或使用 CLI 标志:

pcp-mcp --target-host webserver1.example.com
连接到远程 pmproxy
PCP_HOST=metrics.example.com pcp-mcp
使用 SSE 传输
pcp-mcp --transport sse

🔌 MCP 客户端配置

Claude Desktop

添加到 ~/.config/claude/claude_desktop_config.json:

{
  "mcpServers": {
    "pcp": {
      "command": "uvx",
      "args": ["pcp-mcp"]
    }
  }
}

进行远程监控:

{
  "mcpServers": {
    "pcp": {
      "command": "uvx",
      "args": ["pcp-mcp", "--target-host", "webserver1.example.com"]
    }
  }
}

💡 使用 uvx 意味着无需安装 pcp-mcp,即可直接从 PyPI 运行。

🛠️ 可用工具

系统监控
  • get_system_snapshot - 某一时刻的系统概览(CPU、内存、磁盘、网络、负载)
  • get_process_top - 按 CPU、内存或 I/O 使用量排列的主要进程
  • query_metrics - 获取指定 PCP 指标的当前值
  • search_metrics - 按名称模式查找可用指标
  • describe_metric - 获取指标的详细元数据
查询示例
"What's the current CPU usage?"
→ Uses get_system_snapshot

"Show me the top 10 processes by memory usage"
→ Uses get_process_top(sort_by="memory", limit=10)

"What metrics are available for network traffic?"
→ Uses search_metrics(pattern="network")

"Get detailed info about kernel.all.load"
→ Uses describe_metric(name="kernel.all.load")

💡 使用场景

性能问题排查

向 Claude 提问:

  • “分析当前系统性能并找出瓶颈”
  • “为什么我的磁盘 I/O 这么高?”
  • “哪些进程占用了最多的 CPU?”
系统监控
  • “检查生产服务器的运行状况”
  • “比较最近一分钟的 CPU 使用率”
  • “监控 eth0 上的网络流量”
容量规划
  • “内存利用率趋势如何?”
  • “显示所有文件系统的磁盘使用情况”
  • “分析进程资源消耗模式”

🏗️ 架构

┌─────────┐         ┌─────────┐          ┌─────────┐         ┌─────────┐
│   LLM   │ ◄─MCP─► │ pcp-mcp │ ◄─HTTP─► │ pmproxy │ ◄─────► │  pmcd   │
└─────────┘         └─────────┘          └─────────┘         └─────────┘
                                         (REST API)          (metrics)
  • pcp-mcp:通过 MCP 工具提供 PCP 指标的 FastMCP 服务
  • pmproxy:PCP 的 REST API 服务(默认运行在端口 44322)
  • pmcd:PCP 指标收集守护进程
  • 远程监控:设置 PCP_TARGET_HOST,通过 pmproxy 查询其他 pmcd 实例

🔧 开发

# Install dependencies
uv sync --dev

# Run all checks
make check

# Individual commands
make lint       # ruff check
make format     # ruff format
make typecheck  # ty check
make test       # pytest with coverage

📖 文档

完整文档请访问 https://major.github.io/pcp-mcp

📄 许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。