Skip to main content
Glama

Create a GPU cluster

create_cluster
Destructive

Create a GPU cluster: node_count machines with the same GPUs on one private network, with SSH between them, a /shared folder on every node (not on container machines), and optionally Slurm, Kubernetes or Ray installed across them. It suits work that spreads over several machines; one machine is create_instance. Needs an offer_id from cluster_offers. A cluster is all or nothing: every machine starts or none does, and nothing is billed for a cluster that could not start. Billing starts when every machine is up, at hourly_rate_per_node for each machine (hourly_rate for the whole cluster), and runs until delete_cluster; there is no auto stop. The balance must cover one hour of the whole cluster, at least $10. Returns the cluster with status provisioning; get_cluster shows status ready once it is up (installing while the software installs). Errors: an offer that is gone, or that cannot run this stack or volume, lists the current offers (ask the user before picking another); no capacity means nothing was created. If the environment has reached its monthly budget the launch fails: do not retry, tell the user.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "name": "<name>",
      "offer_id": "<offer_id>",
      "node_count": "<node_count>",
      "stack": "<stack>"
    },
    "name": "create_cluster"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYesCluster name: 1 to 63 letters, digits or hyphens, starting with a letter or digit. Nodes are named <name>-<rank>
stackYesSoftware across the nodes: none (SSH, hostfile and torchrun only), slurm (sbatch and srun), kubernetes (k3s with GPU scheduling) or ray. Must be one of the offer's stacks
offer_idYesoffer_id from cluster_offers
workspaceNoWorkspace ID (optional: defaults to the authenticated workspace)
node_countYesNumber of machines, within the offer's min_nodes and max_nodes (and one of allowed_node_counts when it has them)
storage_idNoVolume ID from list_volumes, synced into /shared/volume on the head (optional; not on community hosts)
environmentNoEnvironment name (optional: defaults to the environment this session acts in)
ssh_key_idsNoSSH key IDs from list_ssh_keys (optional: keyless SSH always works)
idempotency_keyNoOptional: the same key returns the cluster it created instead of creating another. Derived from this call when left out.
include_communityNoPass true when the offer came from cluster_offers with include_community

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (destructive/openWorld/non-idempotent), the description discloses all-or-nothing provisioning, that nothing is billed for a cluster that fails to start, exactly when billing begins and at what rate, that there is no auto stop, the minimum balance requirement, and the lifecycle from provisioning to ready/installing. That is precisely the mutation-cost context annotations cannot carry.

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?

It is front-loaded with the definition, then prerequisites, billing, return status and errors in a logical order, and every sentence carries actionable information. It is a dense single block, however, and a few clauses (rates, balance minimum) could be broken out for faster scanning.

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 a 10-parameter, non-idempotent, destructive creation tool with no output schema, the description covers prerequisites, cost model, failure semantics, the returned status value, and the follow-up call (get_cluster) that confirms readiness. Nothing an agent needs to call it safely is missing.

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; the description still adds value by sourcing offer_id from cluster_offers and clarifying that the /shared folder exists on every node but not on container machines, a caveat absent from the schema's storage_id text. It adds modest rather than decisive meaning over the well-documented schema.

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?

The opening sentence names a specific verb and resource and defines the object precisely: 'node_count machines with the same GPUs on one private network, with SSH between them, a /shared folder on every node... and optionally Slurm, Kubernetes or Ray.' It also explicitly distinguishes itself from the sibling create_instance ('one machine is create_instance'), so an agent can route without opening either 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?

It states when to use it ('work that spreads over several machines'), names the alternative and its selecting condition (create_instance for one machine), and gives the prerequisite (an offer_id from cluster_offers). It goes further with conditional guidance on error paths: ask the user before picking another offer, and do not retry when the monthly budget is exhausted.

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.