Configure a Server
configure_serverChange the host-level configuration of a Cycle server: its nickname, its tags (the labels containers target through constraints.node.tags), what it allows (pool: containers with no tags; services: environment service containers; overcommit: CPU shares beyond the hardware, by overcommit_multiple), its base volume size (the space reserved for images; grows only, never shrinks), whether it accepts SSH and SFTP connections (SFTP is required for container volumes with remote access), whether gateway services may run on it, and the shared file systems it exposes to containers. Shared file systems come in two kinds, each under an identifier: a shared DIRECTORY on the host, and a shared MOUNT that attaches an external file system (NFS, EFS, ...) with a type, mount options, and source. Containers mount an identifier via shared_file_systems on deploy_application or reconfigure_container; this tool is the server half only.
Nickname, tags, and allow apply immediately in one update with no job; tags are a complete replacement set, allow merges the passed flags over the current ones. Cycle applies features and shared file systems as two separate jobs, each replacing that whole group: the tool reads the current values, lays the fields you pass over them, and submits the full result, so anything you don't pass keeps its value. Shared file system directories and mounts are added (or replace an existing identifier); remove drops identifiers. Mount type, options, and source go to the host's mount verbatim, and a source the host cannot reach fails that job. Reconfiguring does not restart the server.
Always call with preview:true first: it returns the server's current tags, allow flags, features and shared file systems, the field-by-field change list, the containers across the hub whose placement constraints reference a tag being removed ('constrained_by'), and for every identifier being removed or replaced the containers that mount it ('mounted_by'). With nothing to change, preview is a read of the server's configuration. Confirm with the user, then call again without preview. Steps run the update (nickname, tags, allow) first, then features, then shared file systems, and stop at the first failure; read 'steps' rather than assuming all-or-nothing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ssh | No | Accept incoming SSH connections to the server. | |
| sftp | No | Accept incoming SFTP connections for container volumes with remote access. | |
| tags | No | Complete replacement tag list, e.g. ['vultr', 'gpu'] — pass every tag wanted; [] removes them all. Containers target tags via constraints.node.tags, and a removed tag leaves containers that require it with one less eligible server. | |
| allow | No | Placement permissions, merged over the current flags. | |
| server | Yes | Server to configure: hostname, nickname, or 24-char hex ID. | |
| context | No | Why are you calling this tool? Briefly describe the user's goal. | |
| gateway | No | Gateway service type the server may run, or 'none' to disallow gateway services. 'static' is what Cycle currently implements; 'bgp' only where the provider supports it natively. | |
| preview | No | Return the current configuration and the change list without applying anything. Always run this first. | |
| nickname | No | Custom name for identification; does not change the hostname. Empty string clears it. | |
| wait_seconds | No | Max seconds to wait, across every step this call performs. 0 returns as soon as the jobs are accepted. | |
| base_volume_gb | No | New base volume size in GB. Must be larger than the current size. | |
| 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. | |
| shared_file_systems | No | Shared file systems to add, replace, or remove on this server. |