Skip to main content
Glama
stornoro

Storno CLI

by stornoro

proforma_invoices_create

Create proforma invoices in draft status with detailed line items, supporting multiple currencies, discounts, and optional references like contracts, orders, and payment terms.

Instructions

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

Input Schema

TableJSON 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
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the tool creates a draft-status invoice and supports currencies, discounts, and references. However, it does not disclose what happens after creation (e.g., whether it's immediately available, whether it must be sent/issued separately via proforma_invoices_send), how invoicing numbering is handled, or what the response contains. For a mutation tool with zero annotations, this is a notable gap, though the core mutating behavior is clear.

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 description is a single concise sentence that front-loads the purpose ('Create a new proforma invoice in draft status with line items') and then lists key capabilities. It is efficient with no fluff. Could arguably enumerate more behavioral detail, but for conciseness metrics this is well-structured and appropriately brief.

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?

With 22 parameters (7 required) and no output schema, the description is minimal but the schema's 100% coverage compensates somewhat. However, the tool has no annotations and no output schema, and the description does not clarify default behaviors, required series configuration, or the relationship to companion operations (send, convert, accept). For a complex creation tool with many related sibling proforma operations, the description leaves the agent to infer several behavioral aspects.

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% and all 22 parameters have descriptions in the schema. The description adds general context about capabilities (currencies, discounts, references) but does not detail any specific parameter semantics beyond what the schema already documents. Per the rubric, high coverage yields a baseline of 3, and the description does not significantly exceed the schema's documentation.

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 clearly states it creates a new proforma invoice in draft status with line items, and mentions added features (multiple currencies, discounts, optional references). This distinguishes it from related tools like proforma_invoices_update, proforma_invoices_convert, and delivery_notes_from_proforma among siblings. Could be slightly more explicit about being distinct from invoices_create (regular invoice), but the proforma-specific naming and draft-status mention provide good 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?

The description implies usage for creating proforma invoices in draft status but does not explicitly state when to use this versus invoices_create (regular invoices) or when a proforma should be converted rather than created directly. It does not mention prerequisites (e.g., that seriesId must reference a proforma-configured series, which is hinted only in the schema param description), and no exclusions are given. Minimum viable guidance with room for improvement.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/stornoro/storno-cli'

If you have feedback or need assistance with the MCP directory API, please join our Discord server