Skip to main content
Glama

scale_workers

Scale the workers of an Ankra-provisioned self-managed cluster (Hetzner, OVH, UpCloud, DigitalOcean, Scaleway, Proxmox VE, or HPE Morpheus). With node_group_name, scales that node group to worker_count (0-100; the target is clamped into the group's autoscaling bounds when autoscaling is enabled); without it, performs the legacy whole-cluster scale to worker_count (1-10; refused while any node group has autoscaling enabled - scale the group directly instead). The cluster must be online and free of in-progress operations. New workers provision in the background. On scale-down the highest-index workers drain one at a time through the eviction API, honouring PodDisruptionBudgets, and are then terminated; a worker whose drain a PodDisruptionBudget refuses is kept in service and the scale-down is withdrawn for it, so the group can settle above worker_count. Call list_node_groups first to see the current counts, and again afterwards to confirm them.

Input Schema

NameRequiredDescriptionDefault
countNoAlias for worker_count.
cluster_idNoUUID of the target cluster. Optional when a cluster is selected.
force_drainNoScale-down only. Remove the workers without honouring PodDisruptionBudgets: each is drained the way a cluster teardown drains it, and removed even when its drain is refused or the node is unreachable. Off by default: a scale-down drains each worker through its budgets and keeps a worker whose drain is refused. Set it only when the user explicitly asks to remove a worker anyway - for example a dead worker, or one a budget keeps refusing - never on your own.
cluster_nameNoExact name of the target cluster. Optional when a cluster is selected.
worker_countNoDesired worker count. Required ('count' is accepted as an alias).
node_group_nameNoNode group to scale (from list_node_groups). Omit for the legacy whole-cluster scale.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses that new workers provision in the background, that scale-down drains highest-index workers one at a time through the eviction API honouring PodDisruptionBudgets, and that a PDB-refused drain withdraws the scale-down so the group can settle above worker_count. These are non-obvious operational traits the schema and the not-read-only/not-idempotent hints do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the primary purpose before the mode split and edge cases. Dense but nearly every clause carries distinct, decision-relevant information; the drain/PDB sentence is long but earns its place given no output schema exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema this is complete: it covers mode selection, bounds, autoscaling interaction, preconditions, asynchronous provisioning, and how to verify results via list_node_groups. An agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: the autoscaling clamp of worker_count into the group's bounds, the 1-10 legacy limit, and the operational role of node_group_name. It could still say more about force_drain, but the schema already documents that parameter well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (scale) and resource (workers) and immediately splits the two modes: node-group scaling with node_group_name vs. the legacy whole-cluster scale without it. This lets an agent distinguish it from neighbours such as update_node_group, add_node_group, scale_deployment, and scale_statefulset without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use rules, including the exclusion ('refused while any node group has autoscaling enabled - scale the group directly instead') and directs the agent to call list_node_groups first and again afterwards. It also lists preconditions (cluster online, no in-progress operations).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources