Skip to main content
Glama

firma.de Rechner für Gründer

Server Details

German tools for founders: startup budget, notary fees, taxes, contracts, receipts, e-invoices

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4/5.0

Scored across 10 tools

Disambiguation4/5

Each tool maps to a distinct calculator domain (cap table, loan contract, income tax, e-invoice, managing-director salary, GmbH taxes, founding budget, notary costs, receipt, gift contract), and descriptions explicitly scope each one. The only mild overlap is the tax cluster (einkommensteuer vs. gmbh_steuern vs. geschaeftsfuehrergehalt), but the descriptions differentiate the scenarios clearly enough (sole trader vs. GmbH level vs. salary/social-security split).

Naming Consistency4/5

All ten names are lowercase snake_case and consistently noun-based, naming the calculator/artifact rather than mixing verb styles. Minor deviations: German compounds are sometimes joined (darlehensvertrag, notarkosten) and sometimes underscored (cap_table, e_rechnung, gmbh_steuern), and two names are English while the rest are German.

Tool Count5/5

Ten tools is squarely in the well-scoped range, and each one is a self-contained calculator with a real, non-duplicated purpose. Nothing looks like filler or a variant of another tool.

Completeness4/5

Coverage is broad for a founder-facing suite: tax estimation, contracts (loan, gift), invoicing/receipts, cap table, notary costs, and liquidity planning. Gaps exist in the document-generator family — no employment contract, shareholder agreement, or articles of association generator, and no VAT-return style calculator — but the surface supports the main founding workflows without dead ends.

Available Tools

10 tools
cap_tablefirma.de cap table APIA
Read-onlyIdempotent
Inspect

Cap table of a German GmbH or UG after a financing round: price per share, shares and percentages before and after (fully diluted and real), convertible loans (cap, discount, floor, interest), VSOP pool top-up, capital increase and Agio, and optionally an exit waterfall with liquidation preference. Free, no key. Each share has a nominal value of 1 €.

Calculate a cap table

Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/cap-table-rechner/ – REST: https://www.firma.de/api/cap-table/

NameRequiredDescriptionDefault
exitNoOptional exit waterfall for one exit value.
langNoLanguage of names, messages, Markdown and the calculator link.en
poolNoThe existing VSOP pool before the round, in virtual shares.
loansNoConvertible loans (Wandeldarlehen) converting in this round.
formatNomd (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON.md
dayBasisNoDays per interest year.
foundersYes
poolModeNopost: everyone, the new investor included, carries the pool top-up. pre: the top-up counts into the pre-money, only existing shareholders carry it.post
preMoneyYesPre-money valuation. In euros.
investorsNo
poolTargetNoFree pool after the round in percent of all fully diluted shares: 10 means 10 %.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotent, openWorldHint=false and non-destructive, so the safety profile is covered without the text. The description adds genuinely useful context: it is free and requires no API key, each share carries a 1 € nominal value, and the answer can be Markdown or JSON. It stops short of stating determinism, rounding behaviour, or limits, and its claim that it 'Antwortet auf Deutsch' sits awkwardly against the schema's default lang='en'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The key capability is front-loaded in one dense sentence, which is good, but the remainder mixes German and English, repeats the calculator link twice (human URL plus REST URL, the human link also appearing in the format parameter), and carries boilerplate ('Calculate a cap table', 'Each share has a nominal value of 1 €' partly duplicated by the schema). Roughly a third of the text is not earning its place.

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 an 11-parameter computational tool with nested objects and no output schema, the description covers the important missing pieces: the domain semantics of loans/pool/exit, the free-and-keyless access model, the nominal value convention, and the output format choice. The only real gap is that it does not characterise what the returned numbers look like beyond 'md or json', which is partly unavoidable given the absent output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 82%, so the baseline is 3; the description earns above that by explaining the domain model behind the parameters — convertible loans with cap, discount, floor and interest; a VSOP pool top-up; capital increase with Agio; and an optional exit waterfall with liquidation preference. This tells an agent what the nested objects are for, not just what they are named, though the same text contradicts the lang default of 'en'.

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 opening sentence names a specific resource and domain: a GmbH/UG cap table after a financing round, enumerating the computed outputs (price per share, before/after percentages, convertible loans, pool top-up, exit waterfall). 'Calculate a cap table' reinforces the verb. It is clearly distinguishable from the sibling tools (tax, notary costs, receipts), though the clarity is diluted by trailing URL and language boilerplate.

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

Usage Guidelines3/5

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

Usage is only implied by the subject matter — an agent infers it should call this whenever a cap table or price-per-share calculation is needed. There is no explicit 'use this when…' or 'do not use for…', no statement of prerequisites beyond 'Free, no key', and no named alternatives among the siblings.

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

darlehensvertragfirma.de Darlehensvertrag-APIA
Read-onlyIdempotent
Inspect

Erstellt einen Darlehensvertrag nach deutschem Recht aus den festen Klauseln des Darlehensvertrag-Generators von firma.de: Gesellschafterdarlehen an die GmbH oder UG, Darlehen der Gesellschaft an ihren Gesellschafter, Privatdarlehen (auch unter Angehörigen) und Darlehen zwischen Unternehmen. Die Antwort enthält den Vertragstext (offene Angaben als [Platzhalter]), den Zins- und Tilgungsplan nach der deutschen Zinsmethode 30/360, die Hinweise des Generators zu Verbraucherkreditrecht, verdeckter Gewinnausschüttung, Schenkungsteuer und Insolvenz, Buchungssätze in SKR03 und SKR04 und einen Link, der den Entwurf im Generator öffnet: Dort bearbeiten beide Seiten ihn weiter, unterschreiben und laden PDF oder Word herunter. Kostenlos, ohne Schlüssel.

POST mit JSON in der Form des Entwurfs (wie draft in der Antwort): verschachtelt, etwa interest: { mode, rate }, oder mit denselben flachen Namen wie bei GET. Fehlende Felder und null lassen den Standard stehen, "" leert ein Text-, Datums- oder Zahlenfeld. format und draft gehen auch hier; draft darf ein Generator-Link oder ein Entwurf als Objekt sein, etwa draft aus einer früheren Antwort.

Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/darlehensvertrag/ – REST: https://www.firma.de/api/darlehensvertrag/

NameRequiredDescriptionDefault
dateNoDatum der Unterschrift; ohne Angabe heute (Europe/Berlin).
ibanNoOptional: IBAN des Darlehensnehmers für die Überweisung; sonst zahlt der Darlehensgeber auf ein benanntes Konto.
rateNoBei fixed: Zins in Prozent pro Jahr.
countNoBei installments und annuity: Anzahl der Raten.
draftNoEin Link des Generators oder nur der Teil nach #dv= als Ausgangspunkt; weitere Parameter ändern ihn. In einer GET-Adresse das # als %23 schreiben, sonst kommt der Entwurf nicht an. Bei POST auch ein Entwurf als Objekt, etwa draft aus einer früheren Antwort.
placeNoOrt der Unterschrift.
amountNoDarlehensbetrag in Euro.
formatNomd (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON.md
lenderNo
marginNoBei variable: Prozentpunkte über dem Basiszinssatz nach § 247 BGB (derzeit 1,52 %).
noticeNoBei open: Kündigungsfrist in Monaten für beide Seiten (Standard 3, § 488 Abs. 3 BGB).
signerNoMit managingDirector: sameExempt, er unterschreibt auch für die Gesellschaft und ist von § 181 BGB befreit; otherDirector, ein anderer Geschäftsführer unterschreibt für sie.
purposeNoOptional: wofür das Geld ist.
signingNo
approvalNoDie Gesellschafterversammlung hat dem Vertrag zugestimmt; nur angeben, wenn es den Beschluss gibt.
borrowerNo
interestNo
maturityNoBei bullet: Tag der Rückzahlung.
relationNo
scenarioNoWer leiht wem. shareholderLoan: ein Gesellschafter (Person oder Holding) leiht seiner GmbH oder UG. loanToShareholder: die GmbH oder UG leiht ihrem Gesellschafter. private: Privatperson an Privatperson. business: zwischen Unternehmen oder zwischen Person und Unternehmen, ohne Gesellschafterbeziehung.
securityNo
firstRateNoBei installments und annuity: Fälligkeit der ersten Rate.
formationNoBei shareholderLoan: Die Gesellschaft ist notariell gegründet, aber noch nicht eingetragen (in Gründung).
frequencyNoBei installments und annuity: wie oft eine Rate fällig ist (Standard monthly).
relativesNoBei private: Die Parteien sind Angehörige (§ 15 AO).
repaymentNo
reportingNoDie Gesellschaft, die das Geld bekommt, schickt dem Darlehensgeber jedes Jahr ihren Jahresabschluss.
lenderKindNoArt des Darlehensgebers. Das Szenario setzt sie; ändern lässt sie sich, wo das passt: bei shareholderLoan eine Holding als Gesellschafter, bei business jede Seite.
borrowerKindNoArt des Darlehensnehmers. Das Szenario setzt sie; ändern lässt sie sich, wo das passt: bei loanToShareholder eine Holding als Gesellschafter, bei business jede Seite.
disbursementNo
jurisdictionNoGerichtsstand am Sitz des Darlehensgebers; gilt nur zwischen Kaufleuten wie zwei GmbHs (§ 38 ZPO).
securityTextNoBei guarantee: Name und Anschrift des Bürgen; bei assignment: die abgetretenen Forderungen; bei other: die Sicherheit in Worten.
lenderAddressNoAnschrift des Darlehensgebers in einer Zeile: Straße und Hausnummer, PLZ und Ort.
subordinationNoQualifizierter Rangrücktritt des Darlehensgebers; nur wenn eine Gesellschaft das Geld bekommt.
earlyRepaymentNoVorzeitige Rückzahlung jederzeit, ganz oder in Teilen, ohne Entschädigung (Standard true).
lenderRegisterNoNur Unternehmen: Registergericht und Nummer.
borrowerAddressNoAnschrift des Darlehensnehmers in einer Zeile: Straße und Hausnummer, PLZ und Ort.
borrowerPurposeNoBei business mit einer Person als Darlehensnehmer: private (Standard; privat, dann Verbraucherdarlehen) oder business (für ein bestehendes Geschäft oder eine selbständige Tätigkeit).
interestPaymentNoWann Zinsen fällig sind, wenn das Darlehen endfällig oder unbefristet ist: monthly, quarterly, yearly (Standard) oder maturity, mit der Rückzahlung. Bei Raten sind sie mit jeder Rate fällig.
borrowerRegisterNoNur Unternehmen: Registergericht und Nummer.
disbursementDateNoBei transfer: Auszahlung bis; bei paid: ausgezahlt am; bei onCall: abrufbar bis. Ab hier läuft der Plan.
managingDirectorNoGesellschafter-Szenarien: Der Gesellschafter ist eine Person und zugleich Geschäftsführer der Gesellschaft (§ 181 BGB, § 43a GmbHG).
shareholderApprovalNoDie Gesellschafterversammlung hat dem Vertrag zugestimmt; nur angeben, wenn es den Beschluss gibt.
lenderRepresentativeNoNur Unternehmen: wer für den Darlehensgeber unterschreibt, mit Funktion.
borrowerRepresentativeNoNur Unternehmen: wer für den Darlehensnehmer unterschreibt, mit Funktion.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive and closed-world, so the safety profile is covered; the description adds real value on top by disclosing the full response composition (contract text with [Platzhalter], 30/360 schedule, legal notes, SKR03/SKR04 entries, generator link), that no key or cost is required, and the edit/sign/download workflow. Nothing contradicts readOnlyHint — generation is stateless output, not persistence — though error behavior and any limits are left unmentioned.

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 output description is front-loaded in the first sentence, followed by invocation rules and then access links, which is a sensible order. It is dense but not padded; the only redundancy is that the POST paragraph is repeated verbatim as the schema's top-level description.

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 45-parameter, deeply nested generator with no output schema, the description covers what comes back, how defaults and clearing work, and how the draft link round-trips — enough to call it correctly. Minor gaps remain: precedence when a flat and nested form are both supplied, and the default when scenario is omitted (the enum allows null without stating a fallback).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 82%, so baseline is 3; the description exceeds it by explaining that nested and flat parameter names are equivalent, that missing fields and null preserve defaults while "" clears a field, and that draft accepts either a generator link or a prior draft object. That naming-equivalence and clearing semantics are not obvious from the 45-property schema and materially reduce invocation errors.

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 and resource ('Erstellt einen Darlehensvertrag nach deutschem Recht') and enumerates the four covered scenarios (shareholder loan to GmbH/UG, company-to-shareholder, private incl. relatives, business-to-business), which effectively scopes it against siblings like schenkungsvertrag. It also lists what the response contains, so an agent knows both what it produces and which cases it covers without opening the schema.

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

Usage Guidelines3/5

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

The scenario enumeration implies when the tool applies, but there is no explicit when-to-use/when-not guidance and no sibling is named as an alternative (e.g. schenkungsvertrag for gifts, notarkosten for notary costs). The agent must infer routing from the scenario names alone.

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

einkommensteuerEinkommensteuer-Rechner APIA
Read-onlyIdempotent
Inspect

Rechnet für Selbstständige und Gründer vom Gewinn aus alles, was im Jahr an Steuern anfällt, mit derselben Engine wie der Einkommensteuer-Rechner von firma.de: Einkommensteuer nach dem Tarif des § 32a EStG (Grund- oder Splittingtabelle), Solidaritätszuschlag, Kirchensteuer und für Gewerbetreibende die Gewerbesteuer mit ihrer Anrechnung nach § 35 EStG. Dazu Kranken- und Pflegeversicherung als freiwillig gesetzlich Versicherte, die Günstigerprüfung zwischen Kindergeld und Kinderfreibeträgen, der Rechenweg bis zum zu versteuernden Einkommen, Durchschnitts- und Grenzsteuersatz, die Vorauszahlungen mit Terminen, was du monatlich zurücklegen kannst, Hinweise zum Fall und ein Link, der die Berechnung im Rechner öffnet. Jahre 2025, 2026, 2027; 2027 rechnet mit dem Regierungsentwurf, der noch nicht beschlossen ist. Eine unverbindliche Schätzung, allgemeine Steuerinformation, keine Steuerberatung. Kostenlos, ohne Schlüssel.

POST mit JSON: die Felder flach wie bei GET oder unter values, etwa { "year": 2026, "values": { "profit": 60000, "filing": "joint" } }. So passt auch input aus einer früheren Antwort: die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse.

Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/einkommensteuer/ – REST: https://www.firma.de/api/einkommensteuer/

NameRequiredDescriptionDefault
landNoNur bei church=true: Bundesland für den Kirchensteuersatz, 8 % in Bayern und Baden-Württemberg, sonst 9 %; Kürzel wie by, Name wie Bayern oder NRW. Ohne Angabe 9 %.
yearNoSteuerjahr: 2025, 2026, 2027. Standard 2026. 2027 rechnet mit dem Regierungsentwurf, der noch nicht beschlossen ist.
churchNoKirchensteuerpflichtig (bei filing=joint beide). Standard false.
filingNoVeranlagung: single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung von Ehe- oder eingetragenen Lebenspartnern, Splittingtabelle).single
formatNomd (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON.md
healthNoKrankenversicherung: gkv (freiwillig gesetzlich versichert; Standard), pkv (privat, mit pkvMonthly) oder none (keine Beiträge hier, etwa familienversichert oder über eine Anstellung).gkv
profitNoGewinn aus der Selbstständigkeit im Jahr in ganzen Euro (Einnahmen minus Betriebsausgaben), vor Gewerbesteuer; negativ bei Verlust. Standard 60.000.
valuesNoNur POST: die Felder als Objekt, statt sie flach zu schreiben.
pensionNoAltersvorsorge im Jahr (gesetzliche Rentenversicherung, Versorgungswerk, Rürup) in ganzen Euro; abziehbar bis zum Höchstbetrag (2026: 30.826 €, bei filing=joint doppelt). Standard 0.
sickPayNoNur bei health=gkv: mit Anspruch auf Krankengeld (allgemeiner Beitragssatz 14,6 % statt ermäßigt 14,0 %). Standard false.
activityNoTätigkeit: freiberuflich (§ 18 EStG, keine Gewerbesteuer; Standard) oder gewerblich (§ 15 EStG, mit Gewerbesteuer und ihrer Anrechnung nach § 35 EStG).freiberuflich
childrenNoKinder mit Kindergeld, 0 bis 10. Die Berechnung prüft je Kind, ob Kindergeld oder Kinderfreibeträge günstiger sind. Standard 0.
hebesatzNoNur bei activity=gewerblich: Hebesatz der Gemeinde für die Gewerbesteuer in Prozent, ganze Zahl von 200 bis 1000, etwa 490 für München. Standard 400.
extraRateNoNur bei health=gkv: Zusatzbeitrag deiner Kasse in Prozent, 0 bis 5. Ohne Angabe der durchschnittliche Zusatzbeitrag des Jahres (2026: 2,9 %).
pkvMonthlyNoNur bei health=pkv: Beitrag für die Basisabsicherung samt Pflegeversicherung im Monat in ganzen Euro, laut Bescheinigung der Versicherung. Standard 600.
otherIncomeNoWeitere eigene Einkünfte im Jahr nach Werbungskosten, etwa Arbeitslohn oder Vermietung, in ganzen Euro; darf negativ sein. Bei health=gkv zählen positive Einkünfte auch für die Beitragsbemessung, ein Verlust mindert sie nicht. Einbehaltene Lohnsteuer rechnet die API nicht an. Standard 0.
singleParentNoNur bei filing=single mit children ab 1: alleinerziehend, mit dem Entlastungsbetrag nach § 24b EStG. Standard false.
partnerIncomeNoNur bei filing=joint: Einkünfte des Partners im Jahr nach Werbungskosten in ganzen Euro; darf negativ sein. Standard 0.
otherDeductionsNoAbziehbare Sonderausgaben im Jahr in ganzen Euro, etwa Spenden, gezahlte Kirchensteuer oder 80 % der Kinderbetreuungskosten; außergewöhnliche Belastungen nur mit dem Teil über der zumutbaren Belastung. Abgezogen wie angegeben, darunter zählt der Pauschbetrag (36 €, bei filing=joint doppelt). Standard 0.
partnerDeductionsNoNur bei filing=joint: abziehbare Vorsorgeaufwendungen des Partners im Jahr in ganzen Euro (Renten- und Pflegebeitrag, Krankenbeitrag ohne den Anteil für das Krankengeld); abgezogen wie angegeben. Standard 0.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and no destructive effects. The description adds valuable context beyond that: it is an estimate, not tax advice, the 2027 calculation is based on a draft bill, and it is free without an API key. It could mention error handling or performance, but the added behavioral context is solid.

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 front-loaded with the core purpose and is dense for a 20-parameter tool, which is justified. It does repeat the 2027 draft caveat (also present in the year parameter schema) and could be more skimmable with structure, but there is little pure filler.

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?

For a complex tax calculator with no output schema, the description covers purpose, calculation scope, output components (Rechenweg, Durchschnitts-/Grenzsteuersatz, Vorauszahlungen, monthly savings recommendation, link), input format, years, legal disclaimer, and access model. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful usage detail: POST bodies can place fields flat or under a 'values' object, missing/null fields keep defaults, and input from a prior response can be passed unchanged. That goes beyond the per-parameter schema descriptions.

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 uses a specific verb ('Rechnet') and resource ('Einkommensteuer', 'Solidaritätszuschlag', 'Gewerbesteuer') and scopes it to 'Selbstständige und Gründer'. It names the exact calculation engine and enumerates the tax components, making the tool's function unmistakable.

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?

It clearly states the target audience (self-employed and founders), the supported years, and that the tool is free and keyless. However, it does not explicitly compare to siblings like gmbh_steuern or state when not to use it, leaving a small gap in routing guidance.

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

e_rechnungfirma.de E-Rechnungs-APIA
Read-onlyIdempotent
Inspect

Erstellt aus einem Rechnungsentwurf im JSON-Format eine E-Rechnung nach EN 16931 in der Syntax UN/CEFACT CII: als XRechnung 3.0 (für Behörden, mit Leitweg-ID) oder als ZUGFeRD 2.5.2 im Profil EN 16931 (für Unternehmen, als PDF/A-3 mit eingebettetem XML). Dieselbe Rechen- und XML-Logik wie der E-Rechnungs-Generator von firma.de: Positionsbeträge, Umsatzsteuer je Steuersatz, Summen und die Pflichtfelder von XRechnung. Die Antwort enthält die Hinweise des Generators, die Summen und das XML; mit ?format=xml kommt nur das XML, mit ?format=pdf die PDF-Datei. Die Beispiele des Generators sind mit dem KoSIT-Validator und mit Mustang (inklusive veraPDF) getestet. Kostenlos, ohne Schlüssel.

POST mit JSON in der Form des Entwurfs (wie draft in der Antwort): seller, buyer, lines (höchstens 50), number, issueDate, service, payment, taxCase, format, note, cashAccounting. Fehlende Felder und null lassen den Standard stehen, "" leert ein Feld. Ungültige Werte und unbekannte Felder geben 400 mit problems je Feld.

Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/e-rechnung/ – REST: https://www.firma.de/api/e-rechnung/

NameRequiredDescriptionDefault
noteNoFreier Hinweis auf der Rechnung (BT-22).
buyerNo
linesNoPositionen, höchstens 50.
formatNomd (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. xml: nur die E-Rechnung als XML.md
numberNoRechnungsnummer (BT-1).
sellerNo
paymentNo
serviceNo
taxCaseNotaxCase: standard (19 %, 7 % oder 0 % je Position), smallBusiness (Kleinunternehmer nach § 19 UStG, ohne Umsatzsteuer), reverseCharge (Steuerschuldnerschaft des Leistungsempfängers, § 13b UStG oder Leistungen an Unternehmen im EU-Ausland, nicht außerhalb der EU und nicht an Privatkunden; USt-IdNr. des Kunden nötig, bei Kunden im EU-Ausland auch deine), intraEu (innergemeinschaftliche Lieferung an ein Unternehmen, beide USt-IdNrn. nötig). Eine Rechnung, ein Steuerfall. Bis 250 € brutto braucht es meist keine E-Rechnung (Kleinbetragsrechnung), die API erzeugt sie trotzdem.
issueDateNoRechnungsdatum (BT-2); Standard heute.
cashAccountingNoIst-Versteuerung: druckt „Versteuerung nach vereinnahmten Entgelten“ (ab 2028 Pflicht).

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false and openWorldHint=false, so safety and idempotency are covered; the description adds that no API key or cost is involved and that invalid values or unknown fields produce a 400 with per-field problems. It does not disclose limits, rate limiting, or what the generator 'Hinweise' contain, and it introduces a '?format=pdf' query option that has no counterpart in the schema's md/json/xml enum, which muddies the contract.

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?

Purpose and the two variants are front-loaded in the first sentence, and the second paragraph carries the operational rules. Some space is spent on promotional/testimonial material (KoSIT-Validator, Mustang, veraPDF, link to the human calculator) that helps trust but is not needed to invoke the tool.

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?

There is no output schema, yet the description explains what comes back — generator hints, totals, and the XML, plus the md/json/xml renderings — and notes that responses are in German. For a nested 11-parameter generator this is nearly complete; only the pdf format mismatch and missing limits leave a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 64% schema coverage over 11 parameters, the schema does most of the work, but the description adds the crucial merge semantics — missing fields and null keep defaults, "" explicitly clears a field — which the per-field schema text does not state. It also enumerates the top-level draft fields (seller, buyer, lines ≤50, number, issueDate, service, payment, taxCase, format, note, cashAccounting) so the agent knows the shape before opening the schema, though the ?format=pdf mention conflicts with the enum.

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 opening sentence states a specific verb and resource — it turns a JSON draft into an E-Rechnung per EN 16931 — and immediately names the two concrete output flavors (XRechnung 3.0 for authorities with Leitweg-ID, ZUGFeRD 2.5.2 PDF/A-3 for companies). An agent can tell exactly what it gets and that none of the sibling calculators/contract tools does this.

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?

It gives a clear decision rule for the two output variants based on recipient type (Behörde vs. Unternehmen) and states the tool is free and needs no key, which is the main gating question for an agent. What is missing is any explicit statement of when not to use it (e.g., trivial amounts) or how it relates to the sibling tax/legal tools.

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

geschaeftsfuehrergehaltGeschäftsführergehalt APIA
Read-onlyIdempotent
Inspect

Rechnet für den Gesellschafter-Geschäftsführer einer GmbH oder UG drei Fragen in einem Durchgang, mit derselben Engine wie der Geschäftsführergehalt-Rechner von firma.de. Erstens die Sozialversicherung nach der Regel des Bundessozialgerichts: ab 50 % Anteil oder mit umfassender Sperrminorität im Gesellschaftsvertrag in der Regel sozialversicherungsfrei, sonst sozialversicherungspflichtig; verbindlich entscheidet die Clearingstelle der Deutschen Rentenversicherung Bund (§ 7a SGB IV). Zweitens, was dir bei Gehalt und Ausschüttung privat bleibt: in der GmbH Gehalt, Arbeitgeberanteile, Insolvenzgeldumlage und Zuschuss zur Kranken- und Pflegeversicherung als Betriebsausgaben, danach Körperschaftsteuer, Solidaritätszuschlag, Gewerbesteuer und die Rücklage der UG; bei dir Renten- und Arbeitslosenversicherung, Kranken- und Pflegeversicherung (pflichtversichert bis zur Jahresarbeitsentgeltgrenze, freiwillig gesetzlich mit Beiträgen auch auf die Ausschüttung und einen steuerpflichtigen Zuschuss, oder privat) und die Einkommensteuer des Jahres auf Gehalt und Ausschüttung zusammen, mit Abgeltungsteuer, Günstigerprüfung und Teileinkünfteverfahren nebeneinander, Solidaritätszuschlag und Kirchensteuer. Dazu eine Kurve über das Gehalt von 0 bis zum ganzen Gewinn mit dem Gehalt, bei dem bei diesen Angaben am meisten privat bleibt (ein Rechenergebnis, keine Empfehlung: das Finanzamt erkennt nur ein angemessenes Gehalt an, fast der ganze Gewinn als Gehalt ist ein typischer Fall der verdeckten Gewinnausschüttung). Drittens Hinweise zur Angemessenheit: Verlust durch das Gehalt, Formvorschriften für beherrschende Gesellschafter und auf Wunsch die grobe Orientierung der Karlsruher Tabelle 2009, nie ein Urteil. Dazu der Rechenweg, Hinweise zum Fall und ein Link, der die Berechnung im Rechner öffnet. Jahre 2025, 2026, 2027; 2027 rechnet mit Entwürfen (Einkommensteuertarif, Arbeitnehmer-Pauschbetrag und Rechengrößen der Sozialversicherung). Eine unverbindliche Schätzung, allgemeine Steuerinformation, keine Steuerberatung. Kostenlos, ohne Schlüssel.

POST mit JSON: die Felder flach wie bei GET oder unter values, etwa { "year": 2026, "values": { "profitBeforeSalary": 200000, "salary": 90000, "health": "gkv" } }. So passt auch input aus einer früheren Antwort: die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse.

Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/geschaeftsfuehrergehalt/ – REST: https://www.firma.de/api/geschaeftsfuehrergehalt/

NameRequiredDescriptionDefault
landNoNur bei church=true, Sozialversicherungspflicht oder employerSubsidy=true: Bundesland, für den Kirchensteuersatz (8 % in Bayern und Baden-Württemberg, sonst 9 %) und die Aufteilung der Pflegeversicherung zwischen GmbH und dir in Sachsen; Kürzel wie by, Name wie Bayern oder NRW. Ohne Angabe 9 % und nicht Sachsen.
yearNoSteuerjahr: 2025, 2026, 2027. Standard 2026. 2027 rechnet den Einkommensteuertarif und den Arbeitnehmer-Pauschbetrag (1.430 € statt 1.230 €) mit dem Regierungsentwurf und die Rechengrößen der Sozialversicherung mit dem Kabinettsentwurf, die noch nicht beschlossen sind.
shareNoDein Anteil an der GmbH in Prozent, 1 bis 100, bis zu zwei Nachkommastellen (33,33). Bestimmt deinen Teil der Ausschüttung und den Sozialversicherungsstatus: ab 50 % nach der Regel des BSG in der Regel sozialversicherungsfrei. Standard 100.
churchNoKirchensteuerpflichtig (bei joint beide). Standard false.
filingNoVeranlagung: single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung, Splittingtabelle, doppelte Pauschbeträge und Höchstbeträge).single
formatNomd (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON.md
healthNoKrankenversicherung: pkv (privat; Standard) oder gkv (gesetzlich). Bei Sozialversicherungspflicht und einem Gehalt bis zur Jahresarbeitsentgeltgrenze (2025: 73.800 €, 2026: 77.400 €, 2027: 84.150 €) rechnet die API gesetzlich pflichtversichert, auch bei pkv, und sagt es in checks. Freiwillig gesetzlich Versicherte zahlen Kranken- und Pflegeversicherung auch auf die Ausschüttung.pkv
methodNoBesteuerung der Ausschüttung: auto (die günstigste; Standard), abgeltung (Abgeltungsteuer 25 %), guenstiger (Günstigerprüfung: dein Tarif, wenn er niedriger ist) oder teileinkuenfte (Teileinkünfteverfahren auf Antrag: 60 % zum Tarif, für einen Geschäftsführer mit mindestens 1 % möglich; der Antrag bindet 5 Jahre).auto
payoutNoAusschüttungsquote: wie viel Prozent des ausschüttbaren Jahresüberschusses an die Gesellschafter gehen, ganze Zahl von 0 bis 100; der Rest bleibt in der GmbH. Standard 100.
salaryNoDein Bruttojahresgehalt als Geschäftsführer (Festgehalt, zwölf gleiche Monate) in ganzen Euro, 0 bis 5.000.000; ein Monatsgehalt mal 12. Über dem Gewinn vor Gehalt macht die GmbH Verlust, die API rechnet es und sagt es in checks. Standard 60.000.
valuesNoNur POST: die Felder als Objekt, statt sie flach zu schreiben.
revenueNoUmsatz der GmbH im Jahr in ganzen Euro, für die Größenklasse der Karlsruher Tabelle (bis 2,5, 5, 25 und 50 Mio. €), 0 bis 1.000.000.000. Ändert keinen Betrag. Ohne Angabe null.
sickPayNoNur bei health=gkv und Sozialversicherungsfreiheit: freiwillig versichert mit Anspruch auf Krankengeld (allgemeiner Beitragssatz 14,6 % auf das Gehalt), sonst ermäßigter Beitragssatz (14 %). Auf die Ausschüttung gilt immer der ermäßigte Satz; ohne Gehalt ändert das Feld nichts. Standard true.
hebesatzNoHebesatz der Gemeinde für die Gewerbesteuer in Prozent, ganze Zahl von 200 bis 1000, etwa 490 für München. Unter dem Mindesthebesatz des Jahres (2025: 200 %, 2026: 200 %, 2027: 280 %) rechnet die API mit dem Mindesthebesatz und sagt es in checks. Standard 400.
industryNoBranche für die grobe Orientierung der Karlsruher Tabelle 2009: industrie, grosshandel, einzelhandel, freieBerufe, dienstleistung (sonstige Dienstleistung) oder handwerk. Nur zusammen mit revenue oder employees; ändert keinen Betrag. Ohne Angabe null.
childlessNoNur bei health=gkv oder Sozialversicherungspflicht: ohne Kinder, mit dem Zuschlag zur Pflegeversicherung (0,6 Prozentpunkte, nur dein Anteil). Standard true.
employeesNoMitarbeiter der GmbH, für die Größenklasse der Karlsruher Tabelle (bis 20, 50, 100 und 500), ganze Zahl von 0 bis 100.000. Ändert keinen Betrag. Ohne Angabe null.
extraRateNoNur bei health=gkv oder Sozialversicherungspflicht: Zusatzbeitrag deiner Krankenkasse in Prozent, 0 bis 5, bis zu zwei Nachkommastellen. null oder ohne Angabe: der durchschnittliche Zusatzbeitrag des Jahres (2025: 2,5 %, 2026: 2,9 %, 2027: 2,9 %).
legalFormNoRechtsform: gmbh (Standard) oder ug (Unternehmergesellschaft haftungsbeschränkt; ein Viertel des Jahresüberschusses geht in die gesetzliche Rücklage nach § 5a Abs. 3 GmbHG und wird nicht ausgeschüttet, das Gehalt mindert sie mit).gmbh
pkvMonthlyNoNur bei health=pkv: dein Monatsbeitrag zur privaten Kranken- und Pflegeversicherung in ganzen Euro, als Basisabsicherung gerechnet, 0 bis 5.000. Standard 600.
otherIncomeNoDein übriges zu versteuerndes Einkommen im Jahr ohne Gehalt und Ausschüttung in ganzen Euro, bei joint etwa das deines Partners; ein zu versteuerndes Einkommen, keine Einnahmen, 0 bis 5.000.000. Standard 0.
employerSubsidyNoNur bei Sozialversicherungsfreiheit: die GmbH zahlt dir vertraglich einen Zuschuss zur Kranken- und Pflegeversicherung in Höhe des gesetzlichen Arbeitgeberzuschusses (höchstens die Hälfte des Beitrags). Er ist dann steuerpflichtiger Arbeitslohn und Betriebsausgabe der GmbH. Bei Sozialversicherungspflicht zahlt die GmbH den Zuschuss ohnehin steuerfrei, das Feld zählt dann nicht. Standard false.
blockingMinorityNoNur bei share unter 50: eine umfassende Sperrminorität im Gesellschaftsvertrag (Satzung), mit der du jeden Beschluss verhindern kannst; nach der Regel des BSG dann in der Regel sozialversicherungsfrei. Eine Stimmrechtsvereinbarung außerhalb der Satzung zählt nicht. Standard false.
profitBeforeSalaryNoGewinn der GmbH im Jahr vor deinem Gehalt und vor Körperschaft- und Gewerbesteuer, alle übrigen Kosten schon abgezogen, in ganzen Euro; negativ bei Verlust, -5.000.000 bis 50.000.000. Standard 150.000.

TDQS

A3.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial context beyond that: the result is a calculation, not a recommendation; the Finanzamt only accepts an appropriate salary and an all-profit salary is a classic verdeckte Gewinnausschüttung; 2027 figures are based on unresolved draft legislation; and it is explicitly an unverbindliche Schätzung, not tax advice. It also discloses response language (German), format options, and that a link back into the calculator is returned.

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 core description is one enormous multi-clause German sentence that packs the entire tax mechanics (Körperschaftsteuer, Gewerbesteuer, Abgeltungsteuer, Günstigerprüfung, Teileinkünfteverfahren, Kirchensteuer) into an unscannable block. Much of that detail restates what the per-parameter schema already documents. Only the trailing POST/format paragraphs are cleanly structured and front-loaded information is buried.

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 24-parameter, zero-required calculation tool with no output schema, the description covers what comes back (Rechenweg, Hinweise zum Fall, salary curve, calculator link), the year coverage and draft caveat, and the input conventions. An agent has enough to call it correctly; only the relationship to the sibling tax tools is left unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter already carries a detailed description plus x-only-when conditions, so the baseline is 3. The description still adds real value by explaining the POST body shape (flat fields or under values), that an earlier response's input object can be passed through unchanged, and that missing or null fields fall back to calculator defaults — behavior not evident from the property list alone.

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 opening sentence names a specific verb and resource: it computes three questions in one pass for the Gesellschafter-Geschäftsführer of a GmbH/UG, using the same engine as the firma.de calculator. The three computed areas (Sozialversicherungsstatus, net private outcome, Angemessenheit) are enumerated concretely. It does not differentiate itself from siblings such as gmbh_steuern or einkommensteuer, which overlap thematically.

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

Usage Guidelines3/5

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

It gives clear invocation guidance: POST with JSON, fields flat or nested under values, missing/null fields keep defaults, format also settable via ?format=md. It also states the tool is free and keyless. What is missing is when to choose this over the sibling tax tools — no exclusions or alternative routing are stated.

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

gmbh_steuernGmbH-Steuerrechner APIA
Read-onlyIdempotent
Inspect

Rechnet für eine GmbH oder UG vom Gewinn vor Steuern aus, was an Steuern anfällt und was dir als Gesellschafter bleibt, mit derselben Engine wie der GmbH-Steuerrechner von firma.de. In der GmbH: Körperschaftsteuer nach § 23 KStG (15 % bis 2027, danach ein Punkt weniger je Jahr bis 10 % ab 2032), Solidaritätszuschlag, Gewerbesteuer ohne Freibetrag mit dem Hebesatz der Gemeinde (Mindesthebesatz 200 %, ab 2027 280 %), Verlustvortrag mit Mindestbesteuerung und die Rücklage der UG. Bei dir: die Ausschüttung mit Abgeltungsteuer, Günstigerprüfung und Teileinkünfteverfahren nebeneinander, gerechnet mit dem Einkommensteuertarif nach § 32a EStG, dazu Solidaritätszuschlag, Kirchensteuer und für freiwillig gesetzlich Versicherte Kranken- und Pflegeversicherung; oder deine Holding-GmbH als Empfängerin nach § 8b KStG. Dazu der Rechenweg, die Senkung der Körperschaftsteuer bis 2032, ein Vergleich mit einem Einzelunternehmen mit demselben Gewinn, Vorauszahlungen mit Terminen, Hinweise zum Fall und ein Link, der die Berechnung im Rechner öffnet. Der Gewinn zählt nach dem Geschäftsführergehalt; das Gehalt selbst rechnet die API nicht. Jahre 2025, 2026, 2027; 2027 rechnet die Einkommensteuer des Gesellschafters mit dem Regierungsentwurf, der noch nicht beschlossen ist. Eine unverbindliche Schätzung, allgemeine Steuerinformation, keine Steuerberatung. Kostenlos, ohne Schlüssel.

POST mit JSON: die Felder flach wie bei GET oder unter values, etwa { "year": 2026, "values": { "profit": 150000, "hebesatz": 450, "share": 50 } }. So passt auch input aus einer früheren Antwort: die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse.

Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/gmbh-steuern/ – REST: https://www.firma.de/api/gmbh-steuern/

NameRequiredDescriptionDefault
landNoNur bei recipient=person und church=true: Bundesland für den Kirchensteuersatz, 8 % in Bayern und Baden-Württemberg, sonst 9 %; Kürzel wie by, Name wie Bayern oder NRW. Ohne Angabe 9 %.
yearNoSteuerjahr: 2025, 2026, 2027. Standard 2026. 2027 rechnet die Einkommensteuer des Gesellschafters mit dem Regierungsentwurf, der noch nicht beschlossen ist.
shareNoDein Anteil an der GmbH in Prozent, 1 bis 100, bis zu zwei Nachkommastellen (33,33). Bestimmt deinen Teil der Ausschüttung, ob das Teileinkünfteverfahren möglich ist (ab 25 %, mit beruflicher Tätigkeit und maßgeblichem unternehmerischem Einfluss, etwa als Geschäftsführer, ab 1 %) und bei einer Holding, ob § 8b KStG greift (ab 10 %, für die Gewerbesteuer ab 15 %). Standard 100.
churchNoNur bei recipient=person: kirchensteuerpflichtig (bei joint beide). Standard false.
filingNoNur bei recipient=person: Veranlagung, single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung, Splittingtabelle, doppelter Sparer-Pauschbetrag).single
formatNomd (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON.md
healthNoNur bei recipient=person: Krankenversicherung. other (privat versichert oder pflichtversichert über eine Anstellung, keine Beiträge auf die Ausschüttung; Standard) oder gkv (freiwillig gesetzlich versichert: Kranken- und Pflegeversicherung auch auf die Ausschüttung, bis zur Beitragsbemessungsgrenze).other
methodNoNur bei recipient=person: Besteuerung der Ausschüttung. auto (die günstigste der möglichen; Standard), abgeltung (Abgeltungsteuer 25 %), guenstiger (Günstigerprüfung: dein Tarif, wenn er niedriger ist, sonst Abgeltungsteuer) oder teileinkuenfte (Teileinkünfteverfahren auf Antrag: 60 % zum Tarif; nicht möglich, rechnet die API die günstigste und sagt es in checks).auto
payoutNoAusschüttungsquote: wie viel Prozent des ausschüttbaren Jahresüberschusses an die Gesellschafter gehen, ganze Zahl von 0 bis 100; der Rest bleibt in der GmbH. Standard 100.
profitNoGewinn der GmbH vor Körperschaft- und Gewerbesteuer im Jahr in ganzen Euro, nach dem Gehalt des Geschäftsführers; negativ bei Verlust, -5.000.000 bis 50.000.000. Standard 100.000.
valuesNoNur POST: die Felder als Objekt, statt sie flach zu schreiben.
hebesatzNoHebesatz der Gemeinde für die Gewerbesteuer in Prozent, ganze Zahl von 200 bis 1000, etwa 490 für München. Unter dem Mindesthebesatz des Jahres (2025: 200 %, 2026: 200 %, 2027: 280 %) rechnet die API mit dem Mindesthebesatz und sagt es in checks. Standard 400.
childlessNoNur bei recipient=person und health=gkv: ohne Kinder, mit dem Zuschlag zur Pflegeversicherung. Standard true.
legalFormNoRechtsform: gmbh (Standard) oder ug (Unternehmergesellschaft haftungsbeschränkt; ein Viertel des Jahresüberschusses abzüglich Verlustvortrag geht in die gesetzliche Rücklage nach § 5a Abs. 3 GmbHG und wird nicht ausgeschüttet).gmbh
recipientNoWer die Anteile hält: person (du privat; Standard) oder holding (deine Holding-GmbH; ab 10 % Anteil 95 % der Ausschüttung körperschaftsteuerfrei nach § 8b KStG, ab 15 % auch gewerbesteuerfrei; gerechnet mit demselben Hebesatz).person
otherIncomeNoNur bei recipient=person: dein übriges zu versteuerndes Einkommen im Jahr ohne die Ausschüttung in ganzen Euro, etwa aus deinem Geschäftsführergehalt nach allen Abzügen; bei joint das gemeinsame. Ein zu versteuerndes Einkommen, keine Einnahmen, 0 bis 5.000.000. Standard 0.
saverAllowanceNoNur bei recipient=person: der Sparer-Pauschbetrag (1.000 €, bei joint 2.000 €) ist noch frei. Die GmbH behält trotzdem auf die ganze Ausschüttung Kapitalertragsteuer ein; der Pauschbetrag wirkt erst mit der Steuererklärung, nicht beim Teileinkünfteverfahren. Standard true.
activeInCompanyNoNur bei recipient=person: du arbeitest für die GmbH und hast dadurch maßgeblichen unternehmerischen Einfluss, etwa als Geschäftsführer; dann ist das Teileinkünfteverfahren schon ab 1 % Anteil möglich, sonst ab 25 %. Standard true.
lossCarryforwardNoVerlustvortrag aus Vorjahren in ganzen Euro, ein Betrag für Körperschaft- und Gewerbesteuer; über 1.000.000 € Gewinn nur teilweise verrechenbar (Mindestbesteuerung). Mindert vereinfacht auch den ausschüttbaren Betrag. Standard 0.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare a read-only, idempotent, non-destructive, closed-world call, and the description adds material context beyond them: free and keyless, German-language responses in markdown or JSON, retention of defaults for omitted/null fields, a link back into the human calculator, and the important caveat that 2027 income tax uses an undecided government draft. It also discloses the liability framing ('unverbindliche Schätzung, keine Steuerberatung'), which an agent needs when relaying results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

Purpose, caveats and POST mechanics are front-loaded, which is good, but the long middle block enumerating Körperschaftsteuer rate schedules through 2032, § references and the list of response components does not help an agent decide or call. That informational mass dilutes the operational content an agent actually needs.

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 19-parameter, no-output-schema tool this covers what is needed: how to submit parameters, default/null behavior, output format choice, language, and the main caveat about 2027. The return payload is described in narrative form (Rechenweg, comparison, prepayments, checks, link), which compensates for the missing output schema. Only the explicit routing to alternative calculators is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds real meaning for the request shape: the `values` wrapper versus flat GET-style fields, the passthrough of a prior `input` object, and the query-string alternative `?format=md` that the schema does not mention. The tax-law parameter semantics themselves (share thresholds, hebesatz minimums, recipient) are already carried by the schema descriptions.

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?

Opens with a concrete verb and resource: it computes the taxes on a GmbH/UG profit before tax and what remains for the shareholder, using the same engine as firma.de's calculator. The scope boundary ('Der Gewinn zählt nach dem Geschäftsführergehalt; das Gehalt selbst rechnet die API nicht') further separates it from the sibling geschaeftsfuehrergehalt and from einkommensteuer, which covers only personal income.

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?

States the input contract for both GET-style flat fields and POST with a `values` object, notes that missing fields and nulls keep calculator defaults, that `input` from a previous response can be reused unchanged, and that `format` / `?format=md` are available. It also implies a boundary (salary is not computed here), but never explicitly names a sibling calculator or a when-not-to-use condition.

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

gruendungsbudgetGründungsbudget-API von firma.deA
Read-onlyIdempotent
Inspect

Rechnet aus Eckdaten eines geplanten Unternehmens das erste Gründungsbudget: Startfinanzierung (größte kumulierte Finanzierungslücke über Vorlauf und 24 Monate plus Reserve), was vor dem Start anfällt, die Lücke im Betrieb, verfügbares Kapital, noch zu finanzieren, tiefster Kontostand, Liquidität Monat für Monat, Kostentreiber und drei Szenarien. Jede Angabe ist optional; fehlende Werte sind Richtwerte der Branche. Offen, ohne Schlüssel, speichert nichts.

Gründungsbudget aus einem JSON-Objekt, mit eigenen Kostenpositionen und Mitarbeitern.

Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/gruendungsbudget/ – REST: https://www.firma.de/api/gruendungsbudget/

NameRequiredDescriptionDefault
cityNoOrt für die Gebühren der Gewerbeanmeldung; andere = jede andere Stadt.
hiresNo
itemsNoBekannte Kostenpositionen; ersetzen geschätzte mit gleichem key.
equityNoEigenkapital der Gründer in Euro (Stammkapital eingeschlossen).
formatNomd (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON.md
capitalNoStammkapital einer UG oder GmbH in Euro (Finanzierung, keine Ausgabe).
vatModeNoUmsatzsteuer: regel (Regelbesteuerung) oder klein (Kleinunternehmer).
vatRateNoUmsatzsteuersatz auf den Umsatz bei Regelbesteuerung: 19 oder 7.
ventureNoKurzer Name des Vorhabens, z. B. „Yogastudio in München“.
foundersNoAnzahl der Gründer.
industryNoBranche; sie bestimmt die Richtwerte für Kosten, Umsatz und Anlauf.
committedNoZugesagte Finanzierung (Kredit, Förderung, Investor) in Euro.
employeesNoGeplante Mitarbeiter (GET-Kurzform; POST nimmt hires).
growthPctNoUmsatzwachstum nach der Anlaufzeit in Prozent pro Jahr.
legalFormNoRechtsform: einzel, freiberuf, gbr, ug, gmbh. Ohne Angabe die übliche der Branche.
workplaceNoArbeitsplatz; bestimmt Miete, Kaution und Einrichtung.
rampMonthsNoMonate von der ersten Rechnung bis zum vollen Umsatz.
reservePctNoReserve in Prozent auf die größte Finanzierungslücke.
startMonthNoErster Geschäftsmonat als YYYY-MM. Ohne Angabe der nächste Monat.
otherIncomeNoDavon gedeckt durch weiteres Einkommen pro Monat (Gründungszuschuss, Teilzeitjob, Partner).
variablePctNoVariable Kosten (Ware, Material, Versand, Gebühren) in Prozent vom Nettoumsatz.
paymentDelayNoMonate zwischen Rechnung und Zahlung.
employeeGrossNoBruttogehalt pro Mitarbeiter und Monat in Euro (zu employees).
livingMonthlyNoPrivater Bedarf aller Gründer zusammen pro Monat in Euro, inkl. Krankenversicherung.
openFinancingNoBeantragte, noch nicht zugesagte Finanzierung in Euro; wird gezeigt, nicht gezählt.
revenueMonthlyNoGeplanter Nettoumsatz pro Monat, sobald es normal läuft, in Euro.
firstRevenueMonthNoMonat der ersten Rechnung als YYYY-MM.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: open access with no key, no data stored, benchmark substitution for omitted values, and the md-vs-json response mode. It does not describe latency or limits, but that is minor here.

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 structure is sensible: what it computes, how to feed it, what comes back, and reference links. The opening sentence is dense – a long enumeration of outputs – but each clause carries information an agent needs, and there is no filler. Slightly tighter front-loading would earn a 5.

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 27-parameter calculator with no output schema, the description covers what the result contains (financing gap, runway, monthly liquidity, cost drivers, scenarios), the output language and format, and the defaults behavior. Return-value detail is thin, but the enumerated output list compensates reasonably for the absent output schema.

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 96%, so nearly every one of the 27 parameters is already documented in the schema, and the description does not restate or clarify individual parameter semantics. It only adds the framing that all fields are optional and default to industry values, plus the role of own cost items and hires. That is the baseline 3 for a schema-heavy tool.

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 names a concrete verb (rechnet aus) and a concrete resource (erstes Gründungsbudget), then enumerates the actual outputs it produces (Startfinanzierung, Lücke im Betrieb, tiefster Kontostand, Liquidität Monat für Monat, drei Szenarien). This makes it clearly distinguishable from sibling finance tools like cap_table or gmbh_steuern, which cover different artifacts.

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

Usage Guidelines3/5

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

It explains the operating conditions well – every input is optional, missing values fall back to industry benchmarks, no key is required, and nothing is persisted – and it says the response comes in German as text or JSON. However, it never states when to choose this over a sibling tool or when a founding-budget calculation is not appropriate, so the when-to-use guidance remains implied.

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

notarkostenNotarkosten-Rechner APIA
Read-onlyIdempotent
Inspect

Rechnet Notar- und Gerichtsgebühren nach dem GNotKG, die Grunderwerbsteuer je Bundesland und die Gebühren von Testaments- und Vorsorgeregister, mit derselben Engine wie der Notarkosten-Rechner von firma.de: Immobilienkauf, neue Grundschuld, Löschung einer Grundschuld, Schenkung einer Immobilie, Testament und Erbvertrag, Erbschein, Vorsorgevollmacht, Ehevertrag, Beglaubigung und GmbH- oder UG-Gründung. Jeder Posten kommt mit KV-Nummer oder Norm, Rechenweg und wer ihn üblicherweise zahlt; dazu die Summen, Posten, die nur in manchen Fällen anfallen, Hinweise zum Fall und ein Link, der die Berechnung im Rechner öffnet. Das Ergebnis ist eine unverbindliche Schätzung: Die maßgebliche Kostenberechnung erstellt der Notar (§ 19 GNotKG). Kostenlos, ohne Schlüssel.

POST mit JSON: case und die Felder des Falls, flach wie bei GET oder unter values, etwa { "case": "kauf", "land": "be", "values": { "price": 420000 } }. So passt auch input aus einer früheren Antwort: case dazu, die Felder von input unverändert. Fehlende Felder und null behalten den Standard des Rechners. format geht auch hier, ebenso ?format=md in der Adresse.

Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/notarkosten/ – REST: https://www.firma.de/api/notarkosten/

NameRequiredDescriptionDefault
caseYesDer Fall: kauf (Immobilienkauf), grundschuld (neue Grundschuld bestellen), loeschung (Grundschuld löschen), schenkung (Schenkung einer Immobilie), testament (Einzeltestament, gemeinschaftliches Testament, Erbvertrag), erbschein (Erbscheinsantrag), vollmacht (Vorsorgevollmacht), ehevertrag, beglaubigung (Unterschrift, Entwurf oder Kopien) oder gmbh (GmbH- oder UG-Gründung). Deutsche Wörter gehen auch, etwa hauskauf, wohnungskauf, schenkung, berlinertestament, erbvertrag, vorsorgevollmacht, unterschriftsbeglaubigung, ug. Ein Wort, das eine Variante nennt, setzt sie, wenn der Aufruf das Feld nicht selbst angibt: wohnungskauf rechnet eine Wohnung, berlinertestament ein gemeinschaftliches Testament, erbvertrag einen Erbvertrag, gmbh eine GmbH, ug eine UG.
deedNoGründungsurkunde: muster (Musterprotokoll; Standard) oder satzung (eigener Gesellschaftsvertrag). Fall: gmbh.
formNocase=vollmacht: Form: beurkundung (der Notar entwirft und beurkundet; Standard) oder beglaubigung (der Notar beglaubigt die Unterschrift unter deinem Text). case=gmbh: Rechtsform: ug oder gmbh. case=gmbh rechnet ohne form eine GmbH, case=ug eine UG.
kindNocase=testament: Art: einzel (Einzeltestament; Standard), gemeinschaftlich (Ehegatten, etwa Berliner Testament), erbvertrag (beide setzen Erben ein) oder erbvertragEinseitig (nur Person 1 setzt ein, auch einseitig). case=beglaubigung: Was der Notar tun soll: signature (die Unterschrift unter deinem fertigen Text beglaubigen; Standard), draft (Entwurf und Beglaubigung) oder copies (Kopien beglaubigen).
landNoBundesland, in dem das Grundstück liegt, nicht der Sitz des Notars: Kürzel wie be, Name wie Berlin oder NRW. Davon hängt nur die Grunderwerbsteuer ab; ohne land nennt die Antwort die Spanne von 3,5 bis 6,5 %. Fall: kauf, schenkung.
debtsNoSchulden des Erblassers selbst in ganzen Euro; Beerdigungskosten und Pflichtteile zählen nicht ab (§ 40 GNotKG). Fall: erbschein.
minorNoDie beschenkte Person ist minderjährig: Der Notar holt meist die Genehmigung des Familiengerichts ein (Vollzug). Fall: schenkung.
pagesNoNur bei kind=copies: Seiten je Dokument; jede angefangene Seite zählt. Standard 10. Fall: beglaubigung.
priceNoKaufpreis in ganzen Euro. Fall: kauf.
rightNoRecht, das sich der Schenker vorbehält: niessbrauch (Standard), wohnrecht oder none. Es mindert den Wert für den Notar nicht und wird im Grundbuch eigens eingetragen. Fall: schenkung.
routeNoWo die eidesstattliche Versicherung abgegeben wird: notar (Standard) oder gericht (beim Nachlassgericht). Fall: erbschein.
scopeNocase=vollmacht: Umfang: general (Vorsorge- oder Generalvollmacht; Standard) oder health (nur Gesundheit und persönliche Angelegenheiten). case=ehevertrag: Umfang: full (das ganze Vermögen; Standard) oder specific (nur bestimmtes Vermögen, mit specificValue).
valueNocase=schenkung: Verkehrswert der Immobilie in ganzen Euro. case=beglaubigung: Nur bei kind=signature oder draft: Geschäftswert der Erklärung in ganzen Euro, etwa der Betrag einer Grundschuld.
agentsNoAnzahl der Bevollmächtigten, im Vorsorgeregister Vertrauenspersonen genannt. Standard 1. Fall: vollmacht.
amountNocase=grundschuld: Betrag der neuen Grundschuld in ganzen Euro, meist so hoch wie der Kredit. Gerechnet ist eine neue Buchgrundschuld. case=loeschung: Nennbetrag der Grundschuld im Grundbuch in ganzen Euro, nicht die Restschuld.
assetsNoVermögen des Vollmachtgebers ohne Abzug von Schulden in ganzen Euro; bei couple=true je Person. Fall: vollmacht.
coupleNoFür ein Paar: zwei Vollmachten in zwei Urkunden, je eine pro Person, jede mit assets. Fall: vollmacht.
debts1NoSchulden von Person 1 oder Ehegatte 1 in ganzen Euro; sie zählen höchstens bis zur Hälfte des Vermögens (§§ 100, 102 GNotKG). Fall: testament, ehevertrag.
debts2NoSchulden von Person 2 oder Ehegatte 2 in ganzen Euro; beim Testament nur bei kind=gemeinschaftlich oder erbvertrag. Fall: testament, ehevertrag.
escrowNocase=kauf: Notaranderkonto: Der Kaufpreis läuft über ein Konto des Notars, was ein berechtigtes Sicherungsinteresse braucht (§ 57 BeurkG); jede Auszahlung kostet gesondert. Standard false. case=gmbh: Betreuung: Der Notar reicht die Anmeldung erst ein, wenn die Einzahlung nachgewiesen ist. Ohne Angabe wie im Gründungskosten-Rechner: an bei eigener Satzung, aus beim Musterprotokoll.
estateNoNachlass: alles, was der Erblasser hinterlassen hat, zum Wert am Todestag, in ganzen Euro. Fall: erbschein.
filingNoNur bei form=beglaubigung: wer die Vollmacht im Zentralen Vorsorgeregister registriert, notar (Standard) oder selbst (online). Nach einer Beurkundung meldet der Notar an. Fall: vollmacht.
formatNomd (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON.md
onlineNoBeurkundung per Video über das System der Bundesnotarkammer. Fall: gmbh.
payoffNoNur mit sellerCharge: Ablösebetrag, den die Bank des Verkäufers noch bekommt, in ganzen Euro. Ohne Angabe ist der Treuhandauftrag ein Posten, der zusätzlich anfallen kann, geschätzt mit dem Nennbetrag. Fall: kauf.
regimeNoWas der Vertrag regelt: guetertrennung (Standard), guetergemeinschaft, modifiziert (modifizierte Zugewinngemeinschaft) oder sonstiges. Fall: ehevertrag.
valuesNoNur POST: die Felder des Falls als Objekt, statt sie flach neben case zu schreiben.
assets1NoVermögen von Person 1 (testament) oder Ehegatte 1 (ehevertrag) in ganzen Euro, zum heutigen Wert. Fall: testament, ehevertrag.
assets2NoVermögen von Person 2 oder Ehegatte 2 in ganzen Euro; beim Testament nur bei kind=gemeinschaftlich oder erbvertrag. Fall: testament, ehevertrag.
capitalNoStammkapital in ganzen Euro: UG 1 bis 24.999, GmbH 25.000 bis 10.000.000, mindestens 1 € je Gesellschafter. Ohne Angabe 1.000 € bei der UG und 25.000 € bei der GmbH. Fall: gmbh.
variantNoWer die Löschungszustimmung entwirft: beglaubigung (Formular der Bank, der Notar beglaubigt nur; Standard) oder entwurf (der Notar entwirft sie und holt die Bewilligung der Bank). Fall: loeschung.
mortgageNoGrundschuld für den Kredit des Käufers in ganzen Euro, eine eigene Urkunde; 0 (Standard) ohne Kredit. Fall: kauf.
movablesNoDavon Einbauküche, Möbel und Inventar in ganzen Euro: mindert die Grunderwerbsteuer; Notar und Grundbuch sind mit dem vollen Kaufpreis gerechnet. Fall: kauf.
propertyNoObjekt: haus (Standard), wohnung (Eigentumswohnung, mit verwalter) oder grundstueck. Bei Haus und Grundstück fragt der Notar die Gemeinde nach ihrem Vorkaufsrecht, bei einer Wohnung nicht. Fall: kauf.
relationNoVerwandtschaft zwischen Käufer und Verkäufer (kauf) oder zwischen Beschenktem und Schenker (schenkung), für die Befreiungen von der Grunderwerbsteuer (§ 3 GrEStG): none (nicht verwandt; Standard beim Kauf), spouse (Ehegatte oder eingetragener Lebenspartner), lineal (Kind, Enkel oder Eltern, auch Stief- und Schwiegerkinder; Standard bei der Schenkung), exSpouse (früherer Ehegatte, bei der Vermögensauseinandersetzung nach der Scheidung), coHeir (Miterbe, zur Teilung des Nachlasses), sibling (Geschwister) oder partner (unverheirateter Partner). Fall: kauf, schenkung.
documentsNoNur bei kind=copies: Anzahl der Dokumente. Standard 1. Fall: beglaubigung.
draftRateNoNur bei kind=draft: contract (Vertrag, 2,0), declaration (einseitige Erklärung, 1,0; Standard) oder consent (Zustimmung oder Antrag, 0,5). Fall: beglaubigung.
holderAgeNoNur mit right: Alter des jüngsten Berechtigten in Jahren; je jünger, desto länger zählt das Recht (§ 52 Abs. 4 GNotKG). Standard 68. Fall: schenkung.
homeVisitNocase=testament: Der Notar kommt nach Hause oder ins Krankenhaus; dafür fällt eine Zusatzgebühr je Person an (KV 26003 GNotKG). case=vollmacht: Der Notar kommt nach Hause oder ins Krankenhaus; dafür fällt eine Zusatzgebühr je Urkunde an (KV 26003 GNotKG).
reversionNoRückforderungsrecht, gesichert durch eine Rückauflassungsvormerkung im Grundbuch. Standard true. Fall: schenkung.
verwalterNoNur bei property=wohnung: Der WEG-Verwalter muss dem Verkauf zustimmen (§ 12 WEG). Standard true. Fall: kauf.
annualValueNoNur mit right: Jahreswert des Rechts in ganzen Euro, etwa die ortsübliche Jahresmiete dessen, was es umfasst. Ohne Angabe 5 % des Verkehrswerts im Jahr (§ 52 Abs. 5 GNotKG). Fall: schenkung.
marketValueNoVerkehrswert in ganzen Euro, nur wenn er über dem Kaufpreis liegt, etwa bei einem Freundschaftspreis: Dann rechnen Notar und Grundbuch mit ihm (§ 47 GNotKG). Fall: kauf.
contractDateNoTag des Vertrags, für den Steuersatz an diesem Tag; ab 01.01.2024. Ohne Angabe heute (Europe/Berlin). Fall: kauf, schenkung.
sellerChargeNoNennbetrag der Grundschuld des Verkäufers, die gelöscht wird, in ganzen Euro; 0 (Standard), wenn das Objekt lastenfrei ist. Fall: kauf.
shareholdersNoAnzahl der Gesellschafter; mit Musterprotokoll höchstens 3. Standard 1. Fall: gmbh.
considerationNoGegenleistung in ganzen Euro: übernommene Schulden und Ausgleichszahlungen, etwa an Geschwister. Außerhalb der Familie fällt darauf Grunderwerbsteuer an. Fall: schenkung.
patientDecreeNoMit Patienten- und Betreuungsverfügung. Standard true. Fall: vollmacht.
propertyValueNoWert einer Immobilie, die auf die Erben umgeschrieben wird, in ganzen Euro; 0 (Standard), wenn keine. Fall: erbschein.
specificValueNoNur bei scope=specific: Wert des erfassten Vermögens in ganzen Euro. Gerechnet wird höchstens mit dem ganzen Vermögen nach Abzug der Schulden (§ 100 Abs. 2 GNotKG). Fall: ehevertrag.
withinTwoYearsNoNur mit propertyValue: Die Berichtigung des Grundbuchs wird binnen zwei Jahren nach dem Erbfall beantragt und ist dann für Erben gebührenfrei. Standard true. Fall: erbschein.
officialCustodyNoNur bei kind=erbvertrag oder erbvertragEinseitig: besondere amtliche Verwahrung beim Nachlassgericht (82 €) statt beim Notar. Ein Testament kommt immer in die amtliche Verwahrung. Fall: testament.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so safety needs no restating. The description adds real value beyond them: the response anatomy (KV-Nummer or Norm, Rechenweg, payer, sums, conditional items, hints, deep link), German-language output, and the disclaimer that the result is an estimate since the binding calculation is the notary's under § 19 GNotKG.

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?

Purpose and case inventory are front-loaded, followed by the disclaimer, the POST contract, and the response format, which is logical. The case list is a single long enumeration and the POST paragraph repeats the schema's description verbatim, costing some density.

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 52-parameter, one-of-ten-case calculator with no output schema, the description supplies the missing piece: what a result contains and how conditional items are surfaced, plus the safety of the estimate framing. It does not explain pagination, error behavior for invalid case/field combinations, or size of the md output beyond 'kurz genug für den Chat'.

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 coverage is 100%, so per-parameter semantics are already fully documented in the schema, and the POST paragraph here is nearly identical to the schema's own description field. The description does clarify that missing fields and nulls fall back to calculator defaults and that the flat/values nesting mirrors prior output, which is a mild addition over the schema rather than a substantive one.

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?

Specific verb plus resource set: 'Rechnet Notar- und Gerichtsgebühren nach dem GNotKG, die Grunderwerbsteuer je Bundesland und die Gebühren von Testaments- und Vorsorgeregister', then enumerates the ten supported cases. It is unambiguous what the tool computes, but it never names overlapping siblings (gruendungsbudget, gmbh_steuern, schenkungsvertrag) to steer selection.

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?

Gives operational context: free, no key, GET or POST, and explicitly how to re-submit a prior response ('case dazu, die Felder von input unverändert'). Missing an explicit statement of when to prefer this over the fee-adjacent sibling tools, so it stops short of full routing guidance.

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

quittungfirma.de Quittungs-APIA
Read-onlyIdempotent
Inspect

Erstellt eine Quittung nach § 368 BGB mit den üblichen Angaben, aus derselben Vorlage wie der Quittungs-Generator von firma.de: privat, als umsatzsteuerpflichtiges Unternehmen (bis 250 € brutto mit den Angaben einer Kleinbetragsrechnung nach § 33 UStDV), als Kleinunternehmer (§ 19 UStG, über 250 € mit den Angaben nach § 34a UStDV) oder als Bestätigung einer Zahlung auf eine Rechnung. Die Antwort enthält den Quittungstext (offene Angaben als [Platzhalter]), den Betrag in Worten, bei Unternehmen Steuer- und Nettobetrag, die Hinweise des Generators zu Rechnungspflicht, Kasse, Bargeld-Obergrenze und Umsatzsteuer und einen Link, der die Quittung im Generator öffnet: Dort lässt sie sich unterschreiben und als PDF mit Original und Durchschrift oder als Word-Datei herunterladen. Kostenlos, ohne Schlüssel.

POST mit JSON in der Form des Entwurfs (wie draft in der Antwort): verschachtelt, etwa payer: { name, address } und vat: { rate }, oder mit denselben flachen Namen wie bei GET. Fehlende Felder und null lassen den Standard stehen, "" leert ein Text-, Datums- oder Betragsfeld. format und draft gehen auch hier; draft darf ein Generator-Link oder ein Entwurf als Objekt sein, etwa draft aus einer früheren Antwort.

Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/quittung/ – REST: https://www.firma.de/api/quittung/

NameRequiredDescriptionDefault
vatNo
caseNoWer quittiert. private: eine Privatperson, nie mit Umsatzsteuer. business: ein umsatzsteuerpflichtiges Unternehmen (regelbesteuert); bis 250 € brutto ist die Quittung eine Kleinbetragsrechnung. smallBusiness: ein Kleinunternehmer nach § 19 UStG, ohne Umsatzsteuer, mit Befreiungshinweis. invoicePayment: bestätigt die Zahlung auf eine bestehende Rechnung, ohne Steuerangaben (die stehen in der Rechnung).
dateNoAusstellungsdatum; ohne Angabe heute (Europe/Berlin).
draftNoEin Link des Generators oder nur der Teil nach #q= als Ausgangspunkt; weitere Parameter ändern ihn. In einer GET-Adresse das # als %23 schreiben, sonst kommt der Entwurf nicht an. Bei POST auch ein Entwurf als Objekt, etwa draft aus einer früheren Antwort.
payerNo
placeNoOptional: Ort der Ausstellung.
topicNoOptional, worum es geht; bringt die passenden Hinweise: general (Standard), sale (Verkauf), vehicle (Auto), rent (Miete), deposit (Kaution), loanRepayment (Darlehensrückzahlung), homeService (Arbeiten an Haus, Wohnung oder Grundstück: Handwerker, Garten, Reinigung), realEstate (Kaufpreis einer Immobilie oder Anteile daran), donation (Spende: dafür gibt es keine Quittung, nur die amtliche Zuwendungsbestätigung). Kaution, Darlehen und Spende sind kein Entgelt: keine Umsatzsteuer.
amountNoBetrag in Euro brutto, mit Cent; mindestens 0,01. Auf den Cent gerundet.
formatNomd (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON.md
methodNoZahlungsart: cash (bar, Standard), transfer (Überweisung), card (Karte), cheque (Scheck) oder other.
numberNoOptional: Quittungs- oder Belegnummer, etwa 2026-014.
paidOnNoOptional: Tag, an dem das Geld kam, wenn er vom Ausstellungsdatum abweicht (etwa eine Überweisung, die vorher einging).
invoiceNo
partialNoTeilzahlung: Die Quittung sagt, dass ein Restbetrag offen bleibt.
purposeNoWofür das Geld ist: Menge und Art der Ware oder Leistung oder der Grund der Zahlung. Keine Steuerangaben und kein Verzicht auf weitere Ansprüche hineinschreiben. Bei invoicePayment optional.
vatRateNoNur case=business, nicht bei Kaution, Darlehen oder Spende: 19, 7, 0 (Nullsteuersatz für Photovoltaik, § 12 Abs. 3 UStG), exempt (steuerfrei, mit exemption) oder margin (Differenzbesteuerung nach § 25a UStG, ohne Steuerausweis). Der Betrag enthält die Steuer.
exemptionNoBei vatRate=exempt: der Grund, etwa „Heilbehandlung (§ 4 Nr. 14 UStG)“.
recipientNo
taxNumberNoNicht bei private: Steuernummer oder USt-IdNr. des Zahlungsempfängers; nötig bei smallBusiness über 250 € (§ 34a UStDV).
invoiceDateNoBei invoicePayment, optional: Datum der Rechnung.
payerAddressNoAnschrift des Zahlers in einer Zeile; nötig bei smallBusiness über 250 € (§ 34a UStDV).
invoiceNumberNoBei invoicePayment: Nummer der bezahlten Rechnung.
payerIsBusinessNoBei business und smallBusiness: Der Kunde ist ein Unternehmen, das für sein Unternehmen kauft, ein Verein oder eine Behörde. Bei business über 250 € braucht es dann eine Rechnung (blocked).
recipientAddressNoAnschrift des Zahlungsempfängers in einer Zeile; nötig bei business, smallBusiness und invoicePayment.

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, and the description adds substantial context beyond them: the response contents (receipt text with [placeholders], amount in words, tax/net breakdown for businesses, generator warnings, a link that opens the receipt for signing and PDF/Word download), the German-language output, and the fact that no key or payment is required. It also discloses the null/empty-string semantics that govern mutation of a draft, which annotations cannot express.

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 long but front-loaded and organized into three functional blocks: what it produces, how to POST the payload, and what comes back plus where it lives. Every block earns its place for a 24-parameter tool, though a few clauses (repeating the case definitions already in the schema) could be trimmed without loss.

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 tool with 24 optional parameters and no output schema, the description carries the return-value burden well by naming the receipt text, amount in words, tax breakdown, warnings, and download link. The payload-shape and default/clearing rules cover the main invocation pitfalls. What is missing is error/blocked-state handling — the schema mentions a 'blocked' outcome for business sales over 250 € to business customers, but the description never explains what the agent receives in that case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already high (83%), so the baseline is 3, but the description adds genuinely useful semantics the schema does not encode: that nested forms (payer.name, vat.rate) and the flat GET-style names are interchangeable, that missing fields and null leave the default in place while "" clears a field, and that draft accepts either a generator link or a prior response object. These are behavioral rules, not restatements of parameter descriptions.

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 opens with a specific verb and resource: 'Erstellt eine Quittung nach § 368 BGB', and enumerates the four receipt variants (privat, business, smallBusiness, invoicePayment) with their legal bases. An agent immediately knows this produces a German payment receipt, not an invoice or contract. Sibling differentiation is only implicit — 'Bestätigung einer Zahlung auf eine Rechnung' hints at the boundary with e_rechnung, but no sibling is named, so it falls short of a 5.

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?

Usage context is well established: which case value applies to which taxpayer situation, when vat is permitted ('Nur case=business, nicht bei Kaution, Darlehen oder Spende'), and an explicit negative case — 'donation: dafür gibt es keine Quittung, nur die amtliche Zuwendungsbestätigung'. There is no explicit routing away to sibling tools such as e_rechnung or darlehensvertrag, which keeps it at 4 rather than 5.

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

schenkungsvertragfirma.de Schenkungsvertrag-APIA
Read-onlyIdempotent
Inspect

Erstellt einen Schenkungsvertrag nach deutschem Recht aus den festen Bausteinen des Schenkungsvertrag-Generators von firma.de: für Geld (Überweisung oder bar), Fahrzeuge und bewegliche Gegenstände, von einem oder zwei Schenkern; Geld und Gegenstände auch an minderjährige Kinder, Fahrzeuge nur an Volljährige. Die Antwort enthält den Vertragstext (offene Angaben als [Platzhalter]), die Hinweise des Generators (Notar, Minderjährige, Bargeld, Rückforderung), einen Schenkungsteuer-Check je Schenker mit Steuerklasse, Freibetrag und 10-Jahres-Regel (allgemeine Steuerinformation), die Frist für die Anzeige beim Finanzamt und einen Link, der den Entwurf im Generator öffnet: Dort tragen die Beteiligten ihre Namen ein, unterschreiben und laden PDF oder Word herunter. Immobilien und GmbH-Anteile gehen nur beim Notar; dafür gibt es keinen Vertragstext, bei Immobilien aber die Kosten für Notar und Grundbuch. Kostenlos, ohne Schlüssel.

POST mit JSON: flach mit denselben Namen wie bei GET oder verschachtelt wie draft in der Antwort (Schenker unter donors.donor1 und donors.donor2, nie als Liste). Fehlende Felder und null lassen den Standard stehen, "" leert ein Text- oder Datumsfeld. Persönliche Angaben gehen nur hier. format und draft gehen auch im Body.

Antwortet auf Deutsch, als Text oder JSON. Der Rechner für Menschen: https://www.firma.de/schenkungsvertrag/ – REST: https://www.firma.de/api/schenkungsvertrag/

NameRequiredDescriptionDefault
ageNoadult (Standard), under7 (unter 7 Jahren) oder from7 (7 bis 17); auch das Alter in Jahren von 0 bis 130: 0 bis 6 = under7, 7 bis 17 = from7, ab 18 = adult. Ein Geburtsdatum geht vor: Es zählt das Alter am Vertragsdatum, ohne Vertragsdatum das von heute.
vinNoFahrzeug-Identifizierungsnummer (FIN), beim E-Bike die Rahmennummer. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
dateNoBei mode=transferred: Tag der Überweisung; bei cashHandover=past: Tag der Übergabe.
ibanNoIBAN des Beschenkten (optional). Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
itemNo
keysNoAnzahl der Fahrzeugschlüssel.
makeNoMarke des Fahrzeugs.
modeNoBei subject=money: transferred (schon überwiesen, Standard), transferSoon (wird überwiesen, höchstens 30 Tage nach der Unterschrift) oder cash (bar); auch ueberwiesen, wirdueberwiesen, bar.
doneeNo
donorNoName des (ersten) Schenkers. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
draftNoEin Link des Generators (…/schenkungsvertrag/#sv=…) oder nur der Teil nach #sv= als Ausgangspunkt; weitere Parameter ändern ihn. In einer GET-Adresse das # als %23 schreiben, sonst kommt der Entwurf nicht an. Ein Link mit persönlichen Angaben geht nur per POST, dort auch ein Entwurf als Objekt, etwa draft aus einer früheren Antwort.
modelNoModell des Fahrzeugs.
moneyNo
placeNoOrt der Unterschrift.
plateNoKennzeichen; beim E-Bike das Versicherungskennzeichen eines S-Pedelecs, bei other ein Kennzeichen der Zulassungsbehörde (dann wie ein zugelassenes Fahrzeug, mit FIN) oder ein Versicherungskennzeichen, etwa eines Mofas. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
rightNoNur bei subject=property: none (Standard), niessbrauch oder wohnrecht, das der Schenker behält.
valueNoVerkehrswert des Fahrzeugs oder Gegenstands in ganzen Euro.
amountNoGeldbetrag in Euro, 1 € bis 100.000.000 €.
donor2NoName des zweiten Schenkers; setzt zwei Schenker. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
donorsNo
estateNoNur bei marriage=guetergemeinschaft: jointAdmin (gemeinsam verwaltetes Gesamtgut, Standard: beide Ehegatten schenken je zur Hälfte), soleAdmin (der Schenker verwaltet allein, der Ehegatte stimmt zu) oder reserved (Vorbehaltsgut); auch gemeinsam, allein, vorbehaltsgut.
formatNomd (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON.md
clausesNo
custodyNoBei Minderjährigen: joint (beide Eltern, Standard) oder sole (ein Elternteil allein).
dueDateNoBei mode=transferSoon: spätester Tag der Überweisung, höchstens 30 Tage nach der Unterschrift; später ist es ein Versprechen für den Notar (blocked).
mileageNoKilometerstand (optional).
ownHalfNoZwei Schenker außerhalb des Gesamtguts: Die Hälfte des ersten Schenkers stammt aus seinem eigenen Vermögen. Ohne beide Bestätigungen ist der Vertrag nicht vollständig, und der Steuer-Check ist eine grobe Schätzung.
purposeNoNur bei Geld: none (Standard), wish (Verwendungswunsch) oder auflage (verpflichtend). Eine Auflage, eine Wohnung, ein Haus oder ein Grundstück zu kaufen, wird zum Wunsch.
signingNo
specialNonone (Standard: die Schenkung wird jetzt vollzogen), future (erst später versprochen), recurring (regelmäßige Zahlungen), onDeath (erst nach dem Tod), wholeAssets (das ganze Vermögen oder ein Bruchteil) oder mixed (mit Gegenleistung). Alles außer none ist ein Fall für Notar oder Anwalt (blocked).
subjectNoWas verschenkt wird: money (Geld; bargeld setzt zugleich mode=cash), vehicle (Fahrzeug), item (beweglicher Gegenstand), property (Immobilie) oder shares (GmbH-Anteile). property und shares gehen nur beim Notar: Die Antwort kommt dann mit blocked: true und ohne Vertragstext.
vehicleNo
accidentNoBekannte Unfallschäden eines Fahrzeugs mit Zulassung als Text; keine heißt: keine bekannt.
financedNoDas Fahrzeug ist finanziert oder gehört als Sicherheit der Bank: blocked.
handoverNo
itemKindNohousehold (Hausrat), jewelry (Schmuck), preciousMetal (Gold, Silber, Münzen, Edelsteine), art (Kunst), watch (Uhr) oder other (Standard).
marriageNoGüterstand des Schenkers: unknown (Standard), single, zugewinn, guetergemeinschaft oder guetertrennung. Entscheidet über die Zustimmung des Ehegatten und die Anrechnung auf den Zugewinn.
ownHalf2NoWie ownHalf, für den zweiten Schenker.
propertyNo
relationNoWas der Beschenkte für den Schenker ist: spouse, child, stepchild, grandchild, greatGrandchild, parent, grandparent, sibling, nieceNephew, stepParent, childInLaw, parentInLaw, exSpouse, auntUncle, partner oder other; auch deutsch als Bezeichnung des Beschenkten aus Sicht des Schenkers (ehefrau, tochter, sohn, enkel, urenkel, bruder, nichte, schwiegersohn, freundin …). Wörter für den Schenker (oma, vater, tante …) beantwortet die API mit 400 relationDirection: ‚Oma schenkt Enkel‘ heißt relation=grandchild.
zugewinnNonone (Standard), anrechnen oder nichtAnrechnen; nur an den Ehepartner in der Zugewinngemeinschaft.
holderAgeNoBei subject=property mit right: Alter des Berechtigten, bei mehreren des Jüngsten.
relation2NoWas der Beschenkte für den zweiten Schenker ist, Werte wie relation; setzt zwei Schenker.
taxPaidByNodonee (Standard) oder donor: Der Schenker übernimmt die Steuer, die dann als weitere Schenkung mitzählt (§ 10 Abs. 2 ErbStG).
twoDonorsNo
identifierNoSeriennummer, Punze oder Zertifikat des Gegenstands (optional). Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
priorGiftsNoFrühere Schenkungen des ersten Schenkers an den Beschenkten, für die 10-Jahres-Regel: per GET als YYYY-MM-DD:Wert[:gezahlte Steuer], mehrere mit ; getrennt (2018-03-15:450000:3500); per POST als Liste von { date, value, taxPaid }. Höchstens 5. Wert ist der steuerliche Wert von damals, vor dem Freibetrag.
revocationNoRückforderungsrecht als Liste mit Komma: resale, predecease, insolvency, auflage, divorce (auch verkauf, vorversterben, insolvenz, auflage, scheidung). Nicht für Minderjährige und nicht für eine schon vollzogene Schenkung ohne agreedBeforeExecution.
ausstattungNotrue: Das Geld ist eine Ausstattung (§ 1624 BGB); nur Geld an ein Kind.
pflichtteilNonone (Standard), anrechnen oder nichtAnrechnen; nur wenn der Beschenkte einen Pflichtteil haben kann (Kind, Enkel, Urenkel, Ehepartner, Elternteil).
priorGifts2NoWie priorGifts, für den zweiten Schenker.
signingDateNoDatum der Unterschrift; ohne Angabe heute (Europe/Berlin).
vehicleKindNocar (Standard), motorcycle, camper, ebike oder other.
ausgleichungNonone (Standard), anordnen oder ausschliessen; nur bei Kindern, Enkeln und Urenkeln.
basicSupportNoDer Schenker bezieht Grundsicherungsgeld (früher Bürgergeld), Grundsicherung im Alter, Hilfe zur Pflege oder Sozialhilfe oder wird sie voraussichtlich brauchen; nur für einen Hinweis.
cashHandoverNoBei mode=cash: atSigning (bei der Unterschrift, Standard) oder past (schon früher, Tag in date).
deregisteredNoDas Fahrzeug ist abgemeldet (außer Betrieb gesetzt); nur bei car, motorcycle und camper.
doneeAddressNoAnschrift des Beschenkten in einer Zeile. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
donorAddressNoAnschrift des Schenkers in einer Zeile. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
handoverDateNoBei handover=past: Tag der Übergabe.
handoverTimeNoUhrzeit der Übergabe als HH:MM (optional).
purposeLabelNoDer Zweck in wenigen Worten, etwa Studium. Nennt er den Erlass eines Darlehens, ist die Antwort gesperrt (subjectNotCovered): Den deckt die API noch nicht ab.
donor2AddressNoAnschrift des zweiten Schenkers. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
propertyValueNoNur bei subject=property: Verkehrswert der Immobilie in ganzen Euro; damit nennt die Antwort die Kosten für Notar und Grundbuch.
spouseConsentNoZustimmung des Ehegatten des Schenkers: per GET true oder false (die Zeile mit leerem Namen), per POST sein Name. Name: Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
doneeBirthDateNoGeburtsdatum des Beschenkten, ab 1900; bei Minderjährigen nötig; es bestimmt das Alter am Vertragsdatum, ohne Vertragsdatum am heutigen Tag. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
donorBirthDateNoGeburtsdatum des Schenkers (optional), ab 1900. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
parentDeceasedNoNur bei relation=grandchild: Der Elternteil des Enkels, also das Kind des Schenkers, ist vor der Schenkung gestorben; dann gilt der Freibetrag eines Kindes.
toDoneeAccountNoDas Geld geht auf ein Konto des Beschenkten (Standard true); bei Minderjährigen auf ein Konto auf den Namen des Kindes, dann Pflicht.
donor2BirthDateNoGeburtsdatum des zweiten Schenkers (optional), ab 1900. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData.
purposeDeadlineNoBei purpose=auflage: bis wann das Geld verwendet wird (optional).
relationChangedNoDas Verhältnis hat sich seit einer früheren Schenkung geändert, etwa durch Heirat: Der Steuer-Check ist dann eine grobe Schätzung.
representative1NoBei Minderjährigen: der gesetzliche Vertreter. donor1 oder donor2 verknüpft einen Schenker, der Elternteil ist (geht per GET); ein Name nur per POST.
representative2NoWie representative1, für den zweiten Elternteil bei gemeinsamem Sorgerecht.
firstRegistrationNoErstzulassung als Datum, ab 1900 (optional).
agreedBeforeExecutionNoBei einer schon vollzogenen Schenkung (transferred, cashHandover=past, handover=past): Die Vereinbarungen wurden vorher getroffen. Nur dann bleiben Rückforderungsrecht, Auflage und Anrechnungen stehen, und der Vertrag hält das fest.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark this as read-only, idempotent and non-destructive, and the description adds substantive behavior: the exact response contents (contract text with [Platzhalter], generator notes, per-donor tax check with Steuerklasse/Freibetrag/10-Jahres-Regel, filing deadline, draft link), the blocked outcome for property and shares, and the 400 personalData failure mode for GET with personal fields. Default handling for missing fields, null and empty string is also disclosed, which goes well beyond the annotations.

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?

Three dense paragraphs that are front-loaded with what is produced and what is out of scope, then the POST shape, then endpoints. Every sentence carries information given 76 parameters, though the first sentence is long and clause-heavy, and the draft-link mechanics are only fully explained in the schema.

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?

For a 76-parameter, 0-required generation tool with no output schema, the description carries the necessary weight: it describes the response payload in detail, the alternatives (POST vs GET for personal data), and the blocked/error outcomes. Nothing an agent needs to call or interpret the tool correctly appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 87%, so per-parameter meanings are largely documented already, setting the baseline at 3. The description still adds non-obvious structural semantics the schema cannot express per-field: flat keys matching GET names or nesting under donors.donor1/donor2 (never a list), that missing/null preserves defaults while "" clears a text or date field, and that format and draft are accepted in the body.

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 opening sentence gives a specific verb and resource ('Erstellt einen Schenkungsvertrag nach deutschem Recht') and immediately scopes it to fixed generator building blocks, naming the covered subjects (Geld, Fahrzeuge, bewegliche Gegenstände), the donor count, and what is explicitly excluded (Immobilien und GmbH-Anteile nur beim Notar). An agent can distinguish this from siblings like darlehensvertrag or quittung without opening the schema.

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?

It states clear inclusion/exclusion rules: money and items may go to minors, vehicles only to adults, property and shares are notary-only and yield no contract text. It also states the tool is free and needs no key, and that personal data must be sent via POST. It stops short of explicitly naming sibling tools as alternatives, so routing is inferable rather than spelled out.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updates
    • First observedcap_table
    • First observeddarlehensvertrag
    • First observede_rechnung
    • First observedeinkommensteuer
    • First observedgeschaeftsfuehrergehalt
    • First observedgmbh_steuern
    • First observedgruendungsbudget
    • First observednotarkosten
    • First observedquittung
    • First observedschenkungsvertrag

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables founders and small companies in Germany to ask about HR deadlines, costs, obligations, workflows, letters, and contract clauses, with calculations and official sources and without sign-in or stored inputs.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    European business compliance suite for AI agents — 28 tools covering tax ID validation (PT, ES, FR, DE, IT, UK, NL), IBAN verification, EU VAT rates, invoice requirements, e-invoicing rules, payment terms, labor calendar helpers, VAT breakdown calculations and invoice schema validation for 18+ European countries.
    28
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources