Skip to main content
Glama

Update delivery

update_delivery
Destructive

Edit a delivery's own record (name, rationale, summary, ship date) and add or remove its batches. Only supplied fields change; pass an empty string to clear a text field. addBatchIds puts ready batches that no delivery carries into this one, and removeBatchIds takes batches out of it; every other batch stays. Take a batch out of its current delivery before adding it to another. shippedAt corrects when it shipped (ISO date or date-time, not in the future). The name is a free-form label and must stay non-empty and unique within its project. Returns the delivery's resulting batches. At a workflow run's Delivery stage, adding every ready Batch of the run to one existing Delivery completes the stage instead of create_delivery. In a run of a workflow that starts at Delivery, adding any ready Batch no delivery carries to an existing Delivery completes the stage.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesId of the Delivery.
nameNoNew Delivery name, a free-form label.
metricsNoOptional client measurements, stored on the workflow step this call completes.
summaryNoWhat shipped; an empty string clears it.
rationaleNoWhy the Delivery exists; an empty string clears it.
shippedAtNoShip date, as an ISO date or date-time.
addBatchIdsNoReady Batches to add.
removeBatchIdsNoBatches to take out.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / name
      Added value: +{
      +  "description": "New Delivery name, a free-form label.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • removedInput schema / properties / version
      Removed value: -{
      -  "description": "Version label, such as 2.4.0.",
      -  "minLength": 1,
      -  "type": "string"
      -}
  2. Changed4 schema fields changed
    • addedInput schema / properties / addBatchIds
      Added value: +{
      +  "description": "Ready Batches to add.",
      +  "items": {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / batchIds
      Removed value: -{
      -  "description": "Full replacement set of Batches.",
      -  "items": {
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedInput schema / properties / metrics
      Added value: +{
      +  "description": "Optional client measurements, stored on the workflow step this call completes.",
      +  "properties": {
      +    "durationMs": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "inputTokens": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "model": {
      +      "maxLength": 120,
      +      "type": "string"
      +    },
      +    "outputTokens": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "retryCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "toolCallCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / removeBatchIds
      Added value: +{
      +  "description": "Batches to take out.",
      +  "items": {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and openWorldHint=true, but the description adds substantial context beyond them: partial-update semantics ('Only supplied fields change; pass an empty string to clear a text field'), the invariant that other batches stay put, the uniqueness/non-empty constraint on name, the no-future-date rule for shippedAt, and the return value ('Returns the delivery's resulting batches'). This is rich behavioral disclosure that the annotations alone do not convey.

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?

The purpose and update semantics are front-loaded, and the later sentences about workflow-stage behavior earn their place by disambiguating a non-obvious side effect. It is dense but each sentence carries distinct information; only the workflow-stage sentences feel slightly long-winded.

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

Completeness4/5

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

For a complex mutation tool with nested objects and no output schema, the description covers mutation semantics, constraints, batch-movement rules, and the return value, which is a lot. The only shortfall is the unmentioned metrics parameter, whose behavior (stored on the workflow step) is left entirely to the schema.

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 real meaning: empty-string-clears semantics for text fields, name uniqueness within a project, ISO format and not-in-the-future constraint for shippedAt, and that addBatchIds only accepts ready batches no other delivery carries. The one gap is that the metrics object is never mentioned in the description, though the schema documents it.

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 and resource ('Edit a delivery's own record (name, rationale, summary, ship date) and add or remove its batches'), which immediately distinguishes it from the sibling create_delivery, delete_delivery, and list_deliveries tools. An agent can tell exactly what record is touched and what sub-operations are included.

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?

It gives explicit preconditions and alternatives: 'Take a batch out of its current delivery before adding it to another', and it names create_delivery as the alternative along with the exact condition that selects update_delivery instead ('adding every ready Batch of the run to one existing Delivery completes the stage instead of create_delivery'). This is more than implied usage — it routes the agent between sibling tools.

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