Skip to main content
Glama
ohneben

Buchhaltungsbutler MCP

Reports: create bwa report

reports_create_bwa

Request a BWA management report for a date range. Triggers asynchronous generation, returns an ID to fetch the completed report afterward.

Instructions

๐ŸŸก WRITE ยท creates data: Creates new records (receipts, transactions, postings, invoices, master data). Not idempotent: calling twice may create duplicates.

create bwa report

Triggers the creation of a BWA report ("Betriebswirtschaftliche Auswertung").

The report is generated asynchronously in the background. The response contains the id_by_customer of the created report, which may be used to retrieve it once the generation has been finished.

A new report may only be requested once the generation of a previously requested report of the same type has been finished.

Use to request a BWA (Betriebswirtschaftliche Auswertung, the German management report). Step one of two.

This only triggers generation. To read the finished report, call reports_get_bwa afterwards.

Runs asynchronously and returns an id, not the report. A new BWA can only be requested once the previous one has finished, and it replaces the previous one.

Endpoint: POST /reports/create/bwa

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
date_toYesThe last day of the period the report is created for, in format 'YYYY-MM-DD' (e.g. '2026-03-31').
date_fromYesThe first day of the period the report is created for, in format 'YYYY-MM-DD' (e.g. '2026-01-01').

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageNoblank
successYesSuccess boolean
id_by_customerNoThe id_by_customer of the created report

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.1.2
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "id_by_customer": {
      +      "description": "The id_by_customer of the created report",
      +      "type": "string"
      +    },
      +    "message": {
      +      "description": "blank",
      +      "type": "string"
      +    },
      +    "success": {
      +      "description": "Success boolean",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "success"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changedv1.1.0
    • removedInput schema / properties / api_key
      Removed value: -{
      -  "description": "Optional. The BB customer api_key to act on. Defaults to the BB_API_KEY configured on the server โ€” only set this to target a different customer.",
      -  "type": "string"
      -}
  3. Addedv1.0.2

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark the call as a non-idempotent write. The description adds valuable context beyond the annotations: the operation runs asynchronously, returns an id instead of the report, and replaces a previously generated report. This gives the agent a clear model of the 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.

Conciseness2/5

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

The description is noticeably repetitive: the 'new report may only be requested once the previous one has finished' constraint appears twice, and the async/returns-id idea is also echoed. The generic WRITE warning at the top duplicates the annotations content, making the whole description longer and less scannable than necessary.

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?

The definition covers the async flow, response id, usage constraint (one at a time), and the sibling tool to fetch the result. With an output schema present, it does not need to explain the return shape. It is complete enough for an agent to call correctly.

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?

The input schema has 100% description coverage for both date_from and date_to, including format and examples. The description does not and need not add parameter details beyond what the schema provides, so the baseline score of 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?

The description states a specific verb and resource: 'Triggers the creation of a BWA report' and identifies the report type as 'Betriebswirtschaftliche Auswertung'. It clearly differentiates from the sibling read tool by noting this is 'Step one of two' and that reports_get_bwa is the follow-up.

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 says 'Use to request a BWA... Step one of two' and 'To read the finished report, call reports_get_bwa afterwards.' It also states that a new report may only be requested once the previous one has finished, providing an explicit call-ordering constraint.

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