GPU Server について
GPU Server は NVIDIA GPU のリアルタイム指標を MCP クライアントに提供し、会話からハードウェア状態を確認したいユーザー向けです。NVML を利用し、使用できない場合は nvidia-smi に切り替えます。
主な機能
- 01GPU 名、ドライバー、CUDA バージョンの取得
- 02コアとメモリーコントローラーの使用率確認
- 03VRAM の総量、使用量、空き容量の取得
- 04GPU 温度の確認
- 05GPU 統計の一括取得
活用シーン
- 01会話内で GPU の状態を確認
- 02GPU 使用率と温度の点検
- 03VRAM 使用量の確認
MCP 対応
MCP クライアントに 5 つの読み取り専用 GPU 指標ツールを提供します。stdio で呼び出せ、NVML を利用し、必要に応じて nvidia-smi にフォールバックします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 1 週間前に更新
このツールにパラメーターはありません。
詳細
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 上記すべてを 1 回の呼び出しで取得
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 にアクセスできない場合は、nvidia-smi のサブプロセスにフォールバックします。どちらの場合も、整形された JSON を返します。nvidia-smi による問い合わせには CUDA バージョンが含まれないため、その経路では cuda は null になります。
インストール
pip install gpu-server
PyPI でのパッケージ名は、0.2.1 で mcp-gpu-server から gpu-server に変更されました。旧名は 0.1.3 で更新が停止しており、mcp 2.x では起動しません。mcp-gpu-server コマンドも引き続き使えます。また、0.2.2 以降は gpu-server コマンドも使用できます。
公式の MCP Registry には io.github.moezdil/mcp-gpu-server として登録されています。
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 ホスト上で実行
実機でのテスト
リリース 0.2.2 を Linux ホストのクリーンな仮想環境に PyPI からインストールし、2026-10-21 に実際の GPU を使ってテストしました。
| GPU | NVIDIA GeForce RTX 3090、24 GB |
| Driver / CUDA | 580.178.04 / 13.0 |
| Python | 3.14.4 |
| Packages | 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 でネゴシエートし、5 つのツールすべてが読み取り専用として一覧表示され、すべての呼び出しがエラーなく構造化コンテンツを返しました。
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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。