Skip to main content
Glama

Update item

update_item
Destructive

Update one item. Other fields can change. If the item already has a barcode, that code is kept even if you pass a different number. barcode_mode is ignored when the item already has a barcode or when a barcode is supplied. If the barcode is empty and you omit barcode_mode, the server assigns the next code when sequential assignment already works (typically Code 128), Cloudlabels EAN-13 is on, or the organization has opted in to its GS1 company prefix. When that assignment is refused (GS1 or existing EAN-13, and Cloudlabels EAN-13 is off), the barcode stays empty, barcodeSource is unchanged, and barcode_note says to pass barcode_mode="none", barcode_mode="cloudlabels_ean13", or a GTIN. barcode_mode="cloudlabels_ean13" generates one EAN-13 for this call only; barcode_mode="none" leaves the cell empty on purpose (barcodeSource none). Do not pass sequential. If the organization has opted in to its GS1 company prefix for this column and the sheet standard is EAN-13, UPC-A, or EAN-8, an empty barcode can reserve the next prefix number before saving. Returns barcode and barcodeSource (supplied, sequential, cloudlabels, gs1_prefix, kept, none, or unchanged). The cell stores the digit body without the check digit. A full prefix is an error and does not fall back to a random code.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "item_id": "<item_id>",
      "fields": "<fields>"
    },
    "name": "update_item"
  }
}

Input Schema

NameRequiredDescriptionDefault
fieldsYes
item_idYes
barcode_modeNo
sheet_numberNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare destructive=true and idempotent=false, but the description adds non-obvious behavior the agent could not infer: an existing barcode is silently kept even if a different number is passed, barcode_mode is ignored in that case, a full prefix errors without fallback, and the stored cell omits the check digit. It also names the return values (barcode, barcodeSource with its enum of states), which compensates for the absent output schema. It does not say what destructive means here (whether omitted fields are cleared).

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

Conciseness3/5

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

The barcode content is dense but mostly earns its place; the problem is structure. Long run-on sentences with parentheticals ("(typically Code 128), Cloudlabels EAN-13 is on, or...") and a bare imperative "Do not pass sequential." dropped mid-paragraph make it hard to scan, and the barcodeSource states are restated redundantly.

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

Completeness3/5

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

For a destructive, non-idempotent mutation with a nested object parameter and no output schema, the description covers barcode edge cases and return values well. It leaves the most consequential gaps open: what the `fields` map accepts, whether unspecified fields are preserved, and what `sheet_number` scopes the update to.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the parameter burden, and it only does so for barcode_mode, whose two enum values are explained in depth. The required nested `fields` object, `item_id`, and `sheet_number` (1-10) get no explanation at all, so half the parameter surface is documented in neither place.

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

Purpose4/5

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

The opening "Update one item" gives a specific verb and singular resource, which implicitly separates it from bulk_update_items and create_item. However, "Other fields can change" is the only statement about what is actually updatable, leaving the core purpose under-specified relative to the amount of text spent on barcodes.

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

Usage Guidelines3/5

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

The description gives genuinely strong conditional guidance for one parameter: when barcode_mode is ignored, when to pass "none" vs "cloudlabels_ean13", and an explicit negative ("Do not pass sequential"). It offers no guidance on when to choose this tool over bulk_update_items or add_column, so tool-level selection remains inferred.

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