Skip to main content
Glama

Update draft

solo_update_draft

Change a draft: lines, due days, notes. Drafts are the only editable state. Once issued, an invoice is immutable (S-2) — corrections after that are void-and-reissue, on the record. Effects: draft updated, totals recomputed.

Input Schema

NameRequiredDescriptionDefault
linesNoThe new full set of lines (replaces all).
notesNo
subjectNoOne line above the table — project, period.
currencyNoChange the currency of the draft (one of the company's currencies).
invoice_idYesThe draft, e.g. INV-0001.
due_in_daysNoDays until due.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations cover safety (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description's value is the added context: it discloses the side effect that 'totals recomputed' and the hard lifecycle constraint that issued invoices are immutable, which is exactly the kind of behaviour an agent cannot get from annotations. The '(S-2)' reference is opaque and no failure/error behaviour (wrong state, foreign currency) is described.

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?

Three short sentences, zero filler: it front-loads what can be changed, then the lifecycle constraint that gates use, then the observable effects. Every clause carries information an agent acts on.

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 mutation tool with no output schema, it covers the essentials: allowed mutations, the state guard, and the recompute effect. Remaining gaps are minor edge behaviour — what happens when the invoice is not a draft, or how changing currency interacts with existing lines.

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 coverage is 83%, so the schema already carries most parameter meaning, and the description's field list ('lines, due days, notes') merely echoes a subset of the six properties while omitting subject and currency. The one genuinely thin spot, the empty `notes` description, is not compensated for in the description text.

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?

States a specific verb and resource ('Change a draft') and enumerates the mutable dimensions ('lines, due days, notes'), which map directly onto the schema properties. The clause 'Drafts are the only editable state' cleanly separates it from the create (solo_draft_invoice), issue (solo_issue_invoice) and void (solo_void_invoice) siblings without needing to name them.

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?

Gives a clear precondition ('drafts are the only editable state') and an explicit exclusion with the correct alternative behaviour ('once issued, an invoice is immutable — corrections after that are void-and-reissue'). It stops short of naming the concrete alternative tool (solo_void_invoice) or stating what to do if the id is not a draft, so the routing is inferable rather than explicit.

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.