firma.de Rechner für Gründer
Server Details
German tools for founders: startup budget, notary fees, taxes, contracts, receipts, e-invoices
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 10 tools
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).
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.
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.
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 toolscap_tablefirma.de cap table APIARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| exit | No | Optional exit waterfall for one exit value. | |
| lang | No | Language of names, messages, Markdown and the calculator link. | en |
| pool | No | The existing VSOP pool before the round, in virtual shares. | |
| loans | No | Convertible loans (Wandeldarlehen) converting in this round. | |
| format | No | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. | md |
| dayBasis | No | Days per interest year. | |
| founders | Yes | ||
| poolMode | No | post: 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 |
| preMoney | Yes | Pre-money valuation. In euros. | |
| investors | No | ||
| poolTarget | No | Free pool after the round in percent of all fully diluted shares: 10 means 10 %. |
TDQS
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.
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.
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.
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.
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.
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-APIARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Datum der Unterschrift; ohne Angabe heute (Europe/Berlin). | |
| iban | No | Optional: IBAN des Darlehensnehmers für die Überweisung; sonst zahlt der Darlehensgeber auf ein benanntes Konto. | |
| rate | No | Bei fixed: Zins in Prozent pro Jahr. | |
| count | No | Bei installments und annuity: Anzahl der Raten. | |
| draft | No | Ein 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. | |
| place | No | Ort der Unterschrift. | |
| amount | No | Darlehensbetrag in Euro. | |
| format | No | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. | md |
| lender | No | ||
| margin | No | Bei variable: Prozentpunkte über dem Basiszinssatz nach § 247 BGB (derzeit 1,52 %). | |
| notice | No | Bei open: Kündigungsfrist in Monaten für beide Seiten (Standard 3, § 488 Abs. 3 BGB). | |
| signer | No | Mit 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. | |
| purpose | No | Optional: wofür das Geld ist. | |
| signing | No | ||
| approval | No | Die Gesellschafterversammlung hat dem Vertrag zugestimmt; nur angeben, wenn es den Beschluss gibt. | |
| borrower | No | ||
| interest | No | ||
| maturity | No | Bei bullet: Tag der Rückzahlung. | |
| relation | No | ||
| scenario | No | Wer 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. | |
| security | No | ||
| firstRate | No | Bei installments und annuity: Fälligkeit der ersten Rate. | |
| formation | No | Bei shareholderLoan: Die Gesellschaft ist notariell gegründet, aber noch nicht eingetragen (in Gründung). | |
| frequency | No | Bei installments und annuity: wie oft eine Rate fällig ist (Standard monthly). | |
| relatives | No | Bei private: Die Parteien sind Angehörige (§ 15 AO). | |
| repayment | No | ||
| reporting | No | Die Gesellschaft, die das Geld bekommt, schickt dem Darlehensgeber jedes Jahr ihren Jahresabschluss. | |
| lenderKind | No | Art des Darlehensgebers. Das Szenario setzt sie; ändern lässt sie sich, wo das passt: bei shareholderLoan eine Holding als Gesellschafter, bei business jede Seite. | |
| borrowerKind | No | Art des Darlehensnehmers. Das Szenario setzt sie; ändern lässt sie sich, wo das passt: bei loanToShareholder eine Holding als Gesellschafter, bei business jede Seite. | |
| disbursement | No | ||
| jurisdiction | No | Gerichtsstand am Sitz des Darlehensgebers; gilt nur zwischen Kaufleuten wie zwei GmbHs (§ 38 ZPO). | |
| securityText | No | Bei guarantee: Name und Anschrift des Bürgen; bei assignment: die abgetretenen Forderungen; bei other: die Sicherheit in Worten. | |
| lenderAddress | No | Anschrift des Darlehensgebers in einer Zeile: Straße und Hausnummer, PLZ und Ort. | |
| subordination | No | Qualifizierter Rangrücktritt des Darlehensgebers; nur wenn eine Gesellschaft das Geld bekommt. | |
| earlyRepayment | No | Vorzeitige Rückzahlung jederzeit, ganz oder in Teilen, ohne Entschädigung (Standard true). | |
| lenderRegister | No | Nur Unternehmen: Registergericht und Nummer. | |
| borrowerAddress | No | Anschrift des Darlehensnehmers in einer Zeile: Straße und Hausnummer, PLZ und Ort. | |
| borrowerPurpose | No | Bei 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). | |
| interestPayment | No | Wann 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. | |
| borrowerRegister | No | Nur Unternehmen: Registergericht und Nummer. | |
| disbursementDate | No | Bei transfer: Auszahlung bis; bei paid: ausgezahlt am; bei onCall: abrufbar bis. Ab hier läuft der Plan. | |
| managingDirector | No | Gesellschafter-Szenarien: Der Gesellschafter ist eine Person und zugleich Geschäftsführer der Gesellschaft (§ 181 BGB, § 43a GmbHG). | |
| shareholderApproval | No | Die Gesellschafterversammlung hat dem Vertrag zugestimmt; nur angeben, wenn es den Beschluss gibt. | |
| lenderRepresentative | No | Nur Unternehmen: wer für den Darlehensgeber unterschreibt, mit Funktion. | |
| borrowerRepresentative | No | Nur Unternehmen: wer für den Darlehensnehmer unterschreibt, mit Funktion. |
TDQS
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.
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.
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.
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.
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.
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 APIARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| land | No | Nur 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 %. | |
| year | No | Steuerjahr: 2025, 2026, 2027. Standard 2026. 2027 rechnet mit dem Regierungsentwurf, der noch nicht beschlossen ist. | |
| church | No | Kirchensteuerpflichtig (bei filing=joint beide). Standard false. | |
| filing | No | Veranlagung: single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung von Ehe- oder eingetragenen Lebenspartnern, Splittingtabelle). | single |
| format | No | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. | md |
| health | No | Krankenversicherung: gkv (freiwillig gesetzlich versichert; Standard), pkv (privat, mit pkvMonthly) oder none (keine Beiträge hier, etwa familienversichert oder über eine Anstellung). | gkv |
| profit | No | Gewinn aus der Selbstständigkeit im Jahr in ganzen Euro (Einnahmen minus Betriebsausgaben), vor Gewerbesteuer; negativ bei Verlust. Standard 60.000. | |
| values | No | Nur POST: die Felder als Objekt, statt sie flach zu schreiben. | |
| pension | No | Altersvorsorge im Jahr (gesetzliche Rentenversicherung, Versorgungswerk, Rürup) in ganzen Euro; abziehbar bis zum Höchstbetrag (2026: 30.826 €, bei filing=joint doppelt). Standard 0. | |
| sickPay | No | Nur bei health=gkv: mit Anspruch auf Krankengeld (allgemeiner Beitragssatz 14,6 % statt ermäßigt 14,0 %). Standard false. | |
| activity | No | Tätigkeit: freiberuflich (§ 18 EStG, keine Gewerbesteuer; Standard) oder gewerblich (§ 15 EStG, mit Gewerbesteuer und ihrer Anrechnung nach § 35 EStG). | freiberuflich |
| children | No | Kinder mit Kindergeld, 0 bis 10. Die Berechnung prüft je Kind, ob Kindergeld oder Kinderfreibeträge günstiger sind. Standard 0. | |
| hebesatz | No | Nur 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. | |
| extraRate | No | Nur bei health=gkv: Zusatzbeitrag deiner Kasse in Prozent, 0 bis 5. Ohne Angabe der durchschnittliche Zusatzbeitrag des Jahres (2026: 2,9 %). | |
| pkvMonthly | No | Nur bei health=pkv: Beitrag für die Basisabsicherung samt Pflegeversicherung im Monat in ganzen Euro, laut Bescheinigung der Versicherung. Standard 600. | |
| otherIncome | No | Weitere 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. | |
| singleParent | No | Nur bei filing=single mit children ab 1: alleinerziehend, mit dem Entlastungsbetrag nach § 24b EStG. Standard false. | |
| partnerIncome | No | Nur bei filing=joint: Einkünfte des Partners im Jahr nach Werbungskosten in ganzen Euro; darf negativ sein. Standard 0. | |
| otherDeductions | No | Abziehbare 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. | |
| partnerDeductions | No | Nur 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
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.
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.
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.
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.
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.
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-APIARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Freier Hinweis auf der Rechnung (BT-22). | |
| buyer | No | ||
| lines | No | Positionen, höchstens 50. | |
| format | No | md (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 |
| number | No | Rechnungsnummer (BT-1). | |
| seller | No | ||
| payment | No | ||
| service | No | ||
| taxCase | No | taxCase: 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. | |
| issueDate | No | Rechnungsdatum (BT-2); Standard heute. | |
| cashAccounting | No | Ist-Versteuerung: druckt „Versteuerung nach vereinnahmten Entgelten“ (ab 2028 Pflicht). |
TDQS
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.
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.
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.
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.
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.
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 APIARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| land | No | Nur 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. | |
| year | No | Steuerjahr: 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. | |
| share | No | Dein 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. | |
| church | No | Kirchensteuerpflichtig (bei joint beide). Standard false. | |
| filing | No | Veranlagung: single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung, Splittingtabelle, doppelte Pauschbeträge und Höchstbeträge). | single |
| format | No | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. | md |
| health | No | Krankenversicherung: 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 |
| method | No | Besteuerung 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 |
| payout | No | Ausschü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. | |
| salary | No | Dein 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. | |
| values | No | Nur POST: die Felder als Objekt, statt sie flach zu schreiben. | |
| revenue | No | Umsatz 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. | |
| sickPay | No | Nur 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. | |
| hebesatz | No | Hebesatz 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. | |
| industry | No | Branche 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. | |
| childless | No | Nur bei health=gkv oder Sozialversicherungspflicht: ohne Kinder, mit dem Zuschlag zur Pflegeversicherung (0,6 Prozentpunkte, nur dein Anteil). Standard true. | |
| employees | No | Mitarbeiter 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. | |
| extraRate | No | Nur 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 %). | |
| legalForm | No | Rechtsform: 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 |
| pkvMonthly | No | Nur bei health=pkv: dein Monatsbeitrag zur privaten Kranken- und Pflegeversicherung in ganzen Euro, als Basisabsicherung gerechnet, 0 bis 5.000. Standard 600. | |
| otherIncome | No | Dein ü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. | |
| employerSubsidy | No | Nur 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. | |
| blockingMinority | No | Nur 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. | |
| profitBeforeSalary | No | Gewinn 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
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.
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.
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.
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.
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.
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 APIARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| land | No | Nur 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 %. | |
| year | No | Steuerjahr: 2025, 2026, 2027. Standard 2026. 2027 rechnet die Einkommensteuer des Gesellschafters mit dem Regierungsentwurf, der noch nicht beschlossen ist. | |
| share | No | Dein 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. | |
| church | No | Nur bei recipient=person: kirchensteuerpflichtig (bei joint beide). Standard false. | |
| filing | No | Nur bei recipient=person: Veranlagung, single (Einzelveranlagung, Grundtabelle; Standard) oder joint (Zusammenveranlagung, Splittingtabelle, doppelter Sparer-Pauschbetrag). | single |
| format | No | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. | md |
| health | No | Nur 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 |
| method | No | Nur 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 |
| payout | No | Ausschü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. | |
| profit | No | Gewinn 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. | |
| values | No | Nur POST: die Felder als Objekt, statt sie flach zu schreiben. | |
| hebesatz | No | Hebesatz 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. | |
| childless | No | Nur bei recipient=person und health=gkv: ohne Kinder, mit dem Zuschlag zur Pflegeversicherung. Standard true. | |
| legalForm | No | Rechtsform: 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 |
| recipient | No | Wer 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 |
| otherIncome | No | Nur 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. | |
| saverAllowance | No | Nur 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. | |
| activeInCompany | No | Nur 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. | |
| lossCarryforward | No | Verlustvortrag 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
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.
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.
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.
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.
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.
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.deARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Ort für die Gebühren der Gewerbeanmeldung; andere = jede andere Stadt. | |
| hires | No | ||
| items | No | Bekannte Kostenpositionen; ersetzen geschätzte mit gleichem key. | |
| equity | No | Eigenkapital der Gründer in Euro (Stammkapital eingeschlossen). | |
| format | No | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. | md |
| capital | No | Stammkapital einer UG oder GmbH in Euro (Finanzierung, keine Ausgabe). | |
| vatMode | No | Umsatzsteuer: regel (Regelbesteuerung) oder klein (Kleinunternehmer). | |
| vatRate | No | Umsatzsteuersatz auf den Umsatz bei Regelbesteuerung: 19 oder 7. | |
| venture | No | Kurzer Name des Vorhabens, z. B. „Yogastudio in München“. | |
| founders | No | Anzahl der Gründer. | |
| industry | No | Branche; sie bestimmt die Richtwerte für Kosten, Umsatz und Anlauf. | |
| committed | No | Zugesagte Finanzierung (Kredit, Förderung, Investor) in Euro. | |
| employees | No | Geplante Mitarbeiter (GET-Kurzform; POST nimmt hires). | |
| growthPct | No | Umsatzwachstum nach der Anlaufzeit in Prozent pro Jahr. | |
| legalForm | No | Rechtsform: einzel, freiberuf, gbr, ug, gmbh. Ohne Angabe die übliche der Branche. | |
| workplace | No | Arbeitsplatz; bestimmt Miete, Kaution und Einrichtung. | |
| rampMonths | No | Monate von der ersten Rechnung bis zum vollen Umsatz. | |
| reservePct | No | Reserve in Prozent auf die größte Finanzierungslücke. | |
| startMonth | No | Erster Geschäftsmonat als YYYY-MM. Ohne Angabe der nächste Monat. | |
| otherIncome | No | Davon gedeckt durch weiteres Einkommen pro Monat (Gründungszuschuss, Teilzeitjob, Partner). | |
| variablePct | No | Variable Kosten (Ware, Material, Versand, Gebühren) in Prozent vom Nettoumsatz. | |
| paymentDelay | No | Monate zwischen Rechnung und Zahlung. | |
| employeeGross | No | Bruttogehalt pro Mitarbeiter und Monat in Euro (zu employees). | |
| livingMonthly | No | Privater Bedarf aller Gründer zusammen pro Monat in Euro, inkl. Krankenversicherung. | |
| openFinancing | No | Beantragte, noch nicht zugesagte Finanzierung in Euro; wird gezeigt, nicht gezählt. | |
| revenueMonthly | No | Geplanter Nettoumsatz pro Monat, sobald es normal läuft, in Euro. | |
| firstRevenueMonth | No | Monat der ersten Rechnung als YYYY-MM. |
TDQS
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.
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.
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.
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.
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.
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 APIARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| case | Yes | Der 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. | |
| deed | No | Gründungsurkunde: muster (Musterprotokoll; Standard) oder satzung (eigener Gesellschaftsvertrag). Fall: gmbh. | |
| form | No | case=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. | |
| kind | No | case=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). | |
| land | No | Bundesland, 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. | |
| debts | No | Schulden des Erblassers selbst in ganzen Euro; Beerdigungskosten und Pflichtteile zählen nicht ab (§ 40 GNotKG). Fall: erbschein. | |
| minor | No | Die beschenkte Person ist minderjährig: Der Notar holt meist die Genehmigung des Familiengerichts ein (Vollzug). Fall: schenkung. | |
| pages | No | Nur bei kind=copies: Seiten je Dokument; jede angefangene Seite zählt. Standard 10. Fall: beglaubigung. | |
| price | No | Kaufpreis in ganzen Euro. Fall: kauf. | |
| right | No | Recht, 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. | |
| route | No | Wo die eidesstattliche Versicherung abgegeben wird: notar (Standard) oder gericht (beim Nachlassgericht). Fall: erbschein. | |
| scope | No | case=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). | |
| value | No | case=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. | |
| agents | No | Anzahl der Bevollmächtigten, im Vorsorgeregister Vertrauenspersonen genannt. Standard 1. Fall: vollmacht. | |
| amount | No | case=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. | |
| assets | No | Vermögen des Vollmachtgebers ohne Abzug von Schulden in ganzen Euro; bei couple=true je Person. Fall: vollmacht. | |
| couple | No | Für ein Paar: zwei Vollmachten in zwei Urkunden, je eine pro Person, jede mit assets. Fall: vollmacht. | |
| debts1 | No | Schulden 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. | |
| debts2 | No | Schulden von Person 2 oder Ehegatte 2 in ganzen Euro; beim Testament nur bei kind=gemeinschaftlich oder erbvertrag. Fall: testament, ehevertrag. | |
| escrow | No | case=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. | |
| estate | No | Nachlass: alles, was der Erblasser hinterlassen hat, zum Wert am Todestag, in ganzen Euro. Fall: erbschein. | |
| filing | No | Nur bei form=beglaubigung: wer die Vollmacht im Zentralen Vorsorgeregister registriert, notar (Standard) oder selbst (online). Nach einer Beurkundung meldet der Notar an. Fall: vollmacht. | |
| format | No | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. | md |
| online | No | Beurkundung per Video über das System der Bundesnotarkammer. Fall: gmbh. | |
| payoff | No | Nur 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. | |
| regime | No | Was der Vertrag regelt: guetertrennung (Standard), guetergemeinschaft, modifiziert (modifizierte Zugewinngemeinschaft) oder sonstiges. Fall: ehevertrag. | |
| values | No | Nur POST: die Felder des Falls als Objekt, statt sie flach neben case zu schreiben. | |
| assets1 | No | Vermögen von Person 1 (testament) oder Ehegatte 1 (ehevertrag) in ganzen Euro, zum heutigen Wert. Fall: testament, ehevertrag. | |
| assets2 | No | Vermögen von Person 2 oder Ehegatte 2 in ganzen Euro; beim Testament nur bei kind=gemeinschaftlich oder erbvertrag. Fall: testament, ehevertrag. | |
| capital | No | Stammkapital 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. | |
| variant | No | Wer 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. | |
| mortgage | No | Grundschuld für den Kredit des Käufers in ganzen Euro, eine eigene Urkunde; 0 (Standard) ohne Kredit. Fall: kauf. | |
| movables | No | Davon Einbauküche, Möbel und Inventar in ganzen Euro: mindert die Grunderwerbsteuer; Notar und Grundbuch sind mit dem vollen Kaufpreis gerechnet. Fall: kauf. | |
| property | No | Objekt: 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. | |
| relation | No | Verwandtschaft 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. | |
| documents | No | Nur bei kind=copies: Anzahl der Dokumente. Standard 1. Fall: beglaubigung. | |
| draftRate | No | Nur bei kind=draft: contract (Vertrag, 2,0), declaration (einseitige Erklärung, 1,0; Standard) oder consent (Zustimmung oder Antrag, 0,5). Fall: beglaubigung. | |
| holderAge | No | Nur 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. | |
| homeVisit | No | case=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). | |
| reversion | No | Rückforderungsrecht, gesichert durch eine Rückauflassungsvormerkung im Grundbuch. Standard true. Fall: schenkung. | |
| verwalter | No | Nur bei property=wohnung: Der WEG-Verwalter muss dem Verkauf zustimmen (§ 12 WEG). Standard true. Fall: kauf. | |
| annualValue | No | Nur 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. | |
| marketValue | No | Verkehrswert 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. | |
| contractDate | No | Tag des Vertrags, für den Steuersatz an diesem Tag; ab 01.01.2024. Ohne Angabe heute (Europe/Berlin). Fall: kauf, schenkung. | |
| sellerCharge | No | Nennbetrag der Grundschuld des Verkäufers, die gelöscht wird, in ganzen Euro; 0 (Standard), wenn das Objekt lastenfrei ist. Fall: kauf. | |
| shareholders | No | Anzahl der Gesellschafter; mit Musterprotokoll höchstens 3. Standard 1. Fall: gmbh. | |
| consideration | No | Gegenleistung in ganzen Euro: übernommene Schulden und Ausgleichszahlungen, etwa an Geschwister. Außerhalb der Familie fällt darauf Grunderwerbsteuer an. Fall: schenkung. | |
| patientDecree | No | Mit Patienten- und Betreuungsverfügung. Standard true. Fall: vollmacht. | |
| propertyValue | No | Wert einer Immobilie, die auf die Erben umgeschrieben wird, in ganzen Euro; 0 (Standard), wenn keine. Fall: erbschein. | |
| specificValue | No | Nur 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. | |
| withinTwoYears | No | Nur 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. | |
| officialCustody | No | Nur 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
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.
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.
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.
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.
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.
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-APIARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| vat | No | ||
| case | No | Wer 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). | |
| date | No | Ausstellungsdatum; ohne Angabe heute (Europe/Berlin). | |
| draft | No | Ein 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. | |
| payer | No | ||
| place | No | Optional: Ort der Ausstellung. | |
| topic | No | Optional, 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. | |
| amount | No | Betrag in Euro brutto, mit Cent; mindestens 0,01. Auf den Cent gerundet. | |
| format | No | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. | md |
| method | No | Zahlungsart: cash (bar, Standard), transfer (Überweisung), card (Karte), cheque (Scheck) oder other. | |
| number | No | Optional: Quittungs- oder Belegnummer, etwa 2026-014. | |
| paidOn | No | Optional: Tag, an dem das Geld kam, wenn er vom Ausstellungsdatum abweicht (etwa eine Überweisung, die vorher einging). | |
| invoice | No | ||
| partial | No | Teilzahlung: Die Quittung sagt, dass ein Restbetrag offen bleibt. | |
| purpose | No | Wofü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. | |
| vatRate | No | Nur 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. | |
| exemption | No | Bei vatRate=exempt: der Grund, etwa „Heilbehandlung (§ 4 Nr. 14 UStG)“. | |
| recipient | No | ||
| taxNumber | No | Nicht bei private: Steuernummer oder USt-IdNr. des Zahlungsempfängers; nötig bei smallBusiness über 250 € (§ 34a UStDV). | |
| invoiceDate | No | Bei invoicePayment, optional: Datum der Rechnung. | |
| payerAddress | No | Anschrift des Zahlers in einer Zeile; nötig bei smallBusiness über 250 € (§ 34a UStDV). | |
| invoiceNumber | No | Bei invoicePayment: Nummer der bezahlten Rechnung. | |
| payerIsBusiness | No | Bei 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). | |
| recipientAddress | No | Anschrift des Zahlungsempfängers in einer Zeile; nötig bei business, smallBusiness und invoicePayment. |
TDQS
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.
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.
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.
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.
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.
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-APIARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | adult (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. | |
| vin | No | Fahrzeug-Identifizierungsnummer (FIN), beim E-Bike die Rahmennummer. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. | |
| date | No | Bei mode=transferred: Tag der Überweisung; bei cashHandover=past: Tag der Übergabe. | |
| iban | No | IBAN des Beschenkten (optional). Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. | |
| item | No | ||
| keys | No | Anzahl der Fahrzeugschlüssel. | |
| make | No | Marke des Fahrzeugs. | |
| mode | No | Bei subject=money: transferred (schon überwiesen, Standard), transferSoon (wird überwiesen, höchstens 30 Tage nach der Unterschrift) oder cash (bar); auch ueberwiesen, wirdueberwiesen, bar. | |
| donee | No | ||
| donor | No | Name des (ersten) Schenkers. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. | |
| draft | No | Ein 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. | |
| model | No | Modell des Fahrzeugs. | |
| money | No | ||
| place | No | Ort der Unterschrift. | |
| plate | No | Kennzeichen; 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. | |
| right | No | Nur bei subject=property: none (Standard), niessbrauch oder wohnrecht, das der Schenker behält. | |
| value | No | Verkehrswert des Fahrzeugs oder Gegenstands in ganzen Euro. | |
| amount | No | Geldbetrag in Euro, 1 € bis 100.000.000 €. | |
| donor2 | No | Name des zweiten Schenkers; setzt zwei Schenker. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. | |
| donors | No | ||
| estate | No | Nur 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. | |
| format | No | md (Standard): die Antwort als lesbarer Text mit Link in den Rechner, kurz genug für den Chat. json: alle Werte als JSON. | md |
| clauses | No | ||
| custody | No | Bei Minderjährigen: joint (beide Eltern, Standard) oder sole (ein Elternteil allein). | |
| dueDate | No | Bei 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). | |
| mileage | No | Kilometerstand (optional). | |
| ownHalf | No | Zwei 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. | |
| purpose | No | Nur bei Geld: none (Standard), wish (Verwendungswunsch) oder auflage (verpflichtend). Eine Auflage, eine Wohnung, ein Haus oder ein Grundstück zu kaufen, wird zum Wunsch. | |
| signing | No | ||
| special | No | none (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). | |
| subject | No | Was 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. | |
| vehicle | No | ||
| accident | No | Bekannte Unfallschäden eines Fahrzeugs mit Zulassung als Text; keine heißt: keine bekannt. | |
| financed | No | Das Fahrzeug ist finanziert oder gehört als Sicherheit der Bank: blocked. | |
| handover | No | ||
| itemKind | No | household (Hausrat), jewelry (Schmuck), preciousMetal (Gold, Silber, Münzen, Edelsteine), art (Kunst), watch (Uhr) oder other (Standard). | |
| marriage | No | Güterstand des Schenkers: unknown (Standard), single, zugewinn, guetergemeinschaft oder guetertrennung. Entscheidet über die Zustimmung des Ehegatten und die Anrechnung auf den Zugewinn. | |
| ownHalf2 | No | Wie ownHalf, für den zweiten Schenker. | |
| property | No | ||
| relation | No | Was 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. | |
| zugewinn | No | none (Standard), anrechnen oder nichtAnrechnen; nur an den Ehepartner in der Zugewinngemeinschaft. | |
| holderAge | No | Bei subject=property mit right: Alter des Berechtigten, bei mehreren des Jüngsten. | |
| relation2 | No | Was der Beschenkte für den zweiten Schenker ist, Werte wie relation; setzt zwei Schenker. | |
| taxPaidBy | No | donee (Standard) oder donor: Der Schenker übernimmt die Steuer, die dann als weitere Schenkung mitzählt (§ 10 Abs. 2 ErbStG). | |
| twoDonors | No | ||
| identifier | No | Seriennummer, Punze oder Zertifikat des Gegenstands (optional). Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. | |
| priorGifts | No | Frü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. | |
| revocation | No | Rü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. | |
| ausstattung | No | true: Das Geld ist eine Ausstattung (§ 1624 BGB); nur Geld an ein Kind. | |
| pflichtteil | No | none (Standard), anrechnen oder nichtAnrechnen; nur wenn der Beschenkte einen Pflichtteil haben kann (Kind, Enkel, Urenkel, Ehepartner, Elternteil). | |
| priorGifts2 | No | Wie priorGifts, für den zweiten Schenker. | |
| signingDate | No | Datum der Unterschrift; ohne Angabe heute (Europe/Berlin). | |
| vehicleKind | No | car (Standard), motorcycle, camper, ebike oder other. | |
| ausgleichung | No | none (Standard), anordnen oder ausschliessen; nur bei Kindern, Enkeln und Urenkeln. | |
| basicSupport | No | Der 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. | |
| cashHandover | No | Bei mode=cash: atSigning (bei der Unterschrift, Standard) oder past (schon früher, Tag in date). | |
| deregistered | No | Das Fahrzeug ist abgemeldet (außer Betrieb gesetzt); nur bei car, motorcycle und camper. | |
| doneeAddress | No | Anschrift des Beschenkten in einer Zeile. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. | |
| donorAddress | No | Anschrift des Schenkers in einer Zeile. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. | |
| handoverDate | No | Bei handover=past: Tag der Übergabe. | |
| handoverTime | No | Uhrzeit der Übergabe als HH:MM (optional). | |
| purposeLabel | No | Der Zweck in wenigen Worten, etwa Studium. Nennt er den Erlass eines Darlehens, ist die Antwort gesperrt (subjectNotCovered): Den deckt die API noch nicht ab. | |
| donor2Address | No | Anschrift des zweiten Schenkers. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. | |
| propertyValue | No | Nur bei subject=property: Verkehrswert der Immobilie in ganzen Euro; damit nennt die Antwort die Kosten für Notar und Grundbuch. | |
| spouseConsent | No | Zustimmung 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. | |
| doneeBirthDate | No | Geburtsdatum 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. | |
| donorBirthDate | No | Geburtsdatum des Schenkers (optional), ab 1900. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. | |
| parentDeceased | No | Nur bei relation=grandchild: Der Elternteil des Enkels, also das Kind des Schenkers, ist vor der Schenkung gestorben; dann gilt der Freibetrag eines Kindes. | |
| toDoneeAccount | No | Das Geld geht auf ein Konto des Beschenkten (Standard true); bei Minderjährigen auf ein Konto auf den Namen des Kindes, dann Pflicht. | |
| donor2BirthDate | No | Geburtsdatum des zweiten Schenkers (optional), ab 1900. Nur per POST im JSON-Body; in einer GET-Adresse antwortet die API mit 400 personalData. | |
| purposeDeadline | No | Bei purpose=auflage: bis wann das Geld verwendet wird (optional). | |
| relationChanged | No | Das Verhältnis hat sich seit einer früheren Schenkung geändert, etwa durch Heirat: Der Steuer-Check ist dann eine grobe Schätzung. | |
| representative1 | No | Bei Minderjährigen: der gesetzliche Vertreter. donor1 oder donor2 verknüpft einen Schenker, der Elternteil ist (geht per GET); ein Name nur per POST. | |
| representative2 | No | Wie representative1, für den zweiten Elternteil bei gemeinsamem Sorgerecht. | |
| firstRegistration | No | Erstzulassung als Datum, ab 1900 (optional). | |
| agreedBeforeExecution | No | Bei 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
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.
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.
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.
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.
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.
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.
10 tool updates
- First observed
cap_table - First observed
darlehensvertrag - First observed
e_rechnung - First observed
einkommensteuer - First observed
geschaeftsfuehrergehalt - First observed
gmbh_steuern - First observed
gruendungsbudget - First observed
notarkosten - First observed
quittung - First observed
schenkungsvertrag
Related MCP Connectors
Founder events, startup competition deadlines, startup credits and guides for Germany.
Manage your back office: invoices, reminders, receipts and time tracking in Germany and Austria.
Accounting for German SMBs: invoices, clients, bank transactions, journal entries, VAT.
German public tenders (190k+) and procurement-law calculators with legal basis. Free, no sign-up.
Related MCP Servers
AlicenseAqualityCmaintenancePDF/DOCX/Excel generation from HTML/Markdown with stationery overlay, ZUGFeRD/XRechnung e-invoicing, digital signing, form filling, and AI receipt OCR with DATEV/SKR03 export.40MIT- AlicenseNot gradedqualityBmaintenanceEnables 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
- AlicenseAqualityDmaintenanceEuropean 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.28MIT
- AlicenseBqualityBmaintenanceInvoicing, full accounting, year-end preparation and taxes for freelancers and small businesses in the EU, including Germany and Poland.3465MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.