Grids
Compose and manage the grids that apps target for dedicated capacity.
Compose and manage the grids that apps target for dedicated capacity.
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.
Only organization admins create and manage grids. Developers can deploy to accessible grids; viewers can inspect them. Grid quota policies are configured in the portal, not through these public actions. Quotas count apps, running containers and GPUs against the app’s creator.
list_grids
List the grids the caller can see: the organization's, then those shared with it
Group: grids · Behavior: Read
Compact tool: grids · Action: list_grids
MCP annotations: readOnlyHint: true · destructiveHint: false · idempotentHint: true · openWorldHint: false
Permissions and REST equivalents
grids.list
GET /grids
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
grids(array<object>): See the complete response schema below.nextCursor(string or null): Pass as cursor to fetch the next page; null on the last page
Operation-specific errors: 400 org_required, 403 key_project_restricted.
create_grid
Create a grid in the organization (admins), optionally with servers attached
Group: grids · Behavior: Write
Compact tool: grids_write · Action: create_grid
MCP annotations: readOnlyHint: false · destructiveHint: false · idempotentHint: false · openWorldHint: false
Permissions and REST equivalents
grids.create
POST /grids
pools:write
Arguments
name
string
Yes
Grid name
visibility
"private" / "org"
No
Who in the organization can see and deploy to it; private by default
volumes
array<object>
No
Shared volumes available to apps on the grid; replaces the stored list
networks
array<object>
No
Networks available to apps on the grid; replaces the stored list
nodes
array<string>
No
Addresses of servers to attach
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
id(string): Grid idname(string): See the complete response schema below.org(object): The organization that owns itaccess(object): See the complete response schema below.visibility("private" / "org"): private: admins, its creator and the people added; org: everyone in the organizationcreatedBy(object or null): Who created it. Null when nobody is on record, for another organization's, and for a credential without members:readnodes(array<string>): Addresses of the servers in the gridautoCreated(boolean): Created by the platform rather than the userpriorityMode("absolute" / "weighted"): How app priorities apply when the grid is contendedneedsReconciliation(boolean): Membership changes are still being appliedvolumes(array<object>): See the complete response schema below.networks(array<object>): See the complete response schema below.warning(string or null): Set when the grid was created but a follow-up step failed
Operation-specific errors: 400 org_required, 403 key_project_restricted.
update_grid
Change a grid's settings, visibility, membership or priority mode (admins). Membership changes are explicit lists of servers to add and to remove.
Group: grids · Behavior: Write
Compact tool: grids_write · Action: update_grid
MCP annotations: readOnlyHint: false · destructiveHint: true · idempotentHint: true · openWorldHint: false
Permissions and REST equivalents
grids.update
PATCH /grids/{gridId}
pools:write
Arguments
name
string
No
Grid name
visibility
"private" / "org"
No
private: admins, its creator and the people added; org: everyone in the organization
volumes
array<object>
No
Shared volumes available to apps on the grid; replaces the stored list
networks
array<object>
No
Networks available to apps on the grid; replaces the stored list
addNodes
array<string>
No
Servers to add to the grid
removeNodes
array<string>
No
Servers to remove from the grid
priorityMode
"absolute" / "weighted"
No
How app priorities apply when the grid is contended
gridId
string
Yes
Grid id
Result
id(string): Grid idname(string): See the complete response schema below.org(object): The organization that owns itaccess(object): See the complete response schema below.visibility("private" / "org"): private: admins, its creator and the people added; org: everyone in the organizationcreatedBy(object or null): Who created it. Null when nobody is on record, for another organization's, and for a credential without members:readnodes(array<string>): Addresses of the servers in the gridautoCreated(boolean): Created by the platform rather than the userpriorityMode("absolute" / "weighted"): How app priorities apply when the grid is contendedneedsReconciliation(boolean): Membership changes are still being appliedvolumes(array<object>): See the complete response schema below.networks(array<object>): See the complete response schema below.
set_server_priority
Set a grid member's scheduling priority, -100 to 100. Higher wins when the grid is contended; -100 means backup only. Admins of the grid's organization.
Group: grids · Behavior: Write
Compact tool: grids_write · Action: set_server_priority
MCP annotations: readOnlyHint: false · destructiveHint: true · idempotentHint: true · openWorldHint: false
Permissions and REST equivalents
grids.servers.setPriority
PATCH /grids/{gridId}/servers/{address}
pools:write
Arguments
priority
integer
Yes
-100 (backup only) to 100
gridId
string
Yes
Grid id
address
string
Yes
Server address; must be a member of the grid
Result
gridId(string): See the complete response schema below.address(string): See the complete response schema below.priority(integer): See the complete response schema below.
control_grid_app
Start or stop an app on a grid as an admin of the grid's organization. No role on the app is needed (action=start or stop); its creator is notified with the reason. Starting bills the app's organization.
Group: grids · Behavior: Write
Compact tool: grids_write · Action: control_grid_app
MCP annotations: readOnlyHint: false · destructiveHint: true · idempotentHint: false · openWorldHint: true
Permissions and REST equivalents
grids.apps.start
POST /grids/{gridId}/apps/{appGuid}/start
pools:write, compute:spend
grids.apps.stop
POST /grids/{gridId}/apps/{appGuid}/stop
pools:write
Arguments
action
"start" / "stop"
Yes
What to do
gridId
string
Yes
Grid id
appGuid
string
Yes
Runtime identifier of the app (guid on list_apps, get_server)
reason
string
No
Shown to the app's creator in their notification
Result
grids.apps.start
gridId(string): See the complete response schema below.appGuid(string): See the complete response schema below.appId(string or null): The app's id when it is known to the portalappName(string or null): See the complete response schema below.
Operation-specific errors: 403 forbidden, 409 app_not_on_grid. grids.apps.stop
gridId(string): See the complete response schema below.appGuid(string): See the complete response schema below.appId(string or null): The app's id when it is known to the portalappName(string or null): See the complete response schema below.
Operation-specific errors: 403 forbidden, 409 app_not_on_grid.
delete_grid
Delete a grid (admins). Its servers are kept; sharing grants and invitations are retired.
Group: grids · Behavior: Write
Compact tool: grids_write · Action: delete_grid
MCP annotations: readOnlyHint: false · destructiveHint: true · idempotentHint: false · openWorldHint: false
Requires confirm: true for this irreversible action.
Permissions and REST equivalents
grids.delete
DELETE /grids/{gridId}
pools:admin
Arguments
gridId
string
Yes
Grid id
confirm
true
Yes
Must be true: this action cannot be undone
Result
id(string): Id of the deleted griddeleted(true): See the complete response schema below.
Was this helpful?
