Skip to main content
Glama

Edit a program

update_program
Idempotent

Changes a program’s name, reward, stamps, terms or branches. Only possible while the program has never been used: after its first stamp the rules are locked (the owner can duplicate it as a draft in the app). Archived programs can’t be edited. The status (draft or active) doesn’t change.

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": {
      "program_id": "<program_id>"
    },
    "name": "update_program"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNo
termsNo
rewardNo
branch_idsNo
program_idYesFrom list_programs
cashier_choosesNoThe cashier picks 1…max stamps per visit, starting at default
stamps_per_visitNoFixed stamps per visit (default 1). Leave out when the cashier chooses.
stamps_to_rewardNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the agent knows this is a safe, repeatable mutation. The description adds genuinely useful lifecycle behavior beyond that: the rule lock after the first stamp, the archived-program block, and the fact that draft/active status is untouched. It does not address permissions or what the response contains, so it is solid but not exhaustive for a mutation tool.

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?

Three tight sentences, front-loaded with the resource and the editable fields, then the eligibility constraint, then the status note. No filler; the only slight density cost is that the stamps rules are compressed into a single word.

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 mutation tool with 8 parameters, a nested object and no output schema, the description covers lifecycle and lock conditions well but leaves the agent guessing on parameter interplay and failure behavior. The 38% schema coverage gap is not fully bridged, so it is adequate rather than complete.

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

Parameters2/5

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

Schema description coverage is only 38% across 8 parameters, so the description is expected to compensate and largely does not. It names the field families but adds no meaning beyond the parameter names themselves, and says nothing about the important constraint that cashier_chooses and stamps_per_visit are mutually exclusive, nor about the nested default/max semantics.

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 description opens with a specific verb and resource ('Changes a program's...') and enumerates the editable fields (name, reward, stamps, terms, branches), which clearly separates it from create_program and archive_program. It stops short of naming a sibling tool, but the field list and the 'archived programs can't be edited' clause make the boundary with archive_program and create_program inferable.

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

Usage Guidelines4/5

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

It gives an explicit precondition (the program must never have been used), an explicit exclusion (archived programs), and a post-condition (status does not change), which is strong when/when-not guidance. What is missing is a repository-side alternative: the fallback it offers ('the owner can duplicate it as a draft in the app') is a UI action rather than a sibling tool such as create_program.

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