Skip to main content
Glama

Make an invoice

make_invoice
Read-onlyIdempotent

Lay out a PDF invoice from the details the user gives: who sends it, who pays, and the lines (description, quantity, unit price, VAT %). Shows a preview, and returns a dozokit.com link that opens the invoice filled in, where the user checks it and downloads the PDF, made on their device. Use lang fr and EUR for a French invoice; set noVat for a French micro-entrepreneur exempt from VAT (it prints « TVA non applicable, art. 293 B du CGI »). Read-only: nothing is sent or stored. Crée une facture PDF à partir des informations données.

Input Schema

NameRequiredDescriptionDefault
dueNoDue date, YYYY-MM-DD. Defaults to 30 days after the issue date.
bankNoBank details such as IBAN and BIC.
langNoLanguage printed on the invoice.en
linesYes
noVatNo
termsNoPayment terms or notes.
clientYes
issuedNoIssue date, YYYY-MM-DD. Defaults to today.
numberNoInvoice number. Defaults to INV-<year>-001.
sellerYes
currencyNoISO currency code.EUR

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds material behavior the agent could not infer: a preview is shown, the return value is a dozokit.com link that opens a pre-filled invoice, and the PDF is generated on the user's device rather than stored server-side. That confirms and enriches the read-only annotation rather than contradicting it.

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 core behavior and the French-invoice configuration tips are front-loaded in efficient sentences. The trailing French sentence, 'Crée une facture PDF à partir des informations données', merely restates the opening in another language and does not earn its place.

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 11-parameter nested tool with no output schema, the description covers the critical agent-facing questions: what is produced (preview plus link), whether data is persisted (no), and how to handle the French VAT-exempt case. Remaining details such as currency formatting beyond EUR or how the link is consumed are covered by schema descriptions, so nothing essential is missing.

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 64%, and the description fills a real gap by explaining what 'noVat' actually does — it prints the French « TVA non applicable, art. 293 B du CGI » mention — which is entirely absent from the schema. It also restates the shape of 'lines' (description, quantity, unit price, VAT %) but adds no extra meaning for the other documented fields like due, issued, bank, or terms.

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 uses a specific verb and resource ('Lay out a PDF invoice from the details the user gives') and enumerates the required inputs (seller, client, lines), so the agent can tell exactly what the tool produces. It does not explicitly contrast itself with the sibling pdf_tool, so it falls short of full sibling differentiation.

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?

There is useful conditional guidance ('Use lang fr and EUR for a French invoice', 'set noVat for a French micro-entrepreneur exempt from VAT'), which tells the agent how to configure common cases. However, there is no explicit statement of when to use this versus pdf_tool, nor any exclusion or prerequisite, so usage context is implied rather than prescribed.

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