Brutto-Netto- und Gehaltsrechner
Server Details
Brutto-Netto-Rechner & zusätzlicher Gehalts- bzw. Besoldungsrechner für den Öffentlichen Dienst in Deutschland (für Tarifbeschäftigte und Beamte)
- Status
- Healthy
- Uptime
- 99.4% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
The two calculation tools (calculate_agent_salary and calculate_standard_salary) have overlapping goals but are distinguished by target group: the former is specific to public-sector agents with Zulagen, while the latter handles standard salaries including free-form gross amounts. The discovery tools are clearly distinct in scope (options vs. salary/zulagen details), though some initial confusion between the two calculation tools is possible without reading descriptions.
All tools follow a consistent verb_noun pattern: 'calculate_' for salary computations and 'get_' for queries, with descriptive nouns (agent_salary, standard_salary, public_sector_options, salary_and_zulagen_options). No mixing of styles or vague verbs.
With 4 tools, the server is tightly scoped for its purpose: two calculation paths (agent-specific and standard) plus two discovery tools for options. This is neither sparse nor overloaded, and every tool serves a distinct part of the workflow.
The tool surface covers the full lifecycle for a salary calculator: options discovery (options, groups, Zulagen) and both calculation variants (agent and standard). There are no obvious missing operations for the stated domain, as it is a calculator rather than a CRUD system.
Available Tools
4 toolscalculate_agent_salaryARead-onlyIdempotentInspect
VOLLSTÄNDIGE ÖD-BERECHNUNG & BMF-PAP: Berechnet das exakte Brutto, Netto und die jährliche Sonderzahlung inklusive ausgewählter Zulagen-IDs und bundeslandspezifischem Familienzuschlag. Die Netto-Ermittlung (Lohnsteuer, Solidaritätszuschlag, Kirchensteuer und Sozialabgaben) erfolgt exakt nach dem aktuellen Programmablaufplan (PAP) des Bundesfinanzministeriums (BMF).
| Name | Required | Description | Default |
|---|---|---|---|
| stufe | Yes | Erfahrungsstufe / Dienstaltersstufe (z. B. '1', '2', '3', '4', '5', '6'). Standard: '3'. | |
| gruppe | Yes | Besoldungs- oder Entgeltgruppe (z. B. 'A9', 'A13', 'B2' für Beamte oder 'E11', 'E9b', 'S12', 'P8', 'Ä1' für Tarif). Standard: 'A9'. | |
| kinder | No | Anzahl kindergeldberechtigter Kinder für den Familienzuschlag (z. B. 0, 1, 2). Befreit zugleich vom PV-Zuschlag für Kinderlose. | |
| gkvZusatz | No | Kassenindividueller GKV-Zusatzbeitrag in Prozent (z. B. 2.9 für Bundesdurchschnitt 2026, Standard: 2.9). | |
| bundesland | No | Bundesland des Wohnorts für Kirchensteuersatz (8% in BY/BW vs. 9% in übrigen Ländern) und PV-Sachsenregelung (z. B. 'bayern', 'by', 'nrw'). Standard: 'bayern'. | |
| dienstherr | No | Dienstherr / Bundesland bei Beamten (z. B. 'bund', 'bayern' bzw. 'by', 'nordrhein-westfalen' bzw. 'nrw'). Erforderlich wenn employmentType='beamte'. | |
| ortsklasse | No | Bayern Ortsklasse ('i' bis 'vii') für den regionalen Orts- und Familienzuschlag. Standard: 'i'. | |
| period_key | No | Optionaler Gültigkeitszeitraum / Tarifrunde (z. B. '20260501_'). Standard: aktuellste Tabelle. | |
| pkvBeitrag | No | Monatlicher PKV-Gesamtbeitrag zur privaten Kranken- und Pflegeversicherung in Euro (Standard: 0.0). | |
| steuerjahr | No | Steuerjahr für den BMF-Programmablaufplan (Standard: 2026). | |
| steuervier | No | Faktor bei Steuerklasse IV mit Faktorverfahren (z. B. 0.955, Standard: 1.0). | |
| geburtsjahr | No | Geburtsjahr des Beschäftigten für Altersentlastung und PV-Zuschlag für Kinderlose ab 23 Jahren (Standard: 1992). | |
| mietenstufe | No | NRW Mietenstufe ('i' bis 'vii') für den regionalen Ergänzungszuschlag. Standard: 'i'. | |
| kinderpflege | No | Anzahl Kinder unter 25 Jahren für gesetzliche PV-Staffelung ab dem 2. Kind: 0 (0-1 Kind), 1 (2 Kinder), 2 (3 Kinder), 3 (4 Kinder), 4 (5+ Kinder). Standard: 0. | |
| steuerklasse | Yes | Lohnsteuerklasse (1 bis 6). Standard: 1. | |
| tarifvertrag | No | Tarifvertrag bei Tarifbeschäftigten oder Ärzten (z. B. 'tvoed-vka', 'tvoed-bund', 'tv-l', 'tv-aerzte-vka'). Erforderlich wenn employmentType='tarif' oder 'aerzte'. | |
| familienstand | No | Familienstand für den beamtenrechtlichen Familienzuschlag Stufe 1 ('ledig' oder 'verheiratet'). Standard: 'ledig'. | |
| insuranceType | No | Krankenversicherungsart: Standard bei Tarifbeschäftigten ('tarif', 'aerzte', 'sonstige') ist 'gkv' (gesetzliche Krankenversicherung). Bei Beamten ('beamte') ist der Standard 'pkvOhne' (private Krankenversicherung). Weitere Optionen: 'pkvMit' (PKV mit AG-Zuschuss), 'gkvMitBeihilfe' (Pauschale Beihilfe). Standard: 'gkv' bei Tarif/Ärzte, 'pkvOhne' bei Beamten. | |
| kirchensteuer | No | Kirchensteuerpflichtig (true für ja, false für nein). Standard: false. | |
| employmentType | Yes | Art des Beschäftigungsverhältnisses: 'beamte' für Besoldung, 'tarif' für Tarifverträge (z. B. TVöD, TV-L), 'aerzte' für Ärztetarife. Standard: 'beamte'. | |
| sonstigeZulagen | No | Sonstige individuelle, steuerpflichtige Monatszulage in Euro (Standard: 0.0). | |
| zusatzversorgung | No | Betriebliche Zusatzversorgung im Öffentlichen Dienst: Für Tarifbeschäftigte ('tarif') in der Regel 'vbl' (VBL West/klassisch) bzw. 'vbl-ost' (VBL Ost). Für Beamte ('beamte') gilt 'nein'. Standard: 'vbl' bei Tarif, 'nein' bei Beamten. | |
| kinderfreibetraege | No | Zahl der Kinderfreibeträge auf der elektronischen Lohnsteuerkarte (z. B. 0.0, 0.5, 1.0, 1.5, 2.0). Standard: 0.0. | |
| rentenversicherung | No | Gesetzliche Rentenversicherung: Für Tarifbeschäftigte ('tarif', 'aerzte', 'sonstige') ist der Standard IMMER 'gRV' (gesetzliche Rentenversicherungspflicht nach § 1 SGB VI). Nur für Beamte ('beamte') oder bei ausdrücklicher Befreiung gilt 'nein'. Standard: 'gRV' bei Tarif/Ärzte, 'nein' bei Beamten. | |
| employmentPercentage | No | Beschäftigungsumfang in Prozent bei Teilzeit (z. B. 100.0 für Vollzeit, 80.0, 50.0). Standard: 100.0. | |
| selected_zulage_keys | No | Liste ausgewählter Zulagen-IDs aus get_salary_and_zulagen_options (z. B. Amtszulage, Stellenzulage). | |
| pkvZuschussArbeitgeber | No | Monatlicher Arbeitgeberzuschuss zur privaten KV/PV in Euro (Standard: 0.0). | |
| arbeitslosenversicherung | No | Gesetzliche Arbeitslosenversicherung: Für Tarifbeschäftigte ('tarif', 'aerzte', 'sonstige') ist der Standard IMMER 'gAV' (gesetzliche Arbeitslosenversicherungspflicht nach § 25 SGB III). Nur für Beamte ('beamte') oder bei ausdrücklicher Befreiung gilt 'nein'. Standard: 'gAV' bei Tarif/Ärzte, 'nein' bei Beamten. | |
| profiGesamtprivBasisKvPv | No | Basisabsicherungsbeitrag der PKV nach Bürgerentlastungsgesetz in Euro (steuermindernder Vorsorgeaufwand, Standard: 0.0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| jahr | No | Jährliche Gehaltsdaten inklusive Jahressonderzahlung |
| monat | No | Monatliche Gehalts- und Abzugsdaten |
| zulagen_berechnet | No | Liste der berechneten Zulagen und Zuschläge |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's job is lighter. It adds genuine behavioral context beyond the annotation: the net calculation follows the current BMF program flow plan (PAP) and uses the official tax algorithm, which tells the agent the results are authoritative and method-driven. No contradiction with 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?
Two dense sentences with the core claim front-loaded. The all-caps German tagline adds some noise but conveys scope efficiently. No wasted sentences given the tool's complexity; it wisely avoids enumerating the 29 parameters.
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 29-parameter tool with an output schema and full schema coverage, the description frames the domain well: exact public-sector salary calculation, tax components, allowances, and official BMF methodology. It doesn't explain return values, but the output schema covers that. The main missing context is sibling differentiation, already penalized under usage_guidelines.
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 100%, so the baseline is 3 and the schema carries the parameter documentation burden. The description adds minimal semantic value by naming concepts (selected allowance IDs, state-specific family allowance) that map to schema properties, but it does not enrich parameter meaning beyond what the schema already states.
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 states a specific verb ('Berechnet') and resource (gross, net, annual special payment for public sector employees), including selected allowance IDs and state-specific family allowance. It clearly differentiates from calculate_standard_salary via the 'VOLLSTÄNDIGE ÖD-BERECHNUNG' framing, though it doesn't name siblings explicitly.
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?
No guidance on when to choose this tool over calculate_standard_salary, get_public_sector_options, or get_salary_and_zulagen_options. The description implies completeness ('VOLLSTÄNDIGE') but provides no explicit when-to-use or when-not-to-use conditions, no prerequisites, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_standard_salaryARead-onlyIdempotentInspect
DIREKTBERECHNUNG & BRUTTO-NETTO-RECHNER: Berechnet Grundgehalt, Brutto, Netto und Sonderzahlung aus Kerndaten. Unterstützt sowohl Tarif & Besoldung ('beamte', 'tarif', 'aerzte') als auch freie Bruttobeträge ('sonstige' mit 'bruttoGehalt') mit exakter Lohnsteuer- und Sozialversicherungsberechnung nach aktuellem Programmablaufplan (PAP) des Bundesfinanzministeriums (BMF).
| Name | Required | Description | Default |
|---|---|---|---|
| stufe | No | Erfahrungsstufe (z. B. '3'). | |
| gruppe | No | Besoldungs- oder Entgeltgruppe (z. B. 'A9', 'E11'). | |
| kinder | No | Gibt an, ob Kinder vorhanden sind: 'ja' oder 'nein' (befreit vom PV-Zuschlag für Kinderlose). Standard: 'nein'. | |
| gkvZusatz | No | Kassenindividueller GKV-Zusatzbeitrag in Prozent (z. B. 2.9 für Bundesdurchschnitt 2026, Standard: 2.9). | |
| bundesland | No | Bundesland des Wohnorts für Kirchensteuersatz und PV Sachsen (z. B. 'bayern', 'by', 'nrw'). Standard: 'bayern'. | |
| dienstherr | No | Dienstherr / Bundesland bei Beamten (z. B. 'bund', 'bayern' bzw. 'by', 'nordrhein-westfalen' bzw. 'nrw'). | |
| period_key | No | Optionaler Gültigkeitszeitraum / Tarifrunde. | |
| pkvBeitrag | No | Monatlicher PKV-Gesamtbeitrag in Euro (Standard: 0.0). | |
| steuerjahr | No | Steuerjahr für den BMF-Programmablaufplan (Standard: 2026). | |
| steuervier | No | Faktor bei Steuerklasse IV mit Faktorverfahren (z. B. 0.955, Standard: 1.0). | |
| geburtsjahr | No | Geburtsjahr des Beschäftigten für Altersentlastung und PV-Zuschlag (Standard: 1992). | |
| bruttoGehalt | No | Fester monatlicher oder jährlicher Bruttobetrag in Euro (nur erforderlich bei employmentType='sonstige'). | |
| kinderpflege | No | Anzahl Kinder unter 25 Jahren für gesetzliche PV-Staffelung ab dem 2. Kind: 0 (0-1 Kind), 1 (2 Kinder), 2 (3 Kinder), 3 (4 Kinder), 4 (5+ Kinder). Standard: 0. | |
| steuerklasse | Yes | Lohnsteuerklasse (1 bis 6). Standard: 1. | |
| tarifvertrag | No | Tarifvertrag bei Tarifbeschäftigten oder Ärzten (z. B. 'tvoed-vka', 'tv-l'). | |
| insuranceType | No | Krankenversicherungsart: Standard bei Tarifbeschäftigten ('tarif', 'aerzte', 'sonstige') ist 'gkv' (gesetzliche Krankenversicherung). Bei Beamten ('beamte') ist der Standard 'pkvOhne' (private Krankenversicherung). Weitere Optionen: 'pkvMit' (PKV mit AG-Zuschuss), 'gkvMitBeihilfe' (Pauschale Beihilfe). Standard: 'gkv' bei Tarif/Ärzte, 'pkvOhne' bei Beamten. | |
| kirchensteuer | No | Kirchensteuerpflichtig (true für ja, false für nein). Standard: false. | |
| employmentType | Yes | 'beamte', 'tarif', 'aerzte' oder 'sonstige' (für freie Gehaltseingabe/Brutto-Netto-Rechner). Standard: 'beamte'. | |
| zeitraumGehalt | No | Zeitraum für bruttoGehalt: 'monat' oder 'jahr' (Standard: 'monat'). | |
| sonstigeZulagen | No | Sonstige individuelle, steuerpflichtige Monatszulage in Euro (Standard: 0.0). | |
| zusatzversorgung | No | Betriebliche Zusatzversorgung im Öffentlichen Dienst: Für Tarifbeschäftigte ('tarif') in der Regel 'vbl' (VBL West/klassisch) bzw. 'vbl-ost' (VBL Ost). Für Beamte ('beamte') gilt 'nein'. Standard: 'vbl' bei Tarif, 'nein' bei Beamten. | |
| kinderfreibetraege | No | Zahl der Kinderfreibeträge auf der Lohnsteuerkarte (z. B. 0.0, 0.5, 1.0, 1.5, 2.0). Standard: 0.0. | |
| rentenversicherung | No | Gesetzliche Rentenversicherung: Für Tarifbeschäftigte ('tarif', 'aerzte', 'sonstige') ist der Standard IMMER 'gRV' (gesetzliche Rentenversicherungspflicht nach § 1 SGB VI). Nur für Beamte ('beamte') oder bei ausdrücklicher Befreiung gilt 'nein'. Standard: 'gRV' bei Tarif/Ärzte, 'nein' bei Beamten. | |
| employmentPercentage | No | Beschäftigungsumfang in Prozent bei Teilzeit (z. B. 100.0, 80.0, 50.0). Standard: 100.0. | |
| pkvZuschussArbeitgeber | No | Monatlicher Arbeitgeberzuschuss zur privaten KV/PV in Euro (Standard: 0.0). | |
| arbeitslosenversicherung | No | Gesetzliche Arbeitslosenversicherung: Für Tarifbeschäftigte ('tarif', 'aerzte', 'sonstige') ist der Standard IMMER 'gAV' (gesetzliche Arbeitslosenversicherungspflicht nach § 25 SGB III). Nur für Beamte ('beamte') oder bei ausdrücklicher Befreiung gilt 'nein'. Standard: 'gAV' bei Tarif/Ärzte, 'nein' bei Beamten. | |
| profiGesamtprivBasisKvPv | No | Basisabsicherungsbeitrag der PKV nach Bürgerentlastungsgesetz in Euro (Standard: 0.0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| jahr | No | Jährliche Gehaltsdaten |
| monat | No | Monatliche Gehalts- und Abzugsdaten |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds meaningful behavioral context by specifying that calculations follow the 'aktuellen Programmablaufplan (PAP) des Bundesfinanzministeriums (BMF)', which tells the agent the calculation is standards-based and precise. No contradiction with 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?
The description is a single dense sentence that front-loads the tool's purpose and then adds the key mode distinction. It contains no filler, though the all-caps label and multiple parentheticals make it slightly heavier than necessary.
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?
Given the tool's complexity (27 parameters, 4 employment types) and the presence of a rich output schema and annotations, the description covers the essential decision space: what is calculated, which modes are supported, and which algorithm is used. It does not enumerate parameter dependencies, but the schema descriptions already handle those details.
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 100%, so the schema already documents all 27 parameters thoroughly. The description adds only light conceptual framing, such as 'Kerndaten' and the special role of 'bruttoGehalt' for 'sonstige'. This is helpful but does not significantly exceed what the schema already provides.
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 states a specific verb and resource: 'Berechnet Grundgehalt, Brutto, Netto und Sonderzahlung aus Kerndaten.' It clearly identifies the tool's scope and supported employment types. However, it does not explicitly differentiate from the sibling tool 'calculate_agent_salary', so it stops short of full sibling distinction.
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 description gives clear usage context by naming the supported modes: 'Tarif & Besoldung' ('beamte', 'tarif', 'aerzte') and free gross amounts ('sonstige' mit 'bruttoGehalt'). It implies when the tool is appropriate but does not explicitly state when to prefer an alternative sibling, so there are no exclusions but also no direct comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_public_sector_optionsARead-onlyIdempotentInspect
Liefert eine Übersicht aller Dienstherren (Bund & 16 Bundesländer) und Tarifverträge (TVöD, TV-L, etc.) mit den verfügbaren Besoldungsgruppen.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tarif | No | Liste aller Tarifverträge im Öffentlichen Dienst (z. B. TVöD VKA, TV-L) |
| aerzte | No | Liste aller Ärztetarife im Öffentlichen Dienst |
| beamte | No | Liste aller Dienstherren für Beamte (Bund und alle 16 Bundesländer) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds the content scope (employers, agreements, salary groups) but does not disclose additional behavioral traits such as auth requirements or rate limits. Since annotations cover the safety profile, a score of 3 is appropriate.
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 a single, concise sentence that front-loads the purpose. There is no redundancy or unnecessary detail.
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?
The tool is simple with no parameters, and the output schema exists (though not shown). The description fully explains what the tool returns, and annotations cover safety. Nothing is missing for an agent to call it correctly.
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?
The tool has zero parameters, so schema coverage is trivially 100%. The description does not need to explain parameters, and the baseline for 0 params is 4.
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 clearly states the tool provides an overview of all employers (federal and 16 states) and collective agreements with available salary groups. It uses a specific verb and resource, and clearly distinguishes from sibling tools that calculate salaries.
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 description does not explicitly state when to use this tool versus alternatives. It implies usage as a read-only overview tool, but does not mention alternatives or exclusions, so an agent must infer. Given the sibling tools are for salary calculation, the usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_salary_and_zulagen_optionsARead-onlyIdempotentInspect
DISCOVERY: Liefert für einen Dienstherrn oder Tarifvertrag und eine Gruppe alle Stufen mit Grundgehalt sowie alle wählbaren Stellenzulagen (Polizei, Justiz etc.), Amtszulagen und Familienzuschlags-Regeln.
| Name | Required | Description | Default |
|---|---|---|---|
| gruppe | Yes | Besoldungs- oder Entgeltgruppe (z. B. 'A9', 'A13', 'E11', 'B2'). | |
| dienstherr | No | Dienstherr / Bundesland (z. B. 'bayern' bzw. 'by', 'bund', 'nordrhein-westfalen' bzw. 'nrw') – erforderlich wenn employmentType='beamte'. | |
| period_key | No | Optionaler Gültigkeitszeitraum / Tarifrunde (z. B. '20260501_'). Standard: aktuellste Tabelle. | |
| tarifvertrag | No | Tarifvertrag (z. B. 'tvoed-vka', 'tv-l') – erforderlich wenn employmentType='tarif'. | |
| employmentType | Yes | Art des Beschäftigungsverhältnisses: 'beamte' für Besoldung oder 'tarif' für Tarifverträge. |
Output Schema
| Name | Required | Description |
|---|---|---|
| entity | No | |
| gruppe | No | Besoldungs- oder Entgeltgruppe |
| stufen | No | Tabellen-Grundgehälter je Erfahrungsstufe |
| zulage_options | No | Wählbare Stellenzulagen und Amtszulagen (z. B. Polizeizulage) mit Betrag und ID |
| employment_type | No | |
| familienzuschlag_info | No | Regeln und Beträge für Ehe- und Kinderbestandteile des Familienzuschlags |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds the behavioral context that this is a 'DISCOVERY' operation and that it returns a comprehensive set of salary levels and allowances, which is useful but not a major extension beyond the annotations. It does not disclose any limitations or prerequisites beyond what the schema states.
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 a single, front-loaded sentence with no filler. It begins with the 'DISCOVERY' label, immediately conveys the purpose, and lists the output components efficiently. Every word earns 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 a tool with 5 parameters (2 required) and an output schema, the description adequately summarizes the returned data (all levels with base salary, allowances, family allowance rules) and the input conditions (employer or collective agreement plus group). It does not explain error handling or edge cases, but these are likely covered by the schema and output schema. The description is complete enough for an agent to understand what to expect.
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 100%, so all parameters are already explained (gruppe, dienstherr, tarifvertrag, employmentType, period_key). The description reinforces the either/or relationship between dienstherr and tarifvertrag with 'oder', but adds no new syntactic or format details. Given the high schema coverage, a baseline of 3 is appropriate; the description does not need to compensate.
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 clearly states the tool's function: it delivers all pay grades with base salary and selectable allowances (position, office, family) for a given employer or collective agreement and a group. The 'DISCOVERY' prefix signals a discovery-oriented purpose, distinguishing it from calculation tools. The verb 'Liefert' and the explicit resource (salary options) make the purpose unambiguous.
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 description implies usage for exploring available salary components and options, as indicated by 'DISCOVERY' and the listing of allowances. It does not explicitly name sibling tools or state when not to use them, but the nature of the output (options rather than computed values) and the required parameters (employmentType, gruppe) clearly orient the agent toward discovery scenarios. A brief mention of alternatives would push this to 5.
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.
2 tool updates
- Changed
calculate_agent_salary9 fields changed- changed
Input schema / properties / arbeitslosenversicherung / descriptionPrevious value: -"Gesetzliche Arbeitslosenversicherung: 'nein' (Beamte/befreit) oder 'gAV' (gesetzlich versichert). Standard: 'nein'."New value: +"Gesetzliche Arbeitslosenversicherung: Für Tarifbeschäftigte ('tarif', 'aerzte', 'sonstige') ist der Standard IMMER 'gAV' (gesetzliche Arbeitslosenversicherungspflicht nach § 25 SGB III). Nur für Beamte ('beamte') oder bei ausdrücklicher Befreiung gilt 'nein'. Standard: 'gAV' bei Tarif/Ärzte, 'nein' bei Beamten." - changed
Input schema / properties / arbeitslosenversicherung / enumPrevious value: -[ - "nein", - "gAV" -]New value: +[ + "gAV", + "nein" +] - changed
Input schema / properties / insuranceType / descriptionPrevious value: -"Krankenversicherungsart: 'pkvOhne' (Private Krankenversicherung ohne Beihilfe/AG-Zuschuss – typisch für Beamte), 'pkvMit' (PKV mit AG-Zuschuss), 'gkv' (Gesetzliche Krankenversicherung – typisch bei Tarif), 'gkvMitBeihilfe' (Pauschale Beihilfe). Standard: 'pkvOhne'."New value: +"Krankenversicherungsart: Standard bei Tarifbeschäftigten ('tarif', 'aerzte', 'sonstige') ist 'gkv' (gesetzliche Krankenversicherung). Bei Beamten ('beamte') ist der Standard 'pkvOhne' (private Krankenversicherung). Weitere Optionen: 'pkvMit' (PKV mit AG-Zuschuss), 'gkvMitBeihilfe' (Pauschale Beihilfe). Standard: 'gkv' bei Tarif/Ärzte, 'pkvOhne' bei Beamten." - changed
Input schema / properties / insuranceType / enumPrevious value: -[ - "pkvOhne", - "pkvMit", - "gkv", - "gkvMitBeihilfe" -]New value: +[ + "gkv", + "pkvOhne", + "pkvMit", + "gkvMitBeihilfe" +] - changed
Input schema / properties / rentenversicherung / descriptionPrevious value: -"Gesetzliche Rentenversicherung: 'nein' (Beamte/befreit) oder 'gRV' (gesetzlich rentenversichert). Standard: 'nein'."New value: +"Gesetzliche Rentenversicherung: Für Tarifbeschäftigte ('tarif', 'aerzte', 'sonstige') ist der Standard IMMER 'gRV' (gesetzliche Rentenversicherungspflicht nach § 1 SGB VI). Nur für Beamte ('beamte') oder bei ausdrücklicher Befreiung gilt 'nein'. Standard: 'gRV' bei Tarif/Ärzte, 'nein' bei Beamten." - changed
Input schema / properties / rentenversicherung / enumPrevious value: -[ - "nein", - "gRV" -]New value: +[ + "gRV", + "nein" +] - changed
Input schema / properties / zusatzversorgung / descriptionPrevious value: -"Betriebliche Zusatzversorgung im Öffentlichen Dienst: 'nein' (Beamte/keine), 'vbl' (VBL West/klassisch), 'vbl-ost' (VBL Ost). Standard: 'nein'."New value: +"Betriebliche Zusatzversorgung im Öffentlichen Dienst: Für Tarifbeschäftigte ('tarif') in der Regel 'vbl' (VBL West/klassisch) bzw. 'vbl-ost' (VBL Ost). Für Beamte ('beamte') gilt 'nein'. Standard: 'vbl' bei Tarif, 'nein' bei Beamten." - changed
Input schema / properties / zusatzversorgung / enumPrevious value: -[ - "nein", - "vbl", - "vbl-ost" -]New value: +[ + "vbl", + "vbl-ost", + "nein" +] - changed
Input schema / requiredPrevious value: -[ - "employmentType", - "gruppe", - "stufe", - "steuerklasse", - "insuranceType" -]New value: +[ + "employmentType", + "gruppe", + "stufe", + "steuerklasse" +]
- Changed
calculate_standard_salary9 fields changed- changed
Input schema / properties / arbeitslosenversicherung / descriptionPrevious value: -"Gesetzliche Arbeitslosenversicherung: 'nein' (Beamte/befreit) oder 'gAV' (gesetzlich versichert). Standard: 'nein'."New value: +"Gesetzliche Arbeitslosenversicherung: Für Tarifbeschäftigte ('tarif', 'aerzte', 'sonstige') ist der Standard IMMER 'gAV' (gesetzliche Arbeitslosenversicherungspflicht nach § 25 SGB III). Nur für Beamte ('beamte') oder bei ausdrücklicher Befreiung gilt 'nein'. Standard: 'gAV' bei Tarif/Ärzte, 'nein' bei Beamten." - changed
Input schema / properties / arbeitslosenversicherung / enumPrevious value: -[ - "nein", - "gAV" -]New value: +[ + "gAV", + "nein" +] - changed
Input schema / properties / insuranceType / descriptionPrevious value: -"Krankenversicherungsart: 'pkvOhne' (Private Krankenversicherung), 'pkvMit' (PKV mit AG-Zuschuss), 'gkv' (Gesetzliche Krankenversicherung), 'gkvMitBeihilfe' (Pauschale Beihilfe). Standard: 'pkvOhne'."New value: +"Krankenversicherungsart: Standard bei Tarifbeschäftigten ('tarif', 'aerzte', 'sonstige') ist 'gkv' (gesetzliche Krankenversicherung). Bei Beamten ('beamte') ist der Standard 'pkvOhne' (private Krankenversicherung). Weitere Optionen: 'pkvMit' (PKV mit AG-Zuschuss), 'gkvMitBeihilfe' (Pauschale Beihilfe). Standard: 'gkv' bei Tarif/Ärzte, 'pkvOhne' bei Beamten." - changed
Input schema / properties / insuranceType / enumPrevious value: -[ - "pkvOhne", - "pkvMit", - "gkv", - "gkvMitBeihilfe" -]New value: +[ + "gkv", + "pkvOhne", + "pkvMit", + "gkvMitBeihilfe" +] - changed
Input schema / properties / rentenversicherung / descriptionPrevious value: -"Gesetzliche Rentenversicherung: 'nein' (Beamte/befreit) oder 'gRV' (gesetzlich versichert). Standard: 'nein'."New value: +"Gesetzliche Rentenversicherung: Für Tarifbeschäftigte ('tarif', 'aerzte', 'sonstige') ist der Standard IMMER 'gRV' (gesetzliche Rentenversicherungspflicht nach § 1 SGB VI). Nur für Beamte ('beamte') oder bei ausdrücklicher Befreiung gilt 'nein'. Standard: 'gRV' bei Tarif/Ärzte, 'nein' bei Beamten." - changed
Input schema / properties / rentenversicherung / enumPrevious value: -[ - "nein", - "gRV" -]New value: +[ + "gRV", + "nein" +] - changed
Input schema / properties / zusatzversorgung / descriptionPrevious value: -"Betriebliche Zusatzversorgung im Öffentlichen Dienst: 'nein' (Beamte/keine), 'vbl' (VBL West/klassisch), 'vbl-ost' (VBL Ost). Standard: 'nein'."New value: +"Betriebliche Zusatzversorgung im Öffentlichen Dienst: Für Tarifbeschäftigte ('tarif') in der Regel 'vbl' (VBL West/klassisch) bzw. 'vbl-ost' (VBL Ost). Für Beamte ('beamte') gilt 'nein'. Standard: 'vbl' bei Tarif, 'nein' bei Beamten." - changed
Input schema / properties / zusatzversorgung / enumPrevious value: -[ - "nein", - "vbl", - "vbl-ost" -]New value: +[ + "vbl", + "vbl-ost", + "nein" +] - changed
Input schema / requiredPrevious value: -[ - "employmentType", - "steuerklasse", - "insuranceType" -]New value: +[ + "employmentType", + "steuerklasse" +]
2 tool updates
- Changed
get_public_sector_options8 fields changed- added
Output schema / properties / aerzte / itemsAdded value: +{ + "type": "object" +} - changed
Output schema / properties / aerzte / typePrevious value: -[ - "array", - "object" -]New value: +"array" - added
Output schema / properties / beamte / itemsAdded value: +{ + "type": "object" +} - changed
Output schema / properties / beamte / typePrevious value: -[ - "array", - "object" -]New value: +"array" - removed
Output schema / properties / dienstherrenRemoved value: -{ - "description": "Liste aller Dienstherren für Beamte (Bund und alle 16 Bundesländer)", - "type": [ - "array", - "object" - ] -} - added
Output schema / properties / tarif / itemsAdded value: +{ + "type": "object" +} - changed
Output schema / properties / tarif / typePrevious value: -[ - "array", - "object" -]New value: +"array" - removed
Output schema / properties / tarifvertraegeRemoved value: -{ - "description": "Liste aller Tarifverträge im Öffentlichen Dienst (z. B. TVöD VKA, TV-L)", - "type": [ - "array", - "object" - ] -}
- Changed
get_salary_and_zulagen_options7 fields changed- removed
Output schema / properties / familienzuschlagRemoved value: -{ - "description": "Regeln und Beträge für Ehe- und Kinderbestandteile des Familienzuschlags", - "type": [ - "object", - "array" - ] -} - changed
Output schema / properties / familienzuschlag_info / typePrevious value: -[ - "object", - "array" -]New value: +"object" - removed
Output schema / properties / stellenzulagenRemoved value: -{ - "description": "Wählbare Stellenzulagen und Amtszulagen mit Betrag und ID", - "type": [ - "array", - "object" - ] -} - added
Output schema / properties / stufen / itemsAdded value: +{ + "type": "object" +} - changed
Output schema / properties / stufen / typePrevious value: -[ - "array", - "object" -]New value: +"array" - added
Output schema / properties / zulage_options / itemsAdded value: +{ + "type": "object" +} - changed
Output schema / properties / zulage_options / typePrevious value: -[ - "array", - "object" -]New value: +"array"
4 tool updates
- Changed
calculate_agent_salary1 field changed- added
Output schema / additionalPropertiesAdded value: +true
- Changed
calculate_standard_salary1 field changed- added
Output schema / additionalPropertiesAdded value: +true
- Changed
get_public_sector_options9 fields changed- added
Output schema / additionalPropertiesAdded value: +true - added
Output schema / properties / aerzteAdded value: +{ + "description": "Liste aller Ärztetarife im Öffentlichen Dienst", + "type": [ + "array", + "object" + ] +} - added
Output schema / properties / beamteAdded value: +{ + "description": "Liste aller Dienstherren für Beamte (Bund und alle 16 Bundesländer)", + "type": [ + "array", + "object" + ] +} - removed
Output schema / properties / dienstherren / itemsRemoved value: -{ - "type": "string" -} - changed
Output schema / properties / dienstherren / typePrevious value: -"array"New value: +[ + "array", + "object" +] - removed
Output schema / properties / periodenRemoved value: -{ - "description": "Verfügbare Gültigkeitszeiträume und Tarifrunden", - "items": { - "type": "string" - }, - "type": "array" -} - added
Output schema / properties / tarifAdded value: +{ + "description": "Liste aller Tarifverträge im Öffentlichen Dienst (z. B. TVöD VKA, TV-L)", + "type": [ + "array", + "object" + ] +} - removed
Output schema / properties / tarifvertraege / itemsRemoved value: -{ - "type": "string" -} - changed
Output schema / properties / tarifvertraege / typePrevious value: -"array"New value: +[ + "array", + "object" +]
- Changed
get_salary_and_zulagen_options9 fields changed- added
Output schema / additionalPropertiesAdded value: +true - added
Output schema / properties / employment_typeAdded value: +{ + "type": "string" +} - added
Output schema / properties / entityAdded value: +{ + "type": "string" +} - changed
Output schema / properties / familienzuschlag / typePrevious value: -"object"New value: +[ + "object", + "array" +] - added
Output schema / properties / familienzuschlag_infoAdded value: +{ + "description": "Regeln und Beträge für Ehe- und Kinderbestandteile des Familienzuschlags", + "type": [ + "object", + "array" + ] +} - removed
Output schema / properties / stellenzulagen / itemsRemoved value: -{ - "properties": { - "betrag": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" -} - changed
Output schema / properties / stellenzulagen / typePrevious value: -"array"New value: +[ + "array", + "object" +] - changed
Output schema / properties / stufen / typePrevious value: -"object"New value: +[ + "array", + "object" +] - added
Output schema / properties / zulage_optionsAdded value: +{ + "description": "Wählbare Stellenzulagen und Amtszulagen (z. B. Polizeizulage) mit Betrag und ID", + "type": [ + "array", + "object" + ] +}
4 tool updates
- First observed
calculate_agent_salary - First observed
calculate_standard_salary - First observed
get_public_sector_options - First observed
get_salary_and_zulagen_options
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npmMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1611 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.