Skip to main content
Glama

Wartungsvertrag anlegen

wartungsvertrag_anlegen

Legt einen wiederkehrenden Wartungsvertrag an — Kunde, Rhythmus und erste Fälligkeit sind Pflicht. Die Vertragsnummer vergibt Meistron. Die Fälligkeit muss in der Zukunft liegen. Legt KEINEN Auftrag an: Der entsteht erst kurz vor der Fälligkeit von selbst. Verschickt NICHTS — der Kunde erfährt davon nichts, die Erinnerungen gehen an den Betrieb.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
notizNoInterne Notiz zum Vertrag.
titelYesWorum es geht, etwa „Jährliche Heizungswartung".
anlageNoWas gewartet wird, im Klartext — „Gastherme Vaillant, Baujahr 2019, Keller".
kunde_idYesKennung des Kunden — über `auftraege_suchen` oder `kunde_anlegen` zu bekommen.
rhythmusYesWie oft. Bei `custom_days` zusätzlich `rhythmus_tage` angeben.
objekt_ortNoOrt der Anlage.
objekt_plzNoPostleitzahl der Anlage.
mitarbeiterNoWer die Wartung macht und die Erinnerungen bekommt — Kennungen aus `mitarbeiter_auflisten`.
beschreibungNoWas bei der Wartung zu tun ist.
vorlauf_tageNoWie viele Tage vor der Fälligkeit der Auftrag entsteht (0 bis 60, Vorgabe 7). 0 schaltet die Automatik ab.
dauer_minutenNoWie lange die Wartung üblicherweise braucht (15 bis 1440, Vorgabe 90).
rhythmus_tageNoNur bei `custom_days`: Abstand in Tagen (1 bis 3650).
objekt_strasseNoAnschrift der Anlage, falls sie nicht beim Kunden steht.
idempotency_keyNoIm vollautonomen Betrieb erforderlich. Beim ersten Aufruf weglassen: Der Server liefert dann einen UUID-Key, ohne die Aktion auszuführen. Den Aufruf mit diesem Key wiederholen und bei Retry/Reconnect denselben Key verwenden. Eine neue beabsichtigte Aktion braucht einen neuen Key.
naechste_faelligkeitYesErster Termin, JJJJ-MM-TT. Muss in der Zukunft liegen.

TDQS

A4.3/5.0
Behavior5/5

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

With annotations being minimal (all false hints, no safety profile), the description carries the behavioral disclosure burden and succeeds. It reveals that the contract number is assigned by Meistron (so the agent should not expect to supply one), that the due date must be in the future (validation boundary), and — critically for a write operation — the side-effect limits: no order is created (it emerges automatically later) and no customer notification is sent (reminders go only to the company). This prevents the agent from assuming hidden downstream 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?

The description is four short sentences with zero filler; each sentence earns its place and the main purpose plus mandatory fields are front-loaded. The negative side-effect disclosures are appropriately emphasized with capitalization ('KEINEN Auftrag', 'NICHTS'), though placing these caveats before the contract-number detail would have made the structure slightly stronger.

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?

For a 15-parameter creation tool with no output schema and no meaningful annotations, the description covers the essential decision-relevant behavior: required fields, date validation, numbering responsibility, and side-effect boundaries. The only gap is that it never indicates what the call returns (contract ID, success confirmation, the idempotency key flow hinted at in the schema), which matters more because there is no output schema to document 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 100%, so the baseline is 3 and the description need not repeat parameter details. It adds modest value beyond the schema by explaining that the contract number is generated by Meistron (clarifying an absent parameter/capability) and reinforcing which three fields are mandatory, but most of the parameter-level meaning lives in the schema descriptions already.

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 opens with a specific verb and resource: 'Legt einen wiederkehrenden Wartungsvertrag an' — creating a recurring maintenance contract. It also distinguishes itself from siblings by explicitly disclaiming what it is not: it creates no order (differentiating from auftrag_anlegen) and sends no notifications (differentiating from rechnung_versenden). The 'wiederkehrend' qualifier separates it from one-off contract or order tools.

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 usage context: it names the mandatory inputs (Kunde, Rhythmus, erste Fälligkeit, matching the schema's required fields) and states the date must be in the future. It gives exclusionary guidance by stating it creates no order and sends nothing, helping an agent decide whether this tool fits the goal — though it never names an alternative tool explicitly for when an order or customer communication is actually wanted.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool name clearly identifies a distinct resource (Angebot, Auftrag, Rechnung, Material, etc.) and action. Even potentially similar pairs like material_buchen and material_zuweisen are explicitly differentiated in their descriptions, so an agent can reliably select the correct tool.

Naming Consistency5/5

All tool names follow a consistent resource_action pattern in lowercase with underscores (e.g., kunde_anlegen, material_suchen). A few status/query tools like betrieb_ueberblick and datei_stand use noun compounds, but these are consistently used for state queries and do not break the overall convention.

Tool Count3/5

With 23 tools, the server falls into the 'heavy' range of 16-25. While the breadth of a handwerker management system justifies many operations, the count is high and some areas (like customer management) are underrepresented, making the set feel larger than necessary.

Completeness3/5

The core order-to-invoice workflow is well covered, but there are notable gaps: no customer search or update, no conversion from Angebot to Rechnung, and no ability to change order status. These are significant omissions that agents must work around, even though the descriptions clearly state these limitations.

Resources