Skip to main content
Glama

invoice create

invoice_create
Read-only

Create a professional PDF invoice from JSON: seller and buyer, line items with quantities and tax rates, discount, shipping, totals computed for you, due date, payment instructions (bank, IBAN, link or a crypto address) and notes. Returns the totals and a download link (kept 30 days). Costs $0.006 USDC per call (x402).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNo
buyerNo
itemsYes
notesNo
numberNo
sellerYes
paymentNo
currencyNo
due_daysNo
tax_rate_percentNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.6/5.0
Behavior2/5

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

The description does add real behavioral value beyond the annotations: it states what is returned (totals + download link), the link's 30-day lifetime, and the $0.006 USDC (x402) per-call cost. However, it explicitly claims a creation action and a persisted 30-day artifact while readOnlyHint=true declares the tool does not modify its environment — a direct conflict that the agent cannot resolve from the metadata alone.

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?

Front-loaded with the verb and resource, then the content inventory, then return/cost facts — every clause carries information the schema (0% documented) and annotations do not. Dense but efficient; only the long parenthetical enumeration risks becoming a run-on.

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

Completeness3/5

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

For a 10-parameter, nested-object tool with no output schema, the description does the important things: it summarizes return values and the link retention window, and it discloses cost. It still omits requiredness (seller and items are the only required params but this isn't said), date/number/currency semantics, and item-object structure, leaving real gaps an agent must guess at.

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 description coverage is 0% with 10 parameters (several nested objects), so the description carries nearly the whole burden and does so well: it names seller, buyer, items with quantities and tax rates, discount, shipping, due date (due_days), payment (bank, IBAN, link, crypto address), notes and tax_rate_percent. It leaves date, number, currency and the internal item-object fields uninterpreted, so it is a strong but not complete compensation.

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?

Specific verb + resource + output format: 'Create a professional PDF invoice from JSON', followed by an enumeration of exactly what the invoice contains (seller/buyer, line items with tax rates, discount, shipping, due date, payment instructions). No sibling in the catalog does anything similar, so differentiation is unambiguous without consulting any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (you have invoice JSON and want a PDF), and the per-call price gives the agent a cost signal for deciding whether to call it. But there is no explicit when-to-use/when-not statement, no note on whether the input JSON must match a particular shape, and no alternatives are named because none exist.

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