Skip to main content
Glama

Send invoice

send_invoice
Destructive

Marks a draft as sent, gives it the next number and publishes its link: anyone who has the link can read the document (lines, amounts, the user's business details), and for an estimate answer it. Nothing is emailed. After that only the notes and the due date change. The draft needs a client name, at least one line and a total above zero. Needs confirm: true and amount equal to the total; without them the result is a preview.

Input Schema

NameRequiredDescriptionDefault
amountNoThe document's total in the currency's main unit, repeated from the preview (e.g. 220 or "220.00"). Must equal the total or nothing is done.
confirmNotrue performs the action. Without it (or with any value other than the boolean true) nothing changes and the result is a preview of the effects.
invoiceIdYesThe invoice or estimate.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Substantially exceeds the annotations: it discloses that a public link is published and anyone with it can read lines, amounts and business details, that nothing is emailed, that for an estimate it answers, and that only notes and due date remain editable afterward. This is exactly the mutation/public-exposure context destructiveHint+openWorldHint only hint at.

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?

Dense colon-separated clauses but front-loaded with the core action first, then effects, then preconditions. Slightly run-on but every sentence carries distinct information; nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-param mutation tool with no output schema, the description covers preconditions, side effects, the preview fallback result, and post-conditions, which is everything an agent needs to call it correctly.

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 already 100%, so baseline is 3, but the description adds the interplay semantics: confirm must be the boolean true and amount must equal the total or nothing happens (preview otherwise). That reinforces the fields with behavioral meaning beyond their schema 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 precise verb and resource ('marks a draft as sent, gives it the next number and publishes its link') and contrasts with the obvious sibling behaviors: 'Nothing is emailed' rules out email_invoice, and 'After that only the notes and the due date change' bounds it against update_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 clear preconditions (client name, at least one line, total above zero) and the confirm:true + amount requirement, plus the fallback that without them the result is a preview. It implies alternatives ('Nothing is emailed') but never explicitly routes to email_invoice or preview_invoice_from_work.

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