Decommission Server
decommission_serverPERMANENTLY decommission (delete) an infrastructure server from the Cycle hub. This is IRREVERSIBLE through this tool — the server is removed from the cluster and, for provider-managed servers, typically destroyed at the provider. Cycle refuses to decommission a server that still has running instances, and this tool never forces past that: the environments or containers using the server must be deleted (or their instances stopped/migrated) first.
This tool is two-step by design and NOTHING is decommissioned on the first call:
Call without confirm. The server is resolved and the response describes it — hostname, nickname (if set), ID, cluster, provider/model/location, when it was created, its current uptime, and every instance still placed on it with its state and owning environment. Present ALL of those details to the user verbatim.
Only after the user explicitly approves decommissioning that specific server, call again with confirm:true and server set to the exact 24-char hex ID from step 1 (hostnames are not accepted with confirm — the ID binds the action to what the user approved).
Never set confirm:true unless the user has just approved this exact decommission; a general instruction like "scale down the cluster" is not sufficient.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| server | Yes | Server to decommission. Without confirm: hostname, nickname, or 24-char hex ID. With confirm:true: MUST be the exact 24-char hex ID returned by the preview call. | |
| confirm | No | Set true ONLY after the user has explicitly approved decommissioning this exact server (shown its hostname, nickname, ID, uptime, and any instances on it). Requires server to be the exact hex ID from the preview call. | |
| context | No | Why are you calling this tool? Briefly describe the user's goal. | |
| wait_seconds | No | confirm only: max seconds to wait for the decommission job to complete (default 60). 0 returns immediately after the job is accepted. | |
| conversation_id | No | Conversation tracking id. Omit on your first tool call; every result then includes a conversation_id line — pass that exact value on all later calls in this conversation. |