Servers and orders
Order dedicated machines, follow progress and manage power and replacement.
Order dedicated machines, follow progress and manage power and replacement.
These are action names. In default compact mode, call the indicated group tool with {"action":"<action-name>","params":{...}}; the arguments below go inside params. In ?mode=all, call the action name directly with those arguments. browse_github and read_docs are direct tools in both modes. Expand each schema for nested fields, enum values and validation constraints. Successful results are JSON in both text content and structuredContent; failures use isError and structuredContent.error.
Use name as the server display label and address as its stable identifier. A caller-defined name takes precedence. Rented marketplace machines otherwise use hardware, Kinesis region and an address suffix, for example H100 80GB in US West #a1b2. Their hostname, csp, region, zone and instanceType are null; use kcRegion for the Kinesis region.
list_servers
List the organization's servers, those it rents, and pending orders. A shared grid's servers count as usable
Group: servers · Behavior: Read
Compact tool: servers · Action: list_servers
MCP annotations: readOnlyHint: true · destructiveHint: false · idempotentHint: true · openWorldHint: false
Permissions and REST equivalents
servers.list
GET /servers
pools:read
Arguments
limit
integer
No
Items per page, 1 to 200 (default 50)
cursor
string
No
nextCursor from the previous page; omit for the first page
org
string
No
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Result
servers(array<object>): One page of servers, by addressnextCursor(string or null): Pass as cursor to fetch the next page; null on the last pagepending(array<object>): Provisioning orders that have not produced a server yet; complete on every page
Operation-specific errors: 400 org_required, 403 key_project_restricted.
get_server
Get one server: specs, utilization, apps, grids and provisioning order. Its own organization also sees its public address
Group: servers · Behavior: Read
Compact tool: servers · Action: get_server
MCP annotations: readOnlyHint: true · destructiveHint: false · idempotentHint: true · openWorldHint: false
Permissions and REST equivalents
servers.get
GET /servers/{address}
pools:read
Arguments
address
string
Yes
Server address
org
string
No
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Result
address(string): Server (node) addressname(string or null): Display name: the caller's own name for the server when set; else, for a server rented from the marketplace, its hardware and Kinesis region; else the hostnamehostname(string or null): Null for servers rented from the marketplacecsp(string or null): Cloud provider; null for servers rented from the marketplaceregion(string or null): Provider region; null for servers rented from the marketplacezone(string or null): Provider zone; null for servers rented from the marketplaceinstanceType(string or null): Provider instance type; null for servers rented from the marketplacekcRegion(string or null): Kinesis region the server serves, e.g. us-westowned(boolean): The organization owns this server (false for servers seen through a shared grid)ownerName(string or null): The organization that owns it; null for rented serversstate(string): See the complete response schema below.hibernation(string): active, hibernated, hibernating or wakinglastPulseAt(string or null): See the complete response schema below.specs(object): See the complete response schema below.utilization(object): Percentages from the last pulserunningApps(integer): See the complete response schema below.lease(object or null): Spot lease, for servers rented from the marketplaceprovisionStatus(string or null): Provisioning order status while the server is being createdcreatedAt(string or null): See the complete response schema below.ipAddress(string or null): Public address; null unless the server belongs to the selected organizationversion(string or null): Agent version the server runscountryCode(string or null): See the complete response schema below.autoWakeup(boolean): The platform wakes the server when an app needs itgridIds(array<string>): Grids the server belongs to, among those the caller can seeapps(array<object>): Apps placed on the server and their container state thereorder(object or null): The provisioning order behind a Kinesis-provisioned server; null for an attached machine
Operation-specific errors: 400 org_required, 403 key_project_restricted.
get_server_logs
Read the newest lines of a server's own logs. Agent, runtime health, installation and GPU setup, for one of the organization's servers. Narrow the window with since and until; lines come back oldest to newest.
Group: servers · Behavior: Read
Compact tool: servers · Action: get_server_logs
MCP annotations: readOnlyHint: true · destructiveHint: false · idempotentHint: true · openWorldHint: false
Permissions and REST equivalents
servers.logs
GET /servers/{address}/logs
monitoring:read
Arguments
address
string
Yes
Server address
since
string
No
Earliest line to include; omit for no lower bound
until
string
No
Latest line to include; omit for now
limit
integer
No
Newest lines to return within the window, 500 by default
org
string
No
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Result
logs(array<object>): Oldest to newest; the last line is the most recenttruncated(boolean): The window holds more lines than limit; the oldest were dropped (pass until to read further back)
Operation-specific errors: 400 org_required, 403 key_project_restricted.
provision_servers
Order dedicated servers from a cloud provider. Billing starts once they come up. Checks the quota and the balance first. Set dryRun to get the cost estimate without ordering; use browse_catalog for the region and instance type ids. Returns an order; poll get_provision_order until done.
Group: servers · Behavior: Write
Compact tool: servers_write · Action: provision_servers
MCP annotations: readOnlyHint: false · destructiveHint: false · idempotentHint: false · openWorldHint: false
Permissions and REST equivalents
servers.provision
POST /servers/provision
pools:write, compute:spend
Arguments
csp
"kinesis" / "aws" / "azure"
Yes
Cloud provider
region
string
Yes
Provider region id (see catalog.regions)
zone
string
No
Availability zone; omit to let the provider choose
instanceType
string
Yes
Instance type id (see catalog.instanceTypes)
count
integer
No
Servers to order, 1 to 10 (default 1)
storageSizeGb
integer
No
Disk per server in GB, 50 to 10000; required unless useEphemeralSsd is set
useEphemeralSsd
boolean
No
Use the bundled local SSD instead of a network volume (supported non-hibernatable Kinesis compute configurations only)
gridIds
array<string>
No
Grids the servers join once they register
dryRun
boolean
No
Run every check and return the estimate without ordering
idempotencyKey
string
No
Unique string without whitespace; send the same one with the same arguments when retrying after a timeout, and the original result comes back instead of acting twice
org
string
No
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Result
dryRun(boolean): See the complete response schema below.csp(string): See the complete response schema below.region(string): See the complete response schema below.instanceType(string): See the complete response schema below.count(integer): See the complete response schema below.estimate(object): See the complete response schema below.orders(array<object>): Empty for a dry run
Operation-specific errors: 402 insufficient_balance, 403 provision_quota, 400 no_provider_for_region, 400 ephemeral_ssd_unavailable, 400 org_required, 403 key_project_restricted.
deprovision_servers
Destroy dedicated servers. They leave every grid first. Irreversible.
Group: servers · Behavior: Write
Compact tool: servers_write · Action: deprovision_servers
MCP annotations: readOnlyHint: false · destructiveHint: true · idempotentHint: false · openWorldHint: false
Requires confirm: true for this irreversible action.
Permissions and REST equivalents
servers.deprovision
POST /servers/deprovision
pools:write
Arguments
addresses
array<string>
Yes
Server addresses, at most 50
confirm
true
Yes
Must be true: this action cannot be undone
org
string
No
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Result
results(array<object>): One entry per requested server
Operation-specific errors: 400 org_required, 403 key_project_restricted.
power_servers
Change the power state of the organization’s servers (admins). hibernate stops the machine and its compute billing but keeps its disk; wake starts a hibernated machine again (fails with out_of_stock when the provider has no capacity; retry later); reboot restarts a running machine.
Group: servers · Behavior: Write
Compact tool: servers_write · Action: power_servers
MCP annotations: readOnlyHint: false · destructiveHint: true · idempotentHint: false · openWorldHint: false
Permissions and REST equivalents
servers.hibernate
POST /servers/hibernate
pools:write
servers.wake
POST /servers/wake
pools:write, compute:spend
servers.reboot
POST /servers/reboot
pools:write
Arguments
action
"hibernate" / "wake" / "reboot"
Yes
Power action to apply
addresses
array<string>
Yes
Server addresses, at most 50
org
string
No
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Result
servers.hibernate
results(array<object>): One entry per requested server; ok means the request was accepted, the state change is asynchronous
Operation-specific errors: 400 org_required, 403 key_project_restricted. servers.wake
results(array<object>): One entry per requested server; ok means the request was accepted, the state change is asynchronous
Operation-specific errors: 400 org_required, 403 key_project_restricted. servers.reboot
results(array<object>): One entry per requested server
Operation-specific errors: 400 org_required, 403 key_project_restricted.
replace_server
Provision an identical server and retire this one once the new one is up. The retired server's disk is not kept. Poll servers.orders.get with the returned order id to follow the replacement.
Group: servers · Behavior: Write
Compact tool: servers_write · Action: replace_server
MCP annotations: readOnlyHint: false · destructiveHint: true · idempotentHint: false · openWorldHint: false
Requires confirm: true for this irreversible action.
Permissions and REST equivalents
servers.replace
POST /servers/{address}/replace
pools:write, compute:spend
Arguments
address
string
Yes
Address of the server to replace
confirm
true
Yes
Must be true: this action cannot be undone
idempotencyKey
string
No
Unique string without whitespace; send the same one with the same arguments when retrying after a timeout, and the original result comes back instead of acting twice
org
string
No
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Result
order(object or null): The resulting order, when the backend returned one
Operation-specific errors: 400 org_required, 403 key_project_restricted.
get_provision_order
Get a provisioning order the caller placed and the machines it has produced. Completed, replacement and dismissed orders are readable too. Poll this after servers.provision or servers.replace until done.
Group: servers · Behavior: Read
Compact tool: servers · Action: get_provision_order
MCP annotations: readOnlyHint: true · destructiveHint: false · idempotentHint: true · openWorldHint: false
Permissions and REST equivalents
servers.orders.get
GET /servers/orders/{orderId}
pools:read
Arguments
orderId
string
Yes
Provisioning order id
org
string
No
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Result
order(object): See the complete response schema below.instances(array<object>): One entry per machine in the order; address is set once the machine has registereddone(boolean): The order reached a terminal state: complete, failed or cancelled
Operation-specific errors: 400 org_required, 403 key_project_restricted.
manage_provision_order
Retry a failed provisioning order, or dismiss one. retry re-runs a failed order (see get_provision_order, or list_servers under pending); dismiss cancels an in-flight order or hides a finished one from the pending list.
Group: servers · Behavior: Write
Compact tool: servers_write · Action: manage_provision_order
MCP annotations: readOnlyHint: false · destructiveHint: true · idempotentHint: false · openWorldHint: false
Permissions and REST equivalents
servers.orders.retry
POST /servers/orders/{orderId}/retry
pools:write, compute:spend
servers.orders.dismiss
POST /servers/orders/{orderId}/dismiss
pools:write
Arguments
action
"retry" / "dismiss"
Yes
What to do with the order
orderId
string
Yes
Provisioning order id
org
string
No
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Result
servers.orders.retry
order(object or null): The resulting order, when the backend returned one
Operation-specific errors: 409 provision_order_failed, 400 org_required, 403 key_project_restricted. servers.orders.dismiss
orderId(string): See the complete response schema below.dismissed(true): See the complete response schema below.
Operation-specific errors: 409 provision_order_failed, 400 org_required, 403 key_project_restricted.
Was this helpful?
