Skip to main content
Glama

tascan_update_invoice

Idempotent

Update an invoice: mark it paid (records paid_at; a receipted ledger event with the actor, invoice id, number, amount and the before/after status is written first, and nothing changes if it cannot be), overdue, cancelled, or edit client details / notes / due date. A paid invoice is final: any further change is refused 409 invoice_paid_locked (no refunds, edits or deletes).

Input Schema

NameRequiredDescriptionDefault
notesNo
statusNo
paid_atNoISO timestamp (default now) when status = paid
due_dateNo
invoice_idYes
client_nameNo
client_emailNo
client_phoneNo

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?

Adds substantial context beyond annotations: it explains the atomic ledger event written before a paid update, that nothing changes if the ledger event cannot be written, and that paid invoices are locked with a 409 refusal. These details are exactly the mutation and failure semantics an agent needs.

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?

The description is two sentences and front-loads the main update operations before adding behavioral detail. The long parenthetical about the ledger event is dense but earns its place by disclosing atomicity and failure behavior.

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 an 8-parameter mutation tool with annotations and no output schema, it covers the critical mutation, atomicity, and paid-lock behavior. It still omits some parameter details and the response shape, but the essential operational context is present.

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 only 13%, so the description must compensate; it adds meaning for paid_at, client details, notes, due date, and status values paid/overdue/cancelled. However, it omits enum values draft and sent and does not explain invoice_id or client field mappings, leaving clear gaps.

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?

States a specific verb and resource ('Update an invoice') and enumerates the main operations: mark paid, overdue, cancelled, or edit client details/notes/due date. It is clear what the tool does, though it does not explicitly differentiate itself from siblings such as request_payment or create_invoice.

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 strong when-not rule: 'A paid invoice is final: any further change is refused 409 invoice_paid_locked (no refunds, edits or deletes).' It does not name alternative tools for related actions, but the usage constraints are explicit enough to guide most calls.

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.