Skip to main content
Glama
stornoro

Storno CLI

by stornoro

invoices_cancel

Cancel an issued invoice by providing a reason (minimum 10 characters). The invoice is marked as 'cancelled' but stays in the system for record-keeping.

Instructions

Cancel an issued invoice. Requires a cancellation reason (minimum 10 characters). Changes status to "cancelled". Cancelled invoices remain in the system for record-keeping. Use invoices_restore to undo an accidental cancellation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uuidYesInvoice UUID to cancel
reasonYesReason for cancellation (minimum 10 characters)
companyIdNoCompany UUID override (uses active company if not set)
Behavior4/5

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

No annotations are provided, so the description carries full disclosure burden. It discloses the status change to 'cancelled', that cancelled invoices remain in the system for record-keeping (non-destructive), and requires a cancellation reason with minimum length. This is good behavioral context for a mutation tool with no 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, information-dense sentences entirely focused on the tool's behavior and constraints. No filler or repetition of schema details. Every sentence adds value.

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 a single-entity mutation with full schema coverage and no output schema, the description is complete. It covers the action, status change, retention behavior, undo path, and requirement for a reason. Minor gap: doesn't mention what happens if the invoice isn't in an issable state or if there are side effects, but given the simple schema and sibling differentiation this is adequate.

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 parameters (uuid, reason, companyId) are fully documented by the schema. The description reinforces the reason minimum length requirement and adds the companyId context ('active company if not set' is in schema). The description adds the reason semantic (cancellation reason) which the schema already covers. Baseline 3 is appropriate.

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?

The description uses a specific verb ('Cancel') with a clear resource ('an issued invoice'), and explicitly states the resulting status change to 'cancelled'. It distinguishes itself from the sibling invoices_restore, invoices_delete, and invoices_storno tools by clearly framing this as the logical cancellation action.

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

Usage Guidelines5/5

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

The description provides clear when-to-use guidance and explicitly references the alternative invoices_restore to undo an accidental cancellation. It notes this only applies to 'issued invoices,' setting the scope. However, it doesn't contrast against invoices_delete or invoices_bulk_cancel for multi-cancel scenarios.

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