Skip to main content
Glama
Storno CLI

Storno CLI

Official
by stornoro

proforma_invoices_create

Create draft proforma invoices with line items, multiple currencies, discounts, and optional references for accurate quotes before invoicing.

Instructions

Create a new proforma invoice in draft status with line items. Supports multiple currencies, discounts, and optional references.

Input Schema

NameRequiredDescriptionDefault
linesYesArray of line items (minimum 1 required)
notesNoPublic notes visible to client
dueDateYesPayment due date (YYYY-MM-DD)
clientIdYesUUID of the client
currencyYesCurrency code (e.g., RON, EUR, USD)
issuerIdNoUUID of the issuer user
languageNoDocument language for PDF generation (default: ro)
mentionsNoAdditional mentions or notes
seriesIdYesUUID of the invoice series configured for proforma invoices
companyIdNoCompany UUID (overrides configured default)
issueDateYesDate of issue (YYYY-MM-DD)
issuerNameNoName of person issuing the proforma
salesAgentNoSales agent name
validUntilYesValid until date (YYYY-MM-DD)
orderNumberNoClient purchase order number
exchangeRateNoExchange rate to base currency (default: 1.0 for RON)
internalNoteNoInternal note (not visible to client)
paymentTermsNoPayment terms description (e.g., "Net 30")
contractNumberNoRelated contract number
invoiceTypeCodeNoTax regime / invoice type code (default: standard)
deliveryLocationNoDelivery address or location
projectReferenceNoRelated project reference

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.17

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, non-idempotent and closed-world, so the safety profile is covered. The description adds real behavioral context beyond them: the record is created as a draft (not issued), currency and discount handling are supported, and extra references are optional. It stops short of saying the draft must later be sent/accepted/converted before invoicing.

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?

Two sentences, front-loaded with the action and the key outcome (draft status, line items). "Optional references" is the weakest phrase since it restates what the schema already marks optional, but nothing is padded or redundant at length.

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 22-parameter creation tool with no output schema, the description says nothing about what is returned (presumably an id, number, status) or whether the response includes generated PDF/numbering. Annotations cover the safety profile and the schema covers fields, so it is adequate, but an agent still can't predict the response or the follow-up lifecycle step.

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% across 22 parameters, so the schema fully documents each field including line-item nesting, enums and defaults. The description only groups capabilities at a high level (currencies, discounts, references) without adding format, constraint or interdependency detail. Baseline 3 is the correct ceiling here.

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 proforma invoice") plus two distinguishing behaviors: the result lands in draft status and includes line items. That already separates it from proforma_invoices_update and from invoices_create, though it never names the alternatives explicitly.

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?

No guidance on when to use this versus proforma_invoices_convert (which upgrades an accepted proforma to an invoice) or invoices_create (a real invoice). The draft-status detail hints at a workflow, but the agent must infer the preconditions (series configured for proformas, client existing, VAT rates known) rather than being told.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools