Skip to main content
Glama

Update invoice

update_invoice
Destructive

Changes a document. A draft takes every field (client, dates, currency, tax, discount, notes, terms, who it is for, project and the whole list of lines, which replaces the current ones); once sent only the notes and the due date change; once paid or answered, only the notes. Totals are recomputed on the server. null clears an optional field.

Input Schema

NameRequiredDescriptionDefault
linesNoThe whole list (replaces the current lines). At most 500.
notesNoUp to 4000 characters. Default: the profile's default notes.
termsNoUp to 4000 characters. Default: the profile's payment instructions.
toNameNoWho it is for. Default: the client's name.
boardIdNoA project the user owns.
dueDateNoYYYY-MM-DD. Default: the profile's payment terms (invoice) or 30 days (estimate).
toEmailNo
toTaxIdNo
clientIdNoOne of the user's clients; its name, email, address, tax id and currency are copied onto the document.
currencyNoThree-letter code. Default: the client's, else the profile's.
discountNoA fixed amount off the whole document. An amount in the currency's main unit, e.g. 85 or "85.50" (not cents). null clears it.
taxLabelNoWhat the tax is called, up to 30 characters.
invoiceIdYesThe invoice or estimate.
issueDateNoThe issue date. Default today, YYYY-MM-DD.
toAddressNo
taxPercentNoTax as a percentage, e.g. 21 or "10,5". Default: the profile's.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior5/5

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

With annotations marking destructiveHint=true, the description adds critical detail: line items are replaced wholesale, server recomputes totals, null clears optional fields, and field availability shrinks after sending/payment. This goes well beyond the binary annotation and tells the agent exactly what will be destroyed and when.

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?

One dense paragraph covers the state rules, replacement semantics, and null clearing without repetition. The vague opening 'Changes a document' is the only structural weak point, but the rest is information-dense.

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 16-parameter mutation tool, it covers mutability rules, replacement behavior, and server-side recomputation. It omits error handling and return expectations (no output schema exists), leaving a small gap, hence 4.

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 81%, so the schema already documents most parameters. The description groups fields by state but adds no new syntax or format details for individual parameters, fitting the baseline 3.

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 'Changes a document,' which is vague about the resource, but then enumerates invoice-specific fields (client, dates, currency, tax, discount, lines) making the target clear. It does not name sibling update tools or explicitly say 'invoice/estimate,' so it earns a 4 rather than 5.

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 specifies state-dependent editability: 'a draft takes every field... once sent only the notes and the due date change; once paid or answered, only the notes.' This is clear context for using the tool, but it never names an alternative tool or says when to use this instead of, say, create_invoice or void_invoice.

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