mcpField
G
GPU MCP Server

GPU MCP Server

ローカル
github.com/pmadyデータ・分析155 週間前に更新

GPU MCP Server について

GPU MCP Serverは、NVIDIA GPUの指標をMCP対応エージェント向けのツールとして提供します。デバイス別・全体の値を取得でき、MIGインスタンスにも対応しています。

主な機能

  1. 01GPU使用率とメモリ指標
  2. 02温度、電力、PCIe、NVLinkの値
  3. 03インデックスまたはUUIDによる詳細取得
  4. 04PID単位のGPUプロセス追跡
  5. 05複数デバイスの集計指標
  6. 06MIGインスタンス対応

活用シーン

  1. 01エージェント処理中のGPU使用率の確認
  2. 02GPUリソースを使うプロセスの特定
  3. 03複数GPUの指標の確認

MCP 対応

GPU一覧、詳細指標、プロセス情報、集計値を取得するMCPツールを提供します。stdioで通信します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"pmady-gpu": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/pmady/gpu-mcp-server:v0.1.0"
]
}
}
}
起動コマンドdocker run -i --rm ghcr.io/pmady/gpu-mcp-server:v0.1.0

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/pmady/gpu-mcp-server:v0.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

gpu-mcp-server

CI Helm Go Report Card Go Reference License DOI OpenSSF Scorecard OpenSSF Best Practices

注: OpenSSF Best Practices のアンケートに回答中です。プロジェクトのエントリーが https://www.bestpractices.dev/en に登録されたら、上の静的バッジを実際のバッジに差し替えてください: [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/<ID>/badge)](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_processesPID 単位で 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 を直接呼び出すため、 サイドカーもネットワーク経由の通信も不要で、メトリクスパイプラインを設定する必要もありません。

プロジェクト情報

引用

研究や執筆で 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 に準拠しています。

ドキュメント

スター履歴

スター履歴グラフ

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。