Skip to main content
Glama

Write a DATEV Buchungsstapel

write_buchungsstapel
DestructiveIdempotent

Create a DATEV-format Buchungsstapel (EXTF v13) from booking rows, validated before output. Write it as a Windows-1252 file for import into DATEV Rechnungswesen or DATEV Unternehmen online, or return the CSV text.

Instructions

Create a DATEV-Format Buchungsstapel (EXTF, Formatversion 13) from booking rows, ready for import into DATEV Rechnungswesen or DATEV Unternehmen online. The result is checked with the validator before it's returned. With outputPath the file is written as Windows-1252, the encoding DATEV expects; without it the CSV text is returned. The tool formats bookings, it doesn't choose accounts or tax keys: take those from the user or their tax advisor.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNoLanguage of the messages: de (default) or en.de
rowsYes
headerYes
outputPathNoWhere to write the file, e.g. EXTF_Buchungsstapel.csv. Existing files are overwritten.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
csvNo
pathNo
rowsYes
reportYes
changedYesBelegfeld 1 values the writer had to clean, and texts with characters Windows-1252 can't hold

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

The description adds meaningful behavior beyond the annotations: it notes the result is validated before return, describes the output encoding (Windows-1252) and the conditional file writing vs returning CSV text. It also clarifies the scope (formats, doesn't choose accounts). Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, and the description does not contradict them, but it adds operational detail that helps an agent anticipate 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each earning its place: the purpose, the validation step, the output behavior, and the limitation. It front-loads the core function and then provides necessary operational details. No redundancy or fluff.

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?

Given the tool's complexity (nested objects, multiple required fields) and the presence of an output schema (so return values are covered), the description provides sufficient context: purpose, validation, output modes, and a caveat about data sourcing. It could mention that the header must be properly filled (but schema covers required fields). Overall, it's complete enough for an agent to know when and how to call 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?

Schema description coverage is 50%, so the description must compensate for undocumented parameters. It does add context specifically for outputPath (file writing vs text return) and overall input expectations (rows should contain accounts/tax keys from user/advisor). However, it does not elaborate on header fields or rows structure beyond what's already in the schema, which already describes many inner properties. The description adds some value but doesn't fully bridge the coverage gap.

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 clearly states the tool creates a DATEV-Format Buchungsstapel (EXTF, Formatversion 13) from booking rows, specifying the exact resource and format. It also distinguishes itself from sibling tools (list, validate, explain) by focusing on creation, and includes the target import systems. This is a specific verb+resource that leaves no ambiguity.

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

Usage Guidelines4/5

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

The description gives clear context on when to use the tool: to generate a Buchungsstapel ready for import. It explicitly states what the tool does not do ('doesn't choose accounts or tax keys: take those from the user or their tax advisor'), guiding the agent on prerequisites. However, it doesn't explicitly compare to sibling tools like validate_datev_extf, though the context makes the distinction obvious. Slight gap but acceptable.

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