Performance Co-Pilot について
Performance Co-Pilotは、PCPのシステム性能メトリクスを照会するMCPサーバーです。ローカルまたはリモートホストを監視する運用担当者向けに、スナップショット、プロセス順位、メトリクス照会・検索・説明のツールを提供します。
主な機能
- 01CPU、メモリ、ディスク、ネットワークのスナップショット取得
- 02CPU、メモリ、I/O使用量によるプロセス順位付け
- 03現在のPCPメトリクス値の照会
- 04パターンによる利用可能なメトリクス検索
- 05メトリクスメタデータの取得
活用シーン
- 01システム性能のボトルネック調査
- 02本番サーバーの状態確認
- 03リソース使用量の多いプロセスの特定
- 04キャパシティ計画用メトリクスの確認
MCP 対応
システムスナップショット、プロセス順位、メトリクス照会・検索・説明のツールを通じて、PCPメトリクスをMCPクライアントに公開します。pmproxyに接続し、リモートのpmcdホストを監視対象に指定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
pcp-mcp
Performance Co-Pilot (PCP) のメトリクスを扱う MCP サーバーです。
Model Context Protocol 経由で、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 パラメーターで許可するホスト指定 | (任意) |
🎯 使い方
localhost を監視する(デフォルト)
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 を消費しているプロセスはどれ?」
システム監視
- 「本番サーバーのヘルスチェックをして」
- 「直近 1 分間の 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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。