GPU Server

io.github.moezdilPublished by GitHub account moezdilv0.2.2Updated Nov 5, 2026

MCP server for GPU monitoring: nvidia-smi, VRAM, utilization, temperature

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Local MCP server that exposes NVIDIA GPU metrics — name, driver, CUDA, VRAM, utilization and temperature — so an assistant can report GPU status in chat.

What you can do
  • Read GPU identity: name, driver version and CUDA version per device
  • Read utilization: core and memory-controller busy percentages
  • Read VRAM: total, used and free MiB plus usage percentage
  • Read temperature: core temperature in Celsius per device
  • Fetch a full snapshot combining info, VRAM, utilization and temperature for every device
When to use it
Useful when you want to check GPU health, memory headroom or temperature on a machine with NVIDIA hardware without running nvidia-smi by hand, for example while training or running local models.
Requirements
Runs as a local Python process (Python 3.10 or higher, MCP Python SDK 2.x), installed from PyPI as gpu-server or run via uvx. Needs an NVIDIA GPU with drivers on the host; it reads NVML directly and falls back to nvidia-smi. No accounts, keys or environment variables are declared.
Before you install
All five tools are reported as read-only, so no data is changed. The CUDA version is null when the nvidia-smi fallback path is used. The package was renamed on PyPI, and the old name is frozen at an older version that does not start with MCP 2.x, so install the current name.

Installation

In SourceWeft

  1. Open GPU Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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

mcp-gpu-server

[PyPI]

An MCP server that exposes NVIDIA GPU metrics as tools. Once connected, any MCP-compatible client can query your GPU status in real time directly from a conversation.

What it does

Instead of running nvidia-smi manually, you ask your AI assistant and it calls these tools automatically:

gpu_info         GPU name, driver version, CUDA versiongpu_utilization  core utilization % and memory controller busy %gpu_vram         total, used, free VRAM in MiB and usage %gpu_temperature  GPU core temperature in Celsiusgpu_stats        everything above in one call

Example response from 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    }  }]}

How it works

Queries NVML (pynvml) directly when available. Falls back to nvidia-smi subprocess if NVML is not accessible. Returns clean JSON in both cases. The nvidia-smi query does not include the CUDA version, so cuda is null on that path.

Install

pip install gpu-server

The package moved from mcp-gpu-server to gpu-server on PyPI in 0.2.1. The old name is frozen at 0.1.3, which does not start with mcp 2.x. The mcp-gpu-server command still works, and since 0.2.2 gpu-server does too.

Listed on the official MCP Registry as io.github.moezdil/mcp-gpu-server.

Connect to your MCP client

Add this to your MCP client config file:

{  "mcpServers": {    "gpu": {      "command": "mcp-gpu-server"    }  }}

Or without installing anything, using uv:

{  "mcpServers": {    "gpu": {      "command": "uvx",      "args": ["gpu-server"]    }  }}

Run tests

uv run pytest tests/test_server.py   # no GPU neededuv run python tests/test_gpu.py      # on a GPU host

Tested on real hardware

Release 0.2.2 was installed from PyPI into a clean virtual environment on a Linux host and tested against a real GPU on 2026-10-21.

GPUNVIDIA GeForce RTX 3090, 24 GB
Driver / CUDA580.178.04 / 13.0
Python3.14.4
Packagesgpu-server 0.2.2, mcp 2.3.0, nvidia-ml-py 13.615.71

Install the published package and run the GPU integration test:

python3 -m venv venvvenv/bin/pip install gpu-server==0.2.2git clone --depth 1 https://github.com/moezdil/mcp-gpu-server.git repovenv/bin/python repo/tests/test_gpu.py

Result: all 37 checks passed. They exercise the NVML path; the nvidia-smi fallback is only checked for presence, not parsed.

Then call every tool through a real MCP client over stdio:

import anyio, json, sysfrom 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)

Saved as e2e.py and run with venv/bin/python e2e.py venv/bin/gpu-server. Result: the client and server negotiated protocol 2026-07-28, all five tools are listed as read-only, and every call returned structured content without errors:

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}}]}

Requirements

Python 3.10 or higher, MCP Python SDK 2.x. NVIDIA GPU with drivers installed on the host machine.

Links

Source: README.md at commit a52bdcf

Tools

5

gpu_info

GPU name, driver version, and CUDA version for each device.

Takes no parameters.

gpu_utilization

GPU core and memory utilization percentage for each device.

Takes no parameters.

gpu_vram

VRAM total, used, free (MiB) and utilization % for each device.

Takes no parameters.

gpu_temperature

Core temperature in °C for each device.

Takes no parameters.

gpu_stats

Full snapshot: info, VRAM, utilization, and temperature for every device.

Takes no parameters.

Version history

1
  1. v0.2.2LatestOct 21, 2026

Score

80% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.