GPU availability updates every minute
gpu.nz
On this pageDocumentation
Documentation · MCP

gpu.nz MCP server

Connect gpu.nz to your AI assistant over the Model Context Protocol. It picks a GPU for the model, works out the VRAM, rents a server, reads its logs and stops it when the job is done.

Server URL
https://gpu.nz/mcp
  • Nothing to install: the server runs on gpu.nz
  • Search and estimates work without a key
  • Renting needs your API key

Connect

Pick your app. Replace gpz_… with a key from the Keys page of the console. Without a key only GPU search, prices and VRAM estimates work.

claude mcp add --transport http gpunz https://gpu.nz/mcp \
  --header "Authorization: Bearer gpz_…"
  • Claude Desktop connects through mcp-remote (Node.js 18+). On claude.ai you can add https://gpu.nz/mcp under Connectors without a key: search and estimates will work.
  • VS Code asks for the key on first use and keeps it in its secret storage.
  • Codex reads the key from the GPUNZ_API_KEY environment variable.
  • For clients that only run local servers there is a bridge on Docker and GitHub: github.com/gpunz/gpunz-mcp

Tools

The tools call the same REST API as the site: the key's scopes, the rate limits and the audit log are shared.

No key needed

ToolWhat it does
list_gpu_modelsGPU models in stock: memory, class, price per hour.
search_offersServers with prices: filter by model, GPU count, memory, price, country and reliability.
get_offerOne server and its current price.
list_templatesReady environments: ComfyUI, Forge, Ollama, vLLM, Jupyter, LoRA training, your own Docker image.
estimate_vramHow much GPU memory a model needs (Qwen, DeepSeek, Llama, Gemma, GPT-OSS, FLUX, Wan…) and which GPUs fit it, by price.
topup_linkA link to top up the balance. Payment happens in the browser only.

With a key

ToolWhat it doesKey scope
get_accountAccount, balance, hourly spend and how long the money lasts.user:read, billing:read
list_instancesYour servers: status, GPU, price, SSH command.instances:read
get_instanceOne server: SSH, app links, cost since it started.instances:read
get_instance_logsThe last log lines: boot, app start-up, errors.instances:read
create_instanceRents a server with a template. Billing starts right away.instances:write
stop_instanceStops a server: only its disk is billed from then on.instances:write
start_instanceStarts a stopped server.instances:write
destroy_instanceDestroys a server and its disk. Irreversible.instances:write
list_ssh_keysThe account's SSH keys.user:read
add_ssh_keyAdds an SSH key.user:write

API key

Create a key on the Keys page of the console. Give it only what the agent needs: renting and stopping servers takes the instance scopes and billing read.

instances:read, instances:write, billing:read, user:read

Set an expiry, say 30 days, and revoke the key when the agent no longer needs it.

Never paste the key into the chat with the model: it belongs in the app's settings only.

Create a key →

Example prompts

Ask in plain words — the agent picks the tools.

  • How much VRAM does Qwen3.8 27B need with a 32k context, and where is it cheapest?
  • Find the cheapest RTX 4090 with reliability above 0.98 and start ComfyUI on it with an 80 GB disk.
  • Run GPT-OSS 120B on one H100 and give me the chat link when the server is ready.
  • Show my servers and what they cost per hour, and stop the ones I haven't touched since yesterday.
  • Give me a top-up link for $20.

Money and safety

  • The agent cannot spend more than the balance holds: top-ups happen in the browser only.
  • Renting, starting and destroying are flagged to the client as consequential: Claude, Cursor and Codex ask for confirmation.
  • The root password stays out of answers unless the agent asks for it explicitly: your SSH keys are installed on every server.
  • The limit is 120 requests a minute per key. Renting, stopping and destroying go to the account's audit log, like API calls.

Troubleshooting

The agent says a key is required

The Authorization header did not reach the server. Check that the key starts with gpz_ and is sent as “Bearer gpz_…”, then restart the app.

Forbidden

The key lacks the scope for this action. Create a new key with the instance scopes.

The client waits for an event stream (SSE)

The server is stateless and answers POST /mcp with plain JSON. Update the client: every current version speaks Streamable HTTP.