gpu.nz GPU cloud

Rent cloud GPUs from AI agents: live prices, VRAM estimates, launch, logs and stop.

Should I use this

Quality & Safety

B
Description quality
96%
Schema completeness
84%
Naming quality
96%
Poisoning risk
40%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • HIGHTool poisoning patterns detected
  • LOWTool 'get_instance' description lacks action verbin get_instance
  • LOWTool description contains role marker that could confuse chat modelsin get_account
  • LOWTool description contains role marker that could confuse chat modelsin list_ssh_keys
  • LOWTool description contains role marker that could confuse chat modelsin add_ssh_key

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,756Tokens (tool definitions)
~1.1 KBTypical response size
Significant attention impact (2.15% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "gpu-cloud": {
      "url": "https://gpu.nz/mcp"
    }
  }
}

Remote endpoints

https://gpu.nz/mcpstreamable-http

What it can do

Tool inventory

Tools (16)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒list_gpu_models(min_vram_gb, query)

GPU models available on gpu.nz right now with VRAM, class and the cheapest hourly price per GPU. Use it to pick a gpu_slug for search_offers.

Input Schema

{
  "type": "object",
  "properties": {
    "min_vram_gb": {
      "description": "Only models with at least this much VRAM per GPU",
      "type": "number",
      "minimum": 0
    },
    "query": {
      "description": "Filter by name, e.g. \"4090\" or \"H100\"",
      "type": "string",
      "maxLength": 40
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒search_offers(gpu, num_gpus, min_vram_gb, max_price_rub_h, country, ...)

Search rentable GPU servers (offers) with live prices. Returns the cheapest matches first unless `order` says otherwise. Each result has an offer id for create_instance.

Input Schema

{
  "type": "object",
  "properties": {
    "gpu": {
      "description": "GPU model slug(s), comma-separated, e.g. \"rtx-4090-24gb\" or \"h100-sxm-80gb,h100-pcie-80gb\" (see list_gpu_models)",
      "type": "string",
      "maxLength": 200
    },
    "num_gpus": {
      "description": "GPUs per server, comma-separated, e.g. \"1\" or \"2,4,8\"",
      "type": "string",
      "maxLength": 20
    },
    "min_vram_gb": {
      "description": "Minimum VRAM per GPU, GB",
      "type": "number",
      "minimum": 0
    },
    "max_price_rub_h": {
      "description": "Maximum price for the whole server, rubles per hour",
      "type": "number",
      "minimum": 0
    },
    "country": {
      "description": "ISO-2 country codes, comma-separated, e.g. \"DE,NL,FI\"",
      "type": "string",
      "maxLength": 60
    },
    "min_reliability": {
      "description": "Minimum host reliability, 0–1 (0.98 is a good bar)",
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "verified": {
      "description": "Only verified datacenters",
      "type": "boolean"
    },
    "min_disk_gb": {
      "description": "Minimum disk the server can give, GB",
      "type": "number",
      "minimum": 0
    },
    "type": {
      "description": "on_demand (default) or interruptible (cheaper, can be preempted)",
      "type": "string",
      "enum": [
        "on_demand",
        "interruptible"
      ]
    },
    "order": {
      "description": "Sort: price (default), dlperf_per_price for value, reliability, vram, inet_down",
      "type": "string",
      "enum": [
        "price",
        "-price",
        "dlperf",
        "dlperf_per_price",
        "reliability",
        "vram",
        "inet_down"
      ]
    },
    "limit": {
      "description": "How many offers to return (default 10)",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒get_offer(offer_id)

Details and the current price of one offer by id (from search_offers).

Input Schema

{
  "type": "object",
  "properties": {
    "offer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Offer id"
    }
  },
  "required": [
    "offer_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒list_templates

Ready environments a server can start with: ComfyUI, Stable Diffusion Forge, Ollama + Open WebUI, vLLM, Jupyter/PyTorch, Kohya, FluxGym, Unsloth, chats with preloaded models, plain Ubuntu + CUDA, or a custom Docker image. Pass `slug` as `template` to create_instance.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒estimate_vram(model, precision, context_tokens, concurrent_requests)

How much GPU memory an AI model needs (LLMs such as Qwen, DeepSeek, Llama, Gemma, GPT-OSS; image and video models such as FLUX, SDXL, Wan) at a given precision and context length, and which GPUs on gpu.nz fit it with their current price. Call without `model` to list the known models.

Input Schema

{
  "type": "object",
  "properties": {
    "model": {
      "description": "Model name or id, e.g. \"qwen3-32b\", \"Llama 3.3 70B\", \"flux.1-dev\"",
      "type": "string",
      "maxLength": 80
    },
    "precision": {
      "description": "Weights precision: \"fp16\", \"fp8\", \"q8\", \"q6\", \"q5\", \"q4\" (LLMs; default q4 for LLMs, fp16 for image models)",
      "type": "string",
      "maxLength": 20
    },
    "context_tokens": {
      "description": "LLM context length in tokens (default 8192)",
      "type": "integer",
      "minimum": 512,
      "maximum": 1048576
    },
    "concurrent_requests": {
      "description": "Parallel sequences sharing the GPU (default 1)",
      "type": "integer",
      "minimum": 1,
      "maximum": 256
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒get_account

The signed-in account and its balance, hourly burn and runway. Needs a key with user:read and billing:read.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒list_instances(status)

Your rented servers with status, GPU, price and SSH command. Needs instances:read.

Input Schema

{
  "type": "object",
  "properties": {
    "status": {
      "description": "active (default): servers that are not destroyed; all: include destroyed ones",
      "type": "string",
      "enum": [
        "active",
        "all"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒get_instance(instance_id, include_password)

Status, SSH command, app URLs (ComfyUI, Jupyter, chat…), price and cost so far of one server. The root password is left out unless include_password is true (your SSH keys are installed on every server).

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Instance id"
    },
    "include_password": {
      "description": "Include the root SSH password",
      "type": "boolean"
    }
  },
  "required": [
    "instance_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
πŸ”΄create_instance(offer_id, template, disk_gb, name, type, ...)

Rents the server of an offer and starts it with a template. Billing starts right away and runs every minute until you stop or destroy it. Confirm the price with the user first. Needs instances:write. The response has the instance id; poll get_instance until status is running (usually 1–5 minutes).

Input Schema

{
  "type": "object",
  "properties": {
    "offer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Offer id from search_offers"
    },
    "template": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Template slug from list_templates, e.g. \"comfyui\", \"ollama\", \"pytorch\", \"custom\""
    },
    "disk_gb": {
      "type": "integer",
      "minimum": 10,
      "maximum": 2000,
      "description": "Disk size, GB (use the template's recommended_disk_gb)"
    },
    "name": {
      "description": "A name for the server",
      "type": "string",
      "maxLength": 60
    },
    "type": {
      "description": "on_demand (default) or interruptible",
      "type": "string",
      "enum": [
        "on_demand",
        "interruptible"
      ]
    },
    "image": {
      "description": "Docker image, only with the custom template",
      "type": "string",
      "maxLength": 300
    },
    "ssh_key_ids": {
      "description": "SSH key ids to install (default: all of yours)",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 64
      }
    },
    "idempotency_key": {
      "description": "Reuse the same value when retrying the same request, so a retry never rents twice",
      "type": "string",
      "maxLength": 64
    }
  },
  "required": [
    "offer_id",
    "template",
    "disk_gb"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
βšͺstop_instance(instance_id)

Stops a running server: the GPU is released and billing drops to the disk only. Data on the disk is kept and the server can be started again (the GPU may then be taken by someone else; gpu.nz finds a replacement when it is). Needs instances:write.

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Instance id"
    }
  },
  "required": [
    "instance_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
βšͺstart_instance(instance_id)

Starts a stopped server again; GPU billing resumes. Confirm with the user. Needs instances:write.

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Instance id"
    }
  },
  "required": [
    "instance_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
πŸ”΄destroy_instance(instance_id)

Destroys a server and deletes its disk for good; billing stops completely. Irreversible: confirm with the user. Needs instances:write.

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Instance id"
    }
  },
  "required": [
    "instance_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒get_instance_logs(instance_id, tail)

The last lines of a server's container log: boot progress, app start-up, errors. Needs instances:read.

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "Instance id"
    },
    "tail": {
      "description": "How many last lines (default 200)",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "required": [
    "instance_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒list_ssh_keys

SSH public keys on the account; they are installed on new servers. Needs user:read.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟑add_ssh_key(public_key, name)

Adds an SSH public key (a line from a .pub file) to the account. Needs user:write.

Input Schema

{
  "type": "object",
  "properties": {
    "public_key": {
      "type": "string",
      "minLength": 20,
      "maxLength": 16000,
      "description": "The public key line, e.g. ssh-ed25519 AAAA… you@laptop"
    },
    "name": {
      "description": "A name for the key",
      "type": "string",
      "maxLength": 60
    }
  },
  "required": [
    "public_key"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒topup_link(amount, language)

A link to the balance top-up page (SBP, crypto) for the user to open in a browser; payments never happen through the API. Optionally pre-fills the amount.

Input Schema

{
  "type": "object",
  "properties": {
    "amount": {
      "description": "Amount in the account currency (rubles by default)",
      "type": "integer",
      "minimum": 1,
      "maximum": 10000000
    },
    "language": {
      "description": "Page language (default ru)",
      "type": "string",
      "enum": [
        "ru",
        "en"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded16 tools