GPU MCP Server

Official registry AI and agents

NVIDIA GPU metrics as MCP tools — utilization, memory, temperature, power. Supports MIG.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

OCI package ghcr.io/pmady/gpu-mcp-server:v0.1.0
Claude Code
claude mcp add gpu-mcp-server -- docker run -i --rm ghcr.io/pmady/gpu-mcp-server:v0.1.0
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "gpu-mcp-server": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/pmady/gpu-mcp-server:v0.1.0"
            ]
        }
    }
}

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. gpu-mcp-server
  2. Tools
  3. Sample output
  4. Quick start
  5. Build
  6. Docker
  7. Architecture
  8. Project info
  9. Citing
  10. Roadmap
  11. Contributing
  12. Contributors
  13. Governance
  14. Documentation
  15. Star History

gpu-mcp-server

Note: the OpenSSF Best Practices questionnaire is in progress. Once the project entry is registered at https://www.bestpractices.dev/en, swap the static badge above for the live one: [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/<ID>/badge)](https://www.bestpractices.dev/projects/<ID>)

An MCP server that exposes NVIDIA GPU metrics as tools. Any MCP-compatible AI agent (Claude, Goose, Cursor, etc.) can query real-time GPU utilization, memory, temperature, power, PCIe and NVLink throughput no Prometheus or dcgm-exporter required.

Built on the official Go MCP SDK and NVIDIA go-nvml.

Tools

ToolDescription
list_gpusList all GPUs with utilization and memory info
get_gpu_metricsDetailed metrics for a GPU by index or UUID
get_gpu_processesPID-level GPU process attribution
gpu_summaryAggregate stats across all devices

All tools support MIG (Multi-Instance GPU) - MIG instances appear as separate devices with their parent GPU's shared metrics (temperature, power, PCIe).

Sample output

Each tool returns structured JSON. The examples below show the shape of the data an agent receives from a node with two NVIDIA A100 GPUs.

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 (with {"index": 0} or {"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 instances add is_mig, parent_gpu, and mig_profile fields to the get_gpu_metrics and list_gpus payloads.

Quick start

# build (requires CGO + NVML headers on Linux)
make build

# run the server communicates over stdio
./gpu-mcp-server
Claude Desktop

Add to 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

Add to .cursor/mcp.json for a project, or ~/.cursor/mcp.json for all projects:

{
  "mcpServers": {
    "gpu": {
      "type": "stdio",
      "command": "/path/to/gpu-mcp-server"
    }
  }
}
Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "gpu": {
      "command": "/path/to/gpu-mcp-server"
    }
  }
}

Build

Requires Go 1.23+, CGO, and NVIDIA drivers on the target machine.

make build       # compile binary
make test        # run tests (no GPU needed uses mock)
make lint        # golangci-lint
make docker      # container image

Tests use a mock collector, so they run anywhere no GPU hardware required.

Docker

Prebuilt multi-arch images (linux/amd64, linux/arm64) are published to GHCR on every release.

docker pull ghcr.io/pmady/gpu-mcp-server:latest
docker run --rm -i --gpus all ghcr.io/pmady/gpu-mcp-server:latest

The host needs the NVIDIA Container Toolkit installed for --gpus all to work. The server speaks MCP over stdio, so the -i flag is required — don't drop it.

{
  "mcpServers": {
    "gpu": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--gpus", "all", "ghcr.io/pmady/gpu-mcp-server:latest"]
    }
  }
}

Pin a specific version via tag instead of :latest, e.g. ghcr.io/pmady/gpu-mcp-server:v0.1.0.

Architecture

Agent (Claude/Goose) ─── MCP (stdio) ──→ gpu-mcp-server ──→ NVML ──→ GPU
                                              │
                                         Tools:
                                         • list_gpus
                                         • get_gpu_metrics
                                         • gpu_summary

The server runs as a local process alongside the agent. It calls NVML directly through cgo — no sidecar, no network hops, no metric pipeline to configure.

Project info

Citing

If you use gpu-mcp-server in your research or writing, please cite it via its DOI. Full citation metadata is in 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

See ROADMAP.md for the 12-month public roadmap.

Contributing

See CONTRIBUTING.md for how to get involved.

Contributors

Thanks to all our contributors! Add yourself via PR.

Governance

This project follows Linux Foundation Minimum Viable Governance.

Documentation

Star History

Frequently asked questions

What is GPU MCP Server?

NVIDIA GPU metrics as MCP tools — utilization, memory, temperature, power. Supports MIG.

How do I install GPU MCP Server?

It runs on your machine. In Claude Code: claude mcp add gpu-mcp-server -- docker run -i --rm ghcr.io/pmady/gpu-mcp-server:v0.1.0. For other clients, paste the JSON configuration from this page into their MCP settings.

Does GPU MCP Server need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is GPU MCP Server open source?

Yes. Its code is on GitHub under the Apache-2.0 license.

Who maintains GPU MCP Server?

It is published by pmady. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.