Skip to main content
Glama

bexio MCP by usefulapi

Create draft invoice

bexio_create_draft_invoice
Destructive

WRITE: create a DRAFT invoice in bexio for a contact, with custom, item (article) and text lines. It is never issued, sent or booked: the user reviews and issues it in bexio. Taxes must be active sales taxes (bexio_list_taxes with types sales_tax, scope active).

Input Schema

NameRequiredDescriptionDefault
titleNoInvoice title.
footerNoText below the lines.
headerNoText above the lines.
user_idNoResponsible bexio user (default: the signed-in user).
tax_modeNonet = unit prices are net and VAT is added (default); gross = unit prices include VAT; exempt = the invoice is exempt from VAT.
valid_toNoDue date, yyyy-mm-dd (default from the payment terms).
positionsYes1-150 invoice lines.
referenceNoCustomer reference shown on the invoice.
contact_idYesThe customer contact (from bexio_list_contacts).
project_idNoLink to this project.
valid_fromNoInvoice date, yyyy-mm-dd (default today).
currency_idNoCurrency (from bexio_list_currencies); company default when omitted.
document_nrNoInvoice number. Only when automatic numbering is OFF in bexio's settings (then it is required); leave empty with automatic numbering.
language_idNoDocument language id; the contact's language when omitted.
api_referenceNoYour own external reference (only visible through the API).
contact_sub_idNoA contact person of the customer.
bank_account_idNoBank account for the payment slip (from bexio_list_bank_accounts); default when omitted.
payment_type_idNoPayment type id; default when omitted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare a non-idempotent, open-world mutation; the description adds the important nuance that the record stays a draft and is never issued, sent or booked, which is exactly the side-effect context an agent needs before writing. It does not, however, say what is returned (no output schema) or how contact/tax validation failures surface.

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 sentences, front-loaded with the mutation marker, then scope, then the safety caveat, then the tax prerequisite. Nothing redundant and nothing buried.

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 18-parameter write tool with full schema coverage, the description covers the risk profile, lifecycle and the one cross-tool prerequisite. The remaining gap is the return value — no output schema exists, so saying what a successful call yields (draft id/number) would complete 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 100%, so every field including nested position properties is already documented. The description's only added parameter information is the restatement that taxes must be active sales taxes, which the tax_id description already says. Baseline 3.

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 and resource ('create a DRAFT invoice in bexio for a contact') plus the supported line types, which cleanly separates it from the read-only get_/list_ siblings. The 'WRITE:' prefix makes the mutation class immediately visible.

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?

Explains the workflow position — the user reviews and issues the invoice in bexio afterwards — and names the prerequisite source of valid tax ids (bexio_list_taxes with types sales_tax, scope active). No explicit 'do not use this when…' against a competing create-invoice sibling, but none exists.

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.