Skip to main content
Glama
Storno CLI

Storno CLI

Official
by stornoro

vat_rates_update

Idempotent

Update an existing VAT rate’s label, category code, default status, or display position while preserving original rates on existing invoices.

Instructions

Update an existing VAT rate. Note: changing the rate percentage does not retroactively affect existing invoices — those preserve the original rate. Only updates display label, category code, default status, or position. At least one field must be provided.

Input Schema

NameRequiredDescriptionDefault
rateNoVAT percentage
uuidYesVAT rate UUID to update
labelNoDisplay label
positionNoDisplay order position
companyIdNoCompany UUID override (uses active company if not set)
isDefaultNoSet as default rate (demotes any existing default)
categoryCodeNoe-Factura category code (S, AA, E, O, Z, AE)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.17

TDQS

A3.8/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing that a rate change does not retroactively alter existing invoices — a genuinely non-obvious side effect for a non-destructive, idempotent mutation. The added 'at least one field must be provided' rule is also not in the schema. Minor ding: the sentence 'Only updates display label, category code, default status, or position' omits rate even though the preceding sentence and the schema both allow it, creating internal ambiguity.

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?

Three short sentences, front-loaded with the core action and immediately followed by the most important caveat. The enumeration of updatable fields partially duplicates the schema and introduces inconsistency, so it does not fully earn its place.

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?

With 7 parameters at full schema coverage and annotations covering safety, idempotency, and scope, the description covers what an agent needs before calling: mutation scope, the retroactivity caveat, and the minimum-payload rule. It lacks any statement about what is returned after the update, which is relevant given there is no output schema.

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?

Schema coverage is 100%, so the per-field meanings are already handled; the description still adds value by explaining the cross-field constraint (at least one optional field) and the retroactivity semantics of 'rate', neither of which the schema conveys. The contradictory field enumeration slightly muddies which fields are actually patchable.

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 first sentence is a precise verb+resource statement: 'Update an existing VAT rate.' That cleanly separates it from vat_rates_create, vat_rates_delete, and vat_rates_list, though no sibling is named explicitly to reinforce the boundary.

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?

Usage is implied by 'Update an existing VAT rate' plus the constraint that at least one field must be provided, which is actionable. However, it never states when to use this versus recreating a rate or which situations warrant a patch, and no alternatives are named.

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