Skip to main content
Glama

Update a Workload

update_workload
DestructiveIdempotent

Update an existing workload (PATCH semantics — only specified fields change). Workload type and name are IMMUTABLE: trying to change either via update fails — those require delete + recreate. If the target is a CRON workload, patch its schedule / job policy / suspend / capacityAI / containers here (autoscaling/timeoutSeconds/debug do not apply to cron and are rejected); schedule/job fields are likewise rejected against a non-cron workload. Call get_resource (kind="workload") first to capture current state so a rollback exists. Avoid silent downgrades (probes, autoscaling) — see the production-grade defaults in get_cpln_rules. Advanced spec sections (loadBalancer, sidecar, extras, localOptions, rolloutOptions, securityOptions, requestRetryPolicy) are NOT here — use the matching configure_workload_* tool. Recommended reading before first use: get_cpln_skill("workload") — the runbook for this tool family (read once per session).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
gvcYesGVC slug (lowercase kebab-case). Use the GVC the user named; otherwise discover with list_resources (kind="gvc") and let them choose — never guess (a wrong GVC targets the wrong environment).
orgYesOrganization slug (lowercase kebab-case). NEVER guess — if the user has not named one, ask. On org-not-found, stop and ask; do not retry variants.
nameYesWorkload name (lowercase kebab-case, must start with a letter, max 49 chars, cannot end with -headless). The name is IMMUTABLE — "renaming" requires delete + recreate (loses public URL, internal DNS, policy targetLinks).
tagsNoAdd or update tags without replacing the full set. Submit an empty list to clear all tags.
debugNoEnable or disable spec.defaultOptions.debug. Not valid for a cron workload.
publicNoConvenience shortcut: opens the external firewall BOTH ways — inbound 0.0.0.0/0 AND outbound 0.0.0.0/0. Mutually exclusive with firewallConfig (an explicit firewallConfig overrides it).
suspendNoEnable or disable spec.defaultOptions.suspend (for a cron workload, pauses/resumes scheduled runs)
scheduleNoNew cron schedule (NUMERIC 5-field expression, e.g. "0 */6 * * *" — no macros or day/month names). Only valid when the target workload is type "cron".
capacityAINoEnable or disable spec.defaultOptions.capacityAI — applies to every type (default ON for serverless/standard/cron; on cron the new reservation takes effect at the next scheduled run). Explicit true is rejected with the cpu metric and with GPUs.
containersNoOptional container patches, merged by required `name` into existing containers. Minimal patch item is { "name": "app" }; other containers are preserved. Set only fields you want to change. An unknown name ADDS a new container and must include image.
autoscalingNoAutoscaling patch → merged key-by-key into spec.defaultOptions.autoscaling.
descriptionNoUpdate workload description
historyLimitNoNumber of completed job instances to retain (default 5)
identityLinkNoIdentity link granting 3rd-party cloud resource access, e.g. //identity/my-id
removeTagKeysNoTag keys to remove from the resource.
restartPolicyNoWhat to do when a job instance fails
firewallConfigNoReplace the firewall config wholesale.
timeoutSecondsNoSet spec.defaultOptions.timeoutSeconds — max request duration (platform default 5s; serverless caps at 600)
concurrencyPolicyNoWhat to do when a run is due while a prior run is still active (default Forbid)
removeIdentityLinkNotrue deletes spec.identityLink, revoking the cloud/secret access it granted.
supportDynamicTagsNoEnable or disable spec.supportDynamicTags (detects image digest changes)
activeDeadlineSecondsNoMax seconds to wait for the job to complete before it is stopped

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYesWhether the call succeeded.
dataNoThe full machine-readable result — list rows, the resource object, query results. Read THIS, not just the summary.
summaryYesOne-line summary of the result.
nextStepsNoRecommended follow-up actions for this task, in order.

TDQS

A4.9/5.0
Behavior5/5

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

Despite annotations already declaring destructiveHint=true and readOnlyHint=false, the description adds substantial value: PATCH merge semantics, immutable name/type (with failure outcome 'update fails'), cron-field rejection, rollback advice, and explicit out-of-scope list. No contradiction with annotations.

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

Conciseness5/5

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

Front-loaded with the most important fact (PATCH semantics) and every subsequent sentence earns its place: immutability, cron rules, rollback, scope exclusions, and learning resources. Dense but not a single wasted word for a 22-parameter tool with this complexity.

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 tool this complex (22 params, 3 required, cron/autoscaling/firewall nuances), the description is remarkably complete for its purpose: it doesn't restate parameters (output schema exists) but instead routes to get_cpln_skill('workload') runbook, get_cpln_rules for defaults, configure_workload_* for advanced sections, and get_resource for rollback safety — exactly the missing context an agent needs.

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% with rich per-parameter descriptions, so baseline is 3. The description adds value above baseline by explaining cross-parameter applicability (autoscaling/timeoutSeconds/debug rejected on cron, schedule rejected on non-cron) and the merge-by-name container strategy that frames how all params behave. Slight deduction because the bulk of per-param meaning still lives in the schema, which is appropriate.

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?

The description opens with a specific verb+resource ('Update an existing workload') immediately clarifies PATCH semantics (only specified fields change), and distinguishes itself from configure_workload_* and create_workload. The immutability disclosure (type/name require delete+recreate) and cron-specific behavior sharply separate it from siblings.

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?

Explicitly names alternatives: configure_workload_* for advanced spec sections, get_resource(kind='workload') for state capture/rollback, get_cpln_rules for production defaults, and get_cpln_skill('workload') as the runbook. Also gives field-applicability rules for cron vs non-cron. This is exemplary when/when-not guidance.

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.

TDQS

A4.1/5.0
Disambiguation5/5

Every tool targets a distinct resource/action pair (e.g., get_resource vs get_resource_schema, list_deployments vs list_workload_replicas) and descriptions clearly differentiate purposes. No two tools appear to do the same thing.

Naming Consistency5/5

All tools follow a verb_noun snake_case pattern (create_gvc, update_workload, list_resources, query_metrics) with consistent verbs. The few imperative verbs (browse, build, mount) still maintain the same verb-first structure.

Tool Count1/5

With 55 tools, this server far exceeds the typical well-scoped 3-15 tool range. While each tool appears purposeful, the sheer number creates selection overhead and falls into the extreme 50+ category on the rubric.

Completeness4/5

The surface covers nearly the full Control Plane lifecycle: CRUD for GVC, workload, identity, policy, volumeset, and domain, plus observability, templates, image builds, and Terraform. Minor gaps include referenced but missing configure_workload_* tools and no secret creation/deletion (by design).