Skip to main content
Glama

create_invoice

Create a new invoice for a client with one or more line items.

Input Schema

NameRequiredDescriptionDefault
seriesNoInvoice series name (uses account default if omitted; if creation fails because the default series belongs to another year, call list_series and pass a name matching the document year)
currencyYesCurrency code, e.g. "RON", "EUR", "USD"
due_daysNoDays until payment is due
client_idNoClient ID (from search_clients)
client_cityNoClient city (if client_id not provided)
client_nameNoClient name (if client_id not known)
document_dateNoInvoice date in YYYY-MM-DD format (defaults to today)
exchange_rateNoExchange rate to domestic currency (required when currency is not RON)
client_addressNoClient address (if client_id not provided)
client_countryNoClient country code (if client_id not provided)
lower_annotationNoText below line items
upper_annotationNoText above line items
document_positionsYesLine items on the invoice
document_series_counterNoInvoice number within the series (auto-incremented if omitted)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden for a mutation tool, yet it says nothing about permissions, whether the invoice is a draft or immediately final, numbering/auto-increment effects, e-Factura implications, or reversibility. 'Create' implies a write, but the significant consequences of that write are left entirely undisclosed.

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?

One tight sentence with zero waste and the action front-loaded. It is efficient, though its brevity borders on under-specification rather than exemplary conciseness.

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

Completeness2/5

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

For a 14-parameter mutation tool with nested line items, no annotations, and no output schema, a single sentence is not enough — the agent gets no information about return value (ID? number?), side effects, or error handling. The rich schema covers inputs but the descriptive layer is nearly empty for a consequential write operation.

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 description coverage is 100%, so the schema already documents all 14 parameters in depth (currency, due_days, series fallback, per-line discount gating). The description adds no parameter meaning beyond naming 'line items', so the baseline 3 is appropriate given the schema does the heavy lifting.

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 ('Create a new invoice') plus scope ('for a client with one or more line items'), so the agent knows exactly what is produced. It does not distinguish this tool from close siblings like create_proforma_invoice, create_simplified_supplier_invoice, or create_supplier_invoice, leaving the agent to infer from names alone.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this instead of create_proforma_invoice, create_simplified_supplier_invoice, or create_order, nor any prerequisites (client setup, series availability). Apart from the schema hinting at series fallback via list_series, the description offers nothing on selection or sequencing.

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