Skip to main content
Glama

Update a machine

update_machine
Destructive

Correct a registered machine — its name, control type, prep type and style, basket, boiler, accessories or notes — or record where its selectors stand (settings). Only the keys you send in fields change; send null to clear an optional field (an empty string also clears a text field, but not a number or a closed list). Required fields can be changed but not cleared. fields may be omitted when only reason is sent. prep_style decides whether shots on this machine are diagnosed at all: only "espresso" is. Programs are edited with register_program, the built-in grinder link is not editable here, and archiving is set_equipment_archived.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fieldsNo
reasonNoOptional note, appended to this record's own notes as an ordinary line. Omit it and nothing is written.
machine_idYesThis account's own machine number, from list_machines. Never guess one.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusYes
messageYes
machine_idYes
changed_keysYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / fields / properties / settings
      Added value: +{
      +  "description": "Where the machine's selectors now stand, as {key: position} from list_machines settings, e.g. {\"brew_temperature\": \"ii\"}. Only the keys given change; a null position clears one, null clears all. Shots are stamped with these.",
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / fields / properties / catalog_id
      Added value: +{
      +  "description": "The maintenance catalog model this machine is; \"none\" if it is not listed; null to unbind. list_machines proposes one from the name under maintenance.catalog.match",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / fields / properties / hardness_dh
      Added value: +{
      +  "description": "The total hardness (GH) of the water this machine runs on, in °dH; null to fall back to the water of its last shot",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
  3. Added

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 idempotentHint=false, and the description adds the precise mechanics behind that: partial-update semantics ('only the keys you send in fields change'), null clears an optional field, empty string clears text but not numbers/closed lists, and required fields can be changed but not cleared. It also discloses that reason is appended to the record's own notes rather than stored separately.

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-loads the operation and the change-application rule, then packs constraints and sibling routing into the closing sentences. Slight redundancy in restating that only 'espresso' is diagnosed after the schema already says so, but every sentence otherwise earns its place.

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 partial-update mutation with an output schema and destructive annotations, the description covers the semantics an agent most needs: incremental change, clearing rules, and where adjacent operations live. It stops short of describing the response shape, which is acceptable given an output schema exists.

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 67% with nested objects, so the schema carries much of the load, but the description adds cross-cutting meaning the schema cannot: the null-vs-empty-string clearing rule and the domain consequence of prep_style ('only espresso is diagnosed'). It explains the fields/omission interaction with reason, which is not expressible per-parameter.

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?

Opens with a specific verb+resource ('Correct a registered machine') and enumerates the exact editable surface (name, control type, prep type/style, basket, boiler, accessories, notes, settings). It further differentiates itself by naming siblings for adjacent operations (register_program, set_equipment_archived) rather than leaving the agent to guess.

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 states when fields may be omitted ('fields may be omitted when only reason is sent') and routes three separate concerns to other tools: programs to register_program, the built-in grinder link is 'not editable here', and archiving to set_equipment_archived. This is when-to-use plus when-not-to-use plus alternatives.

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