Skip to main content
Glama
dennismenken

BuchhaltungsButler MCP-Server

by dennismenken

Beleg als gelöscht markieren

bb_receipts_delete
Destructive

Marks a receipt as deleted in BuchhaltungsButler, e.g. to remove a duplicate, without deleting the record. It stays findable via search with deleted true, and can be undone with restore.

Instructions

Markiert einen Beleg in BuchhaltungsButler als gelöscht, zum Beispiel einen versehentlich doppelt angelegten Beleg. Der Beleg bleibt erhalten und ist über bb_receipts_search mit deleted true weiter zu finden; für die laufende Buchhaltung zählt er nicht mehr. Entfernt keine Buchung und keine Zuordnung zu einer Zahlung: Hängt eine bestätigte Buchung am Beleg, lehnt die API den Aufruf ab. Die Zuordnung zwischen Beleg und Zahlung löst bb_transactions_unassign_receipt. Schreibt in die echten Buchhaltungsdaten von BuchhaltungsButler. Rückgängig zu machen mit bb_receipts_restore.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
receipt_id_by_customerYesDie mandantenbezogene Nummer des Belegs, zu finden über bb_receipts_search. Keine globale Kennung. In Suchergebnissen erscheint sie als String; hier ohne Anführungszeichen übergeben.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNo
messageNo
removedNo
successYes
endpointNo
reversalNo
_contract_warningsNo
fields_not_returnedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Despite annotations already flagging destructiveHint=true, the description adds substantial context: the receipt is retained and still discoverable via deleted=true search, the API rejects the call when a confirmed posting is attached, no postings/payment links are removed, it writes to real accounting data, and it is reversible via bb_receipts_restore.

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?

Information-dense and front-loaded with purpose and example, then constraints and alternatives. Every sentence earns its place, though the six-clause structure is slightly long for a single-parameter call.

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

Completeness5/5

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

An output schema exists so return values need no explanation. Together with the annotations, the description covers reversibility, error conditions, side effects, and alternatives, leaving nothing an agent needs before calling it.

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?

Only one parameter with 100% schema description coverage, so the schema already documents the tenant-scoped ID, its source tool, and the string/number quirk. The description adds no parameter-level detail beyond the schema, so baseline 3 applies.

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?

States a specific verb ('als gelöscht markiert') and resource ('Beleg'), plus a concrete example (versehentlich doppelt angelegt). It clearly distinguishes this soft-delete from bb_receipts_restore, bb_receipts_search, and bb_transactions_unassign_receipt.

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?

Explicitly names when to use it (duplicate receipt), states what it does NOT do (entfernt keine Buchung/Zuordnung) and why (API lehnt ab, wenn bestätigte Buchung hängt), and routes the agent to the two alternative tools for adjacent operations.

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