mcpField
G
GPU Server

GPU Server

本地服务
github.com云与基础设施01 周前更新

关于 GPU Server

GPU Server 是向兼容客户端提供 NVIDIA GPU 状态指标的 MCP 服务。它优先使用 NVML,不可用时回退到 nvidia-smi。

主要功能

  1. 01报告 GPU 名称和驱动信息
  2. 02测量 GPU 与内存利用率
  3. 03显示 VRAM 总量和使用情况
  4. 04读取 GPU 核心温度
  5. 05一次调用返回全部指标

适用场景

  1. 01在 AI 对话中检查 GPU 状态
  2. 02运行任务前查看 VRAM
  3. 03检查利用率和温度

MCP 相关

它向 MCP 客户端提供五种只读 GPU 指标工具,包括单项查询和汇总统计调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mesutoezdil-mcp-gpu-server": {
"command": "uvx",
"args": [
"mcp-gpu-server"
]
}
}
}
启动命令uvx mcp-gpu-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-gpu-server0.1.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-name: io.github.moezdil/mcp-gpu-server

mcp-gpu-server

PyPI

一个可将 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 进行了测试。

GPUNVIDIA GeForce RTX 3090,24 GB
驱动 / CUDA580.178.04 / 13.0
Python3.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 驱动。

链接

评论

支持 Markdown

第一次接触 MCP?

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

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