mcpField
G
GPU MCP Server

GPU MCP Server

本地服务
github.com/pmady数据与分析155 周前更新

关于 GPU MCP Server

GPU MCP Server 将 NVIDIA GPU 指标作为工具提供给兼容 MCP 的 Agent,可查询单卡及汇总数据,并支持 MIG 实例。

主要功能

  1. 01GPU 利用率和显存指标
  2. 02温度、功耗、PCIe 与 NVLink 数据
  3. 03按索引或 UUID 查询单卡详情
  4. 04按 PID 归属 GPU 进程
  5. 05跨设备汇总指标
  6. 06支持 MIG 实例

适用场景

  1. 01检查 Agent 任务期间的 GPU 利用率
  2. 02识别占用 GPU 资源的进程
  3. 03查看多块 GPU 的指标汇总

MCP 相关

它提供 MCP 工具,用于列出 GPU、获取详细指标、归属进程及查看汇总统计。通过 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>)

一个 MCP 服务,可将 NVIDIA GPU 指标作为工具提供。 任何兼容 MCP 的 AI Agent(Claude、Goose、Cursor 等)都可以查询 GPU 的实时利用率、内存、温度、功耗、PCIe 和 NVLink 吞吐量,无需 Prometheus 或 dcgm-exporter。

基于 官方 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。以下示例展示了 Agent 从一台配备两块 NVIDIA A100 GPU 的节点接收的数据格式。

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

主机必须安装 NVIDIA Container Toolkit,--gpus all 才能正常工作。该服务通过 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

该服务作为本地进程与 Agent 一同运行。它通过 cgo 直接调用 NVML——无需 sidecar、网络跳转,也无需配置指标管道。

项目信息

引用

如果您在研究或写作中使用 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}
}

路线图

请参阅 ROADMAP.md,了解为期 12 个月的公开路线图。

贡献

请参阅 CONTRIBUTING.md,了解如何参与贡献。

贡献者

感谢所有贡献者!您可以通过 PR 添加自己。

治理

本项目遵循 Linux Foundation 最小可行治理。

文档

Star 历史

Star 历史图表

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。