Skip to main content
Glama

Send invoice

send_invoice
Destructive

Approve the invoice and email it to the customer, with payment reminders if enabled. Approves a draft invoice (Tradify gives it its number) and emails it from Tradify with the link to view and pay it; payment reminders follow if you enabled them. Without to it goes to the customer's email. Subject and text default to your invoice email template. An approved invoice can be sent again. Tradify sends this mail only when the login has 2-Step Security set up; otherwise the call stops before approving. By default you confirm each call, and you can switch that off for this tool. Waits for the owner's approval.

Input Schema

NameRequiredDescriptionDefault
toNoRecipient emails. Default: the customer's email.
messageNoEmail text. Default: your invoice template.
subjectNoDefault: your invoice email template.
invoice_idYesInvoice ID from list_invoices or create_invoice_from_quote.
send_me_a_copyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the 2-Step Security precondition that aborts the call before approval, the per-call confirmation gate that can be disabled, and the state change (draft becomes approved and numbered). The resend capability also implicitly clarifies why idempotentHint is false while the operation stays repeatable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded, but the payment-reminder clause is stated twice in consecutive sentences and the email/approval points are re-explained, padding an otherwise three-sentence definition.

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?

With no output schema and no annotation-level detail on side effects, the description covers the important operational facts: approval side effect, external email delivery, security precondition, confirmation behavior. It omits what the call returns (sent status, message id), which an agent may want after invoking it.

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 80%, so the schema already documents defaults and limits for to, message, subject and invoice_id. The description only restates the same defaults (recipient falls back to customer email, subject/body fall back to the template) and adds nothing on send_me_a_copy, which is undocumented in both places.

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 compound action on a specific resource: approve a draft invoice and email it to the customer, including what the approval does (assigns an invoice number). It is clearly separable from the nearest sibling, send_quote, and from create_invoice_from_quote.

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 usable context: it applies to a draft invoice, an already-approved invoice can be re-sent, and omitted recipients fall back to the customer's email. It never names an alternative tool or states when *not* to send (e.g. unsent-paid invoices), so it falls short of explicit routing guidance.

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.