GPU MCP Server について
GPU MCP Serverは、NVIDIA GPUの指標をMCP対応エージェント向けのツールとして提供します。デバイス別・全体の値を取得でき、MIGインスタンスにも対応しています。
主な機能
- 01GPU使用率とメモリ指標
- 02温度、電力、PCIe、NVLinkの値
- 03インデックスまたはUUIDによる詳細取得
- 04PID単位のGPUプロセス追跡
- 05複数デバイスの集計指標
- 06MIGインスタンス対応
活用シーン
- 01エージェント処理中のGPU使用率の確認
- 02GPUリソースを使うプロセスの特定
- 03複数GPUの指標の確認
MCP 対応
GPU一覧、詳細指標、プロセス情報、集計値を取得するMCPツールを提供します。stdioで通信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/pmady/gpu-mcp-server:v0.1.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/pmady/gpu-mcp-server:v0.1.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
gpu-mcp-server
注: OpenSSF Best Practices のアンケートに回答中です。プロジェクトのエントリーが https://www.bestpractices.dev/en に登録されたら、上の静的バッジを実際のバッジに差し替えてください:
[](https://www.bestpractices.dev/projects/<ID>)
NVIDIA GPU のメトリクスをツールとして公開する MCP サーバーです。 MCP 対応の AI エージェント(Claude、Goose、Cursor など)から、Prometheus や dcgm-exporter を必要とせずに、 GPU 使用率、メモリ、温度、電力、PCIe および NVLink のスループットをリアルタイムで取得できます。
公式の Go MCP SDK と NVIDIA go-nvml を基盤に構築されています。
ツール
| ツール | 説明 |
|---|---|
list_gpus | 使用率とメモリ情報を含むすべての GPU の一覧を取得 |
get_gpu_metrics | インデックスまたは UUID で指定した GPU の詳細なメトリクスを取得 |
get_gpu_processes | PID 単位で GPU プロセスの使用状況を表示 |
gpu_summary | すべてのデバイスの統計情報を集計 |
すべてのツールは MIG(Multi-Instance GPU)に対応しています。MIG インスタンスは、親 GPU と共有するメトリクス(温度、電力、PCIe)を含む個別のデバイスとして表示されます。
出力例
各ツールは構造化された JSON を返します。以下の例は、NVIDIA A100 GPU を 2 基搭載したノードから エージェントが受け取るデータの形式を示しています。
list_gpus:
{
"count": 2,
"devices": [
{
"index": 0,
"uuid": "GPU-aaaa-1111",
"name": "NVIDIA A100-SXM4-80GB",
"gpu_utilization_percent": 85,
"memory_used_mib": 57344,
"memory_total_mib": 81920
},
{
"index": 1,
"uuid": "GPU-bbbb-2222",
"name": "NVIDIA A100-SXM4-80GB",
"gpu_utilization_percent": 20,
"memory_used_mib": 12288,
"memory_total_mib": 81920
}
]
}
get_gpu_metrics({"index": 0} または {"uuid": "GPU-aaaa-1111"} を指定):
{
"index": 0,
"uuid": "GPU-aaaa-1111",
"name": "NVIDIA A100-SXM4-80GB",
"gpu_utilization_percent": 85,
"memory_utilization_percent": 70,
"memory_used_mib": 57344,
"memory_total_mib": 81920,
"temperature_celsius": 72,
"power_draw_watts": 300,
"power_limit_watts": 400,
"pcie_tx_kbps": 0,
"pcie_rx_kbps": 0,
"nvlink_tx_mbps": 0,
"nvlink_rx_mbps": 0
}
gpu_summary:
{
"device_count": 2,
"avg_gpu_utilization": 52.5,
"avg_memory_utilization": 42.5,
"total_memory_used_mib": 69632,
"total_memory_total_mib": 163840,
"max_temperature_celsius": 72,
"total_power_draw_watts": 375
}
MIG インスタンスでは、get_gpu_metrics と list_gpus のペイロードに is_mig、parent_gpu、mig_profile フィールドが追加されます。
クイックスタート
# build (requires CGO + NVML headers on Linux)
make build
# run the server communicates over stdio
./gpu-mcp-server
Claude Desktop
claude_desktop_config.json に追加します:
{
"mcpServers": {
"gpu": {
"command": "/path/to/gpu-mcp-server"
}
}
}
Goose
extensions:
gpu-metrics:
type: stdio
cmd: /path/to/gpu-mcp-server
Cursor
プロジェクト用には .cursor/mcp.json、すべてのプロジェクト用には ~/.cursor/mcp.json に追加します:
{
"mcpServers": {
"gpu": {
"type": "stdio",
"command": "/path/to/gpu-mcp-server"
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します:
{
"mcpServers": {
"gpu": {
"command": "/path/to/gpu-mcp-server"
}
}
}
ビルド
Go 1.23 以降、CGO、および実行先マシンの NVIDIA ドライバーが必要です。
make build # compile binary
make test # run tests (no GPU needed uses mock)
make lint # golangci-lint
make docker # container image
テストではモックコレクターを使用するため、GPU ハードウェアがなくてもどこでも実行できます。
Docker
ビルド済みのマルチアーキテクチャイメージ(linux/amd64、linux/arm64)は、リリースごとに GHCR に公開されます。
docker pull ghcr.io/pmady/gpu-mcp-server:latest
docker run --rm -i --gpus all ghcr.io/pmady/gpu-mcp-server:latest
--gpus all を使用するには、ホストに NVIDIA Container Toolkit
をインストールする必要があります。サーバーは stdio 経由で MCP を使用するため、
-i フラグが必須です。省略しないでください。
{
"mcpServers": {
"gpu": {
"command": "docker",
"args": ["run", "--rm", "-i", "--gpus", "all", "ghcr.io/pmady/gpu-mcp-server:latest"]
}
}
}
:latest ではなくタグで特定のバージョンを指定してください。例:ghcr.io/pmady/gpu-mcp-server:v0.1.0。
アーキテクチャ
Agent (Claude/Goose) ─── MCP (stdio) ──→ gpu-mcp-server ──→ NVML ──→ GPU
│
Tools:
• list_gpus
• get_gpu_metrics
• gpu_summary
サーバーはエージェントと並行してローカルプロセスとして実行されます。cgo 経由で NVML を直接呼び出すため、 サイドカーもネットワーク経由の通信も不要で、メトリクスパイプラインを設定する必要もありません。
プロジェクト情報
- ライセンス: Apache 2.0
- 言語: Go
- AAIF プロジェクトとの連携: MCP
- 関連プロジェクト: keda-gpu-scaler(Kubernetes 向け GPU オートスケーリング)
- ホワイトペーパー: GPU-Aware Autoscaling in Cloud Native AI Infrastructure — CNCF TAG Infrastructure の取り組み(TOC #2188)
引用
研究や執筆で gpu-mcp-server を使用する場合は、DOI を使って引用してください。引用に必要なメタデータは CITATION.cff に記載されています。
@software{madduri_gpu_mcp_server,
author = {Madduri, Pavan},
title = {gpu-mcp-server: NVIDIA GPU metrics for AI agents over the Model Context Protocol},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.22866670},
url = {https://doi.org/10.5281/zenodo.22866670}
}
ロードマップ
12 か月間の公開ロードマップについては、ROADMAP.md をご覧ください。
貢献
参加方法については、CONTRIBUTING.md をご覧ください。
コントリビューター
コントリビューターの皆さん、ありがとうございます!PR を送信して、ご自身を追加してください。
ガバナンス
このプロジェクトは、Linux Foundation Minimum Viable Governance に準拠しています。
ドキュメント
- すべてのドキュメント - Read the Docs で公開
- ROADMAP.md - 公開ロードマップ
- GOVERNANCE.md - 意思決定プロセス
- DEPENDENCIES.md - 外部依存関係とライセンス
- SECURITY.md - 脆弱性の報告
- AGENTS.md - このリポジトリで作業する AI エージェント向けの手順
- CODE_OF_CONDUCT.md - コミュニティの行動規範
スター履歴
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。