Create a GPU cluster
create_clusterCreate 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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Cluster name: 1 to 63 letters, digits or hyphens, starting with a letter or digit. Nodes are named <name>-<rank> | |
| stack | Yes | Software 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_id | Yes | offer_id from cluster_offers | |
| workspace | No | Workspace ID (optional: defaults to the authenticated workspace) | |
| node_count | Yes | Number of machines, within the offer's min_nodes and max_nodes (and one of allowed_node_counts when it has them) | |
| storage_id | No | Volume ID from list_volumes, synced into /shared/volume on the head (optional; not on community hosts) | |
| environment | No | Environment name (optional: defaults to the environment this session acts in) | |
| ssh_key_ids | No | SSH key IDs from list_ssh_keys (optional: keyless SSH always works) | |
| idempotency_key | No | Optional: the same key returns the cluster it created instead of creating another. Derived from this call when left out. | |
| include_community | No | Pass true when the offer came from cluster_offers with include_community |