Skip to main content
Glama
szamlazz-mcp

szamlazz-mcp

by MrSakal

reverse_invoice

Destructive

Issues a reversing invoice for an original invoice number, using specified issue and fulfillment dates to correct or cancel a billed transaction.

Instructions

Reverse an invoice: issues the reversing invoice for the original.

Input Schema

NameRequiredDescriptionDefault
companyNoCompany name (or part of it) or Számlázz.hu company id. Optional: defaults to the login's current company. list_companies lists the choices.
eInvoiceNoE-invoice (default: true)
issueDateYesIssue date of the reversing invoice (YYYY-MM-DD)
invoiceNumberYesNumber of the invoice to reverse
fulfillmentDateYesFulfillment date of the reversing invoice (YYYY-MM-DD)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare destructive=true, idempotent=false and openWorld=true. The description contributes the important non-obvious trait that reversal is a counter-document issuance rather than an in-place mutation, but it does not disclose that repeated calls likely produce multiple reversing invoices, whether the original is voided, or any NAV/e-invoice submission side effects.

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?

A single short sentence, front-loaded with the verb and resource, with no filler wording. It is arguably too terse for a destructive financial tool, but nothing in it is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a destructive, non-idempotent financial operation with no output schema, and the description says nothing about what is returned (e.g. the new reversing invoice number), failure modes such as an already-reversed invoice, or required permissions. The one sentence is not sufficient context for an agent to invoke it confidently.

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 all five parameters are already documented, including the crucial nuance that issueDate and fulfillmentDate refer to the reversing invoice, not the original. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.

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 names a specific verb and resource ('Reverse an invoice') and clarifies the mechanism ('issues the reversing invoice for the original'), distinguishing it from a delete operation. It does not explicitly contrast with siblings such as reverse_receipt or delete_proforma, but the verb+resource pair is unambiguous.

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?

There is no guidance on when to use this rather than delete_proforma, reverse_receipt, or creating a corrective invoice, and no stated preconditions (e.g. original invoice must exist and not already be reversed). The implied use case is inferable from the name alone, so this is close to no guidance.

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