内容
# gpu-mcp-server
一个暴露NVIDIA GPU指标的[MCP](https://modelcontextprotocol.io/)服务器。
任何与MCP兼容的AI代理(Claude、Goose、Cursor等)都可以查询实时的GPU
利用率、内存、温度、功率、PCIe和NVLink吞吐量,无需Prometheus
或dcgm-exporter。
基于[官方Go MCP SDK](https://github.com/modelcontextprotocol/go-sdk)
和[NVIDIA go-nvml](https://github.com/NVIDIA/go-nvml)构建。
## 工具列表
| 工具 | 描述 |
|------|-------------|
| `list_gpus` | 列出所有具有利用率和内存信息的GPU |
| `get_gpu_metrics` | 获取指定索引或UUID的GPU的详细指标 |
| `gpu_summary` | 聚合所有设备的统计信息 |
所有工具都支持MIG(多实例GPU)——MIG实例作为单独的
设备出现,具有其父GPU的共享指标(温度、功率、PCIe)。
## 快速开始
```bash
# 构建(需要在Linux上安装CGO和NVML头文件)
make build
# 运行通过标准输入输出通信的服务器
./gpu-mcp-server
```
### Claude Desktop
添加到 `claude_desktop_config.json`:
```json
{
"mcpServers": {
"gpu": {
"command": "/path/to/gpu-mcp-server"
}
}
}
```
### Goose
```yaml
extensions:
gpu-metrics:
type: stdio
cmd: /path/to/gpu-mcp-server
```
## 构建
需要在目标机器上安装Go 1.23+、CGO和NVIDIA驱动。
```bash
make build # 编译二进制文件
make test # 运行测试(不需要GPU,使用模拟)
make lint # golangci-lint
make docker # 容器镜像
```
测试使用模拟收集器,因此可以在任何地方运行,无需GPU硬件。
## 架构
```
代理(Claude/Goose)─── MCP(标准输入输出) ──→ gpu-mcp-server ──→ NVML ──→ GPU
│
工具:
• list_gpus
• get_gpu_metrics
• gpu_summary
```
服务器作为本地进程与代理一起运行。它直接通过cgo调用NVML
—— 无需 sidecar,无需网络跳转,无需配置指标管道。
## 项目信息
- **许可证:** Apache 2.0
- **语言:** Go
- **AAIF项目对齐:** [MCP](https://modelcontextprotocol.io/)
- **相关:** [keda-gpu-scaler](https://github.com/pmady/keda-gpu-scaler) (Kubernetes的GPU自动缩放)
## 路线图
在 [ROADMAP.md](ROADMAP.md) 中查看 12 个月的公开路线图。
## 贡献
在 [CONTRIBUTING.md](CONTRIBUTING.md) 中查看如何参与。
## 治理
该项目遵循 [Linux 基金会最低可行治理](GOVERNANCE.md)。
## 文档
- [ROADMAP.md](ROADMAP.md) — 公开路线图
- [GOVERNANCE.md](GOVERNANCE.md) — 决策过程
- [DEPENDENCIES.md](DEPENDENCIES.md) — 外部依赖和许可证
- [SECURITY.md](SECURITY.md) — 漏洞报告
- [AGENTS.md](AGENTS.md) — 适用于在此仓库上工作的AI代理的说明
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) — 社区标准