Performance Co-Pilot

io.github.majorPublished by GitHub account majorv1.5.1Updated Oct 24, 2026

Query system performance metrics via MCP - CPU, memory, disk I/O, network, processes

The publisher's own server: QuickBooks Connector by Meridian

Overview

AI-generated overview

MCP server that lets an assistant query Performance Co-Pilot system metrics — CPU, memory, disk I/O, network and processes — on local or remote hosts.

What you can do
  • Take a point-in-time system snapshot covering CPU, memory, disk, network and load
  • List top processes ranked by CPU, memory or I/O usage
  • Fetch current values for specific PCP metrics
  • Search available metrics by name pattern and read a metric's metadata
When to use it
Useful when you want an assistant to help troubleshoot performance problems, health-check a server, or reason about capacity and resource trends on machines already running PCP.
Requirements
Runs locally as a Python package (Python 3.10+) via uvx or pip. Needs Performance Co-Pilot with pmcd and pmproxy running and reachable. Configured through environment variables such as PCP_HOST, PCP_PORT and PCP_TARGET_HOST; optional PCP_USERNAME and PCP_PASSWORD for HTTP basic auth, plus TLS settings.
Before you install
Optional HTTP basic auth credentials are supplied through PCP_USERNAME and PCP_PASSWORD, so keep them out of shared config files. Pointing PCP_TARGET_HOST or PCP_HOST at remote hosts sends metric queries over the network to that pmproxy instance. The tools are read-only metric queries, but they expose detailed process and system information.

Installation

In SourceWeft

  1. Open Performance Co-Pilot in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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

[CI] [codecov] [PyPI version] [Python 3.10+] [License: MIT]

🚀 Quick Start (No Install)

Run immediately with uvx — no installation required:

bash
uvx pcp-mcp

Or install as a persistent global tool:

bash
uvx tool install pcp-mcppcp-mcp

📦 Installation

bash
pip install pcp-mcp

Or with uv:

bash
uv add pcp-mcp

📋 Requirements

  • Python: 3.10+
  • PCP: Performance Co-Pilot with pmcd and pmproxy running
    bash
    # Fedora/RHEL/CentOSsudo dnf install pcpsudo systemctl enable --now pmcd pmproxy
    # Ubuntu/Debiansudo apt install pcpsudo systemctl enable --now pmcd pmproxy

⚙️ Configuration

Configure via environment variables:

VariableDescriptionDefault
PCP_HOSTpmproxy hostlocalhost
PCP_PORTpmproxy port44322
PCP_TARGET_HOSTTarget pmcd host to monitorlocalhost
PCP_USE_TLSUse HTTPS for pmproxyfalse
PCP_TLS_VERIFYVerify TLS certificatestrue
PCP_TLS_CA_BUNDLEPath to custom CA bundle(optional)
PCP_TIMEOUTRequest timeout (seconds)30
PCP_USERNAMEHTTP basic auth user(optional)
PCP_PASSWORDHTTP basic auth password(optional)
PCP_ALLOWED_HOSTSHostspecs allowed via host param(optional)

🎯 Usage

Monitor localhost (default)

bash
pcp-mcp

Monitor a remote host

bash
PCP_TARGET_HOST=webserver1.example.com pcp-mcp

Or use the CLI flag:

bash
pcp-mcp --target-host webserver1.example.com

Connect to remote pmproxy

bash
PCP_HOST=metrics.example.com pcp-mcp

Use SSE transport

bash
pcp-mcp --transport sse

🔌 MCP Client Configuration

Claude Desktop

Add to ~/.config/claude/claude_desktop_config.json:

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

For remote monitoring:

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

💡 Using uvx means you don't need pcp-mcp installed — it runs directly from PyPI.

🛠️ Available Tools

System Monitoring

  • get_system_snapshot - Point-in-time system overview (CPU, memory, disk, network, load)
  • get_process_top - Top processes by CPU, memory, or I/O usage
  • query_metrics - Fetch current values for specific PCP metrics
  • search_metrics - Discover available metrics by name pattern
  • describe_metric - Get detailed metadata about a metric

Example Queries

"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")

💡 Use Cases

Performance Troubleshooting

Ask Claude to:

  • "Analyze current system performance and identify bottlenecks"
  • "Why is my disk I/O so high?"
  • "Which processes are consuming the most CPU?"

System Monitoring

  • "Give me a health check of the production server"
  • "Compare CPU usage over the last minute"
  • "Monitor network traffic on eth0"

Capacity Planning

  • "What's the memory utilization trend?"
  • "Show me disk usage across all filesystems"
  • "Analyze process resource consumption patterns"

🏗️ Architecture

┌─────────┐         ┌─────────┐          ┌─────────┐         ┌─────────┐│   LLM   │ ◄─MCP─► │ pcp-mcp │ ◄─HTTP─► │ pmproxy │ ◄─────► │  pmcd   │└─────────┘         └─────────┘          └─────────┘         └─────────┘                                         (REST API)          (metrics)
  • pcp-mcp: FastMCP server exposing PCP metrics via MCP tools
  • pmproxy: PCP's REST API server (runs on port 44322 by default)
  • pmcd: PCP metrics collector daemon
  • Remote monitoring: Set PCP_TARGET_HOST to query a different pmcd instance via pmproxy

🔧 Development

bash
# Install dependenciesuv sync --dev
# Run all checksmake check
# Individual commandsmake lint       # ruff checkmake format     # ruff formatmake typecheck  # ty checkmake test       # pytest with coverage

📖 Documentation

Full documentation at https://major.github.io/pcp-mcp

📄 License

MIT

Source: README.md at commit 19abe21

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.5.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Pilot integrations