Skip to main content
Glama

Issue an invoice

fawtar_create_invoice

Issue a tax or ordinary invoice. This is a real financial document: it takes the next sequential number, computes VAT, generates the ZATCA QR code and posts to the general ledger. It cannot be edited afterwards — correct it with a credit note. Confirm the amounts with the user before calling.

Use taxTreatment "tax" for a VAT-registered business, "ordinary" for one that is not registered. Use type "simplified" for individuals, "standard" for businesses (which requires the buyer's VAT number).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYes
buyerNo
linesYes
notesNo
dueDateNoYYYY-MM-DD
taxTreatmentYes
pricesIncludeVatNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only mark this as non-read-only and non-destructive, so the description carries the full burden. It discloses that this is a real financial document, is irreversible, takes a sequential number, posts to the general ledger, and must be corrected via a credit note. This is exactly the kind of behavioral consequence an agent needs beyond annotations.

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

Conciseness5/5

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

Three short paragraphs with no filler. The irreversible financial warning and usage instructions are front-loaded, and the parameter mapping guidance is tightly written.

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 financial mutation tool with no output schema, the description covers the core action, parameter decision rules, user confirmation step, and post-issuance correction path. An agent has enough safety-critical context to invoke the tool 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?

With schema description coverage at only 14%, the description compensates for the most decision-critical parameters: taxTreatment maps to VAT registration status and type maps to simplified vs standard with a buyer VAT number requirement. Other parameters are largely self-explanatory or already described in the schema, so the remaining gaps are minor.

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 verb-resource pair ('Issue a tax or ordinary invoice') and clearly distinguishes itself from sibling get/list/vat tools by emphasizing real accounting effects: next sequential number, VAT computation, ZATCA QR code, and general ledger posting. The scope is unambiguous.

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?

Provides explicit selection rules for taxTreatment and type, and instructs the agent to confirm amounts with the user before calling. It does not explicitly name alternative sibling tools or exclusion conditions, but the 'cannot be edited afterwards' warning strongly implies when to avoid direct use.

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.

TDQS

A3.9/5.0
Disambiguation4/5

fawtar_create and fawtar_create_invoice are clearly separated by the explicit warning that invoices need the specialized tool, and get/list/outstanding/vat_summary each have distinct read/report purposes. The only mild ambiguity is fawtar_outstanding overlapping fawtar_list with filters, but descriptions make the specialized intent obvious.

Naming Consistency3/5

All tools share the fawtar_ prefix and snake_case, but the action suffix is inconsistent: create/get/list are generic verbs, create_invoice combines verb+noun, and outstanding/vat_summary are noun-phrase report names rather than verb_noun commands.

Tool Count5/5

Six tools is a compact, well-scoped set for a broad API: three generic CRUD-ish verbs and three specialized financial actions (invoice creation, outstanding report, VAT summary). Each tool has a distinct role and the count feels intentional.

Completeness2/5

The surface covers creation, retrieval, listing, and key financial reports, but there are no update/delete tools for editable master data and no way to create credit notes or debit notes even though the invoice tool explicitly directs corrections to credit notes. These are significant gaps that will make common workflows fail.

Resources