关于 Performance Co-Pilot
Performance Co-Pilot 是用于查询 PCP 系统性能指标的 MCP 服务,面向监控本地或远程主机的运维人员,提供快照、进程排序、指标查询、搜索和说明工具。
主要功能
- 01获取 CPU、内存、磁盘和网络快照
- 02按 CPU、内存或 I/O 排序进程
- 03查询当前 PCP 指标值
- 04按模式搜索可用指标
- 05获取指标元数据
适用场景
- 01排查系统性能瓶颈
- 02检查生产服务器健康状况
- 03查找资源占用较高的进程
- 04查看用于容量规划的指标
MCP 相关
通过系统快照、进程排序、指标查询、指标搜索和指标说明工具,向 MCP 客户端提供 PCP 指标。它连接 pmproxy,并可指定远程 pmcd 主机作为监控目标。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
pcp-mcp
用于查询 Performance Co-Pilot (PCP) 指标的 MCP 服务。
通过模型上下文协议查询系统性能指标,包括 CPU、内存、磁盘 I/O、网络、进程等。
🚀 快速开始(无需安装)
使用 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_HOST | pmproxy 主机 | localhost |
PCP_PORT | pmproxy 端口 | 44322 |
PCP_TARGET_HOST | 要监控的目标 pmcd 主机 | localhost |
PCP_USE_TLS | 对 pmproxy 使用 HTTPS | false |
PCP_TLS_VERIFY | 验证 TLS 证书 | true |
PCP_TLS_CA_BUNDLE | 自定义 CA 证书包的路径 | (可选) |
PCP_TIMEOUT | 请求超时时间(秒) | 30 |
PCP_USERNAME | HTTP 基本身份验证用户名 | (可选) |
PCP_PASSWORD | HTTP 基本身份验证密码 | (可选) |
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
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。