Skip to main content
Glama

Arrakis

Rent a GPU machine

rent_gpu
Idempotent

Rent one machine found by search_gpus. COSTS MONEY: price per GPU-hour x GPUs, paid an hour at a time from when it starts running (booting is free) until terminate_instance or termination_hours, whichever comes first; worst_case_usd in the result is the most it can cost, and balance_covers_hours says how many hours the balance pays. It rents every GPU on the machine unless gpu_count says fewer (only some hosts allow that). Pass max_price_per_gpu_hour, normally the price search_gpus showed: if the live price is higher nothing is rented and the error gives the new price. Spot machines can be taken back by their host at any time. Boots the Arrakis PyTorch image unless template_id (list_images) or a public image is given; uses ssh_public_key, else ssh_key_id, else the account's first SSH key. Returns instance_id, state, the locked price, worst_case_usd and what to do next. Calling again with the same idempotency_key, or the same node_id and name within 10 minutes, returns the same machine instead of renting a second; use a new name for a second machine.

Input Schema

NameRequiredDescriptionDefault
nameYesA name you will recognise.
imageNoOr any public image as docker pull takes it, e.g. vllm/vllm-openai:v0.11.0 or nvcr.io/nvidia/pytorch:25.01-py3 (x86-64). Checked with its registry before anything is charged. Not with template_id.
startNoWith image: idle (default) keeps the machine waiting for SSH; image runs the image's own command (server images such as vLLM). Reach a server with ssh -L 8000:localhost:8000.
node_idYesnode_id from search_gpus.
gpu_countNoGPUs to rent on that machine. Default: all of them (the whole machine); fewer works only on hosts that allow splitting.
ssh_key_idNoId of an SSH key saved on the account.
template_idNoImage to boot: an id from list_images. Default: the Arrakis PyTorch image (SSH, login banner and tools built in).
ssh_public_keyNoYour SSH public key, for example the contents of ~/.ssh/id_ed25519.pub.
idempotency_keyNoReuse when retrying.
termination_hoursYesHours until the machine is removed automatically.
max_price_per_gpu_hourNoThe most to pay per GPU-hour (USD). If the live price is higher, nothing is rented.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare the safety profile (non-readonly, open-world, idempotent, non-destructive) but say nothing about cost, and the description carries that burden in detail: hourly per-GPU billing, booting free, billing from running until terminate_instance or termination_hours, worst_case_usd as the ceiling, balance_covers_hours, and spot preemption risk. It also discloses defaults and fallback order (Arrakis PyTorch image, ssh_public_key then ssh_key_id then account's first key) and the exact idempotency window (same key, or same node_id and name within 10 minutes).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and a capitalized COSTS MONEY warning, and nearly every clause carries distinct information (billing window, price guard, spot risk, image default, SSH key fallback, idempotency). It is a single dense paragraph though, and the cost/idempotency material would scan faster as separated sentences or bullets.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter mutation with no output schema, the description covers everything an agent needs before spending money: cost model and ceiling, price-cap failure mode, spot risk, image and SSH defaults, idempotent retry semantics, and an explicit statement of what is returned (instance_id, state, locked price, worst_case_usd, next steps). Nothing material is left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description genuinely adds meaning: gpu_count defaults to the whole machine and only some hosts permit splitting, max_price_per_gpu_hour is framed as a guard rail whose violation returns the new price rather than renting, and the template_id/image/ssh-key parameters get a precedence order the schema only states per-field. It stops short of explaining termination_hours' interaction with billing beyond the stop-condition clause.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource — 'Rent one machine found by search_gpus' — and explicitly anchors it to the sibling that produces the required node_id. An agent can distinguish this from search_gpus (discovery) and deploy_model (a different provisioning path) without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit prerequisite chain (search_gpus to get node_id and price), states that max_price_per_gpu_hour should normally be the price search_gpus showed and what happens if the live price exceeds it, and tells the agent how to rent a second machine (new name) versus retrying (same idempotency_key). It also names terminate_instance and termination_hours as the two stop conditions, which is when-to-use information for the lifecycle siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources