关于 GPU Server
GPU Server 是向兼容客户端提供 NVIDIA GPU 状态指标的 MCP 服务。它优先使用 NVML,不可用时回退到 nvidia-smi。
主要功能
- 01报告 GPU 名称和驱动信息
- 02测量 GPU 与内存利用率
- 03显示 VRAM 总量和使用情况
- 04读取 GPU 核心温度
- 05一次调用返回全部指标
适用场景
- 01在 AI 对话中检查 GPU 状态
- 02运行任务前查看 VRAM
- 03检查利用率和温度
MCP 相关
它向 MCP 客户端提供五种只读 GPU 指标工具,包括单项查询和汇总统计调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-name: io.github.moezdil/mcp-gpu-server
mcp-gpu-server
一个可将 NVIDIA GPU 指标作为工具提供的 MCP 服务。连接后,任何兼容 MCP 的客户端都可以直接在对话中实时查询 GPU 状态。
功能
无需手动运行 nvidia-smi,只需询问 AI 助手,它便会自动调用这些工具:
gpu_info GPU 名称、驱动版本、CUDA 版本
gpu_utilization 核心利用率百分比和内存控制器繁忙百分比
gpu_vram VRAM 总量、已用量、可用量(MiB)及使用百分比
gpu_temperature GPU 核心温度(摄氏度)
gpu_stats 一次调用获取以上所有信息
gpu_stats 的响应示例:
{
"count": 1,
"gpus": [{
"index": 0,
"name": "NVIDIA L40S",
"driver": "580.126.09",
"cuda": "13.0",
"temp_c": 29,
"gpu_pct": 0,
"mem_pct": 0,
"vram": {
"total_mib": 46068,
"used_mib": 610,
"free_mib": 45457,
"pct": 1.3
}
}]
}
工作原理
如果 NVML(pynvml)可用,则直接查询 NVML;如果无法访问 NVML,则改用 nvidia-smi 子进程。两种情况下都会返回格式整洁的 JSON。nvidia-smi 查询不包含 CUDA 版本,因此在这种情况下,cuda 的值为 null。
安装
pip install gpu-server
该软件包于 PyPI 上从 mcp-gpu-server 更名为 gpu-server,更名发生在 0.2.1 版。旧名称固定在 0.1.3 版,无法与 mcp 2.x 启动。mcp-gpu-server 命令仍然可用;从 0.2.2 版开始,gpu-server 命令也可用。
该项目已作为 io.github.moezdil/mcp-gpu-server 收录在官方 MCP Registry 中。
连接到 MCP 客户端
将以下内容添加到 MCP 客户端配置文件中:
{
"mcpServers": {
"gpu": {
"command": "mcp-gpu-server"
}
}
}
或者无需安装任何内容,使用 uv:
{
"mcpServers": {
"gpu": {
"command": "uvx",
"args": ["gpu-server"]
}
}
}
运行测试
uv run pytest tests/test_server.py # 无需 GPU
uv run python tests/test_gpu.py # 在配备 GPU 的主机上
在真实硬件上测试
2026-10-21,在 Linux 主机上的干净虚拟环境中从 PyPI 安装了 0.2.2 版,并使用真实 GPU 进行了测试。
| GPU | NVIDIA GeForce RTX 3090,24 GB |
| 驱动 / CUDA | 580.178.04 / 13.0 |
| Python | 3.14.4 |
| 软件包 | gpu-server 0.2.2、mcp 2.3.0、nvidia-ml-py 13.615.71 |
安装已发布的软件包并运行 GPU 集成测试:
python3 -m venv venv
venv/bin/pip install gpu-server==0.2.2
git clone --depth 1 https://github.com/moezdil/mcp-gpu-server.git repo
venv/bin/python repo/tests/test_gpu.py
结果:37 项检查全部通过。这些检查会执行 NVML 路径;对 nvidia-smi 回退路径只检查是否存在,不会解析其输出。
然后,通过真实 MCP 客户端使用 stdio 调用每个工具:
import anyio, json, sys
from mcp import Client, StdioServerParameters
async def main():
async with Client(StdioServerParameters(command=sys.argv[1])) as c:
print("protocol:", c.protocol_version)
for t in (await c.list_tools()).tools:
r = await c.call_tool(t.name, {})
print(t.name, t.annotations.read_only_hint, json.dumps(r.structured_content))
anyio.run(main)
将代码保存为 e2e.py,并使用 venv/bin/python e2e.py venv/bin/gpu-server 运行。结果:客户端和服务端协商使用协议 2026-07-28,列出的五个工具均标记为只读,且每次调用都返回了结构化内容,没有发生错误:
gpu_stats {"count": 1, "gpus": [{"index": 0, "name": "NVIDIA GeForce RTX 3090",
"driver": "580.178.04", "cuda": "13.0", "temp_c": 42, "gpu_pct": 0, "mem_pct": 0,
"vram": {"total_mib": 24576, "used_mib": 451, "free_mib": 24124, "pct": 1.8}}]}
要求
Python 3.10 或更高版本,MCP Python SDK 2.x。主机上需安装 NVIDIA GPU 驱动。
链接
- PyPI:https://pypi.org/project/gpu-server/
- MCP Registry 条目:https://registry.modelcontextprotocol.io/v0/servers?search=io.github.moezdil/mcp-gpu-server
- Model Context Protocol:https://modelcontextprotocol.io
- MCP Python SDK:https://github.com/modelcontextprotocol/python-sdk
- uv:https://docs.astral.sh/uv/
- NVML (nvidia-ml-py):https://pypi.org/project/nvidia-ml-py/
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。