Query system performance metrics via MCP - CPU, memory, disk I/O, network, processes
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted โ your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx pcp-mcp
MCP client config
{
"mcpServers": {
"performance-co-pilot": {
"command": "uvx",
"args": [
"pcp-mcp"
]
}
}
}MCP server for Performance Co-Pilot (PCP) metrics.
Query system performance metrics via the Model Context Protocol - CPU, memory, disk I/O, network, processes, and more.
๐ Full Documentation | ๐ Getting Started
Run immediately with uvx โ no installation required:
uvx pcp-mcp
Or install as a persistent global tool:
uvx tool install pcp-mcp
pcp-mcp
pip install pcp-mcp
Or with uv:
uv add pcp-mcp
pmcd and pmproxy running
# 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
Configure via environment variables:
| Variable | Description | Default |
|---|---|---|
PCP_HOST | pmproxy host | localhost |
PCP_PORT | pmproxy port | 44322 |
PCP_TARGET_HOST | Target pmcd host to monitor | localhost |
PCP_USE_TLS | Use HTTPS for pmproxy | false |
PCP_TLS_VERIFY | Verify TLS certificates | true |
PCP_TLS_CA_BUNDLE | Path to custom CA bundle | (optional) |
PCP_TIMEOUT | Request timeout (seconds) | 30 |
PCP_USERNAME | HTTP basic auth user | (optional) |
PCP_PASSWORD | HTTP basic auth password | (optional) |
PCP_ALLOWED_HOSTS | Hostspecs allowed via host param | (optional) |
pcp-mcp
PCP_TARGET_HOST=webserver1.example.com pcp-mcp
Or use the CLI flag:
pcp-mcp --target-host webserver1.example.com
PCP_HOST=metrics.example.com pcp-mcp
pcp-mcp --transport sse
Add to ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"pcp": {
"command": "uvx",
"args": ["pcp-mcp"]
}
}
}
For remote monitoring:
{
"mcpServers": {
"pcp": {
"command": "uvx",
"args": ["pcp-mcp", "--target-host", "webserver1.example.com"]
}
}
}
๐ก Using
uvxmeans you don't need pcp-mcp installed โ it runs directly from PyPI.
get_system_snapshot - Point-in-time system overview (CPU, memory, disk, network, load)get_process_top - Top processes by CPU, memory, or I/O usagequery_metrics - Fetch current values for specific PCP metricssearch_metrics - Discover available metrics by name patterndescribe_metric - Get detailed metadata about a 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")
Ask Claude to:
โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโ
โ LLM โ โโMCPโโบ โ pcp-mcp โ โโHTTPโโบ โ pmproxy โ โโโโโโโบ โ pmcd โ
โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโ
(REST API) (metrics)
PCP_TARGET_HOST to query a different pmcd instance via pmproxy# 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
Full documentation at https://major.github.io/pcp-mcp
MIT