Skip to main content
Glama

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)

Ownership verified
Status
Healthy
Uptime
99.4% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 4 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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 tools
calculate_agent_salaryA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
stufeYesErfahrungsstufe / Dienstaltersstufe (z. B. '1', '2', '3', '4', '5', '6'). Standard: '3'.
gruppeYesBesoldungs- oder Entgeltgruppe (z. B. 'A9', 'A13', 'B2' für Beamte oder 'E11', 'E9b', 'S12', 'P8', 'Ä1' für Tarif). Standard: 'A9'.
kinderNoAnzahl kindergeldberechtigter Kinder für den Familienzuschlag (z. B. 0, 1, 2). Befreit zugleich vom PV-Zuschlag für Kinderlose.
gkvZusatzNoKassenindividueller GKV-Zusatzbeitrag in Prozent (z. B. 2.9 für Bundesdurchschnitt 2026, Standard: 2.9).
bundeslandNoBundesland 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'.
dienstherrNoDienstherr / Bundesland bei Beamten (z. B. 'bund', 'bayern' bzw. 'by', 'nordrhein-westfalen' bzw. 'nrw'). Erforderlich wenn employmentType='beamte'.
ortsklasseNoBayern Ortsklasse ('i' bis 'vii') für den regionalen Orts- und Familienzuschlag. Standard: 'i'.
period_keyNoOptionaler Gültigkeitszeitraum / Tarifrunde (z. B. '20260501_'). Standard: aktuellste Tabelle.
pkvBeitragNoMonatlicher PKV-Gesamtbeitrag zur privaten Kranken- und Pflegeversicherung in Euro (Standard: 0.0).
steuerjahrNoSteuerjahr für den BMF-Programmablaufplan (Standard: 2026).
steuervierNoFaktor bei Steuerklasse IV mit Faktorverfahren (z. B. 0.955, Standard: 1.0).
geburtsjahrNoGeburtsjahr des Beschäftigten für Altersentlastung und PV-Zuschlag für Kinderlose ab 23 Jahren (Standard: 1992).
mietenstufeNoNRW Mietenstufe ('i' bis 'vii') für den regionalen Ergänzungszuschlag. Standard: 'i'.
kinderpflegeNoAnzahl 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.
steuerklasseYesLohnsteuerklasse (1 bis 6). Standard: 1.
tarifvertragNoTarifvertrag bei Tarifbeschäftigten oder Ärzten (z. B. 'tvoed-vka', 'tvoed-bund', 'tv-l', 'tv-aerzte-vka'). Erforderlich wenn employmentType='tarif' oder 'aerzte'.
familienstandNoFamilienstand für den beamtenrechtlichen Familienzuschlag Stufe 1 ('ledig' oder 'verheiratet'). Standard: 'ledig'.
insuranceTypeNoKrankenversicherungsart: 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.
kirchensteuerNoKirchensteuerpflichtig (true für ja, false für nein). Standard: false.
employmentTypeYesArt 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'.
sonstigeZulagenNoSonstige individuelle, steuerpflichtige Monatszulage in Euro (Standard: 0.0).
zusatzversorgungNoBetriebliche 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.
kinderfreibetraegeNoZahl der Kinderfreibeträge auf der elektronischen Lohnsteuerkarte (z. B. 0.0, 0.5, 1.0, 1.5, 2.0). Standard: 0.0.
rentenversicherungNoGesetzliche 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.
employmentPercentageNoBeschäftigungsumfang in Prozent bei Teilzeit (z. B. 100.0 für Vollzeit, 80.0, 50.0). Standard: 100.0.
selected_zulage_keysNoListe ausgewählter Zulagen-IDs aus get_salary_and_zulagen_options (z. B. Amtszulage, Stellenzulage).
pkvZuschussArbeitgeberNoMonatlicher Arbeitgeberzuschuss zur privaten KV/PV in Euro (Standard: 0.0).
arbeitslosenversicherungNoGesetzliche 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.
profiGesamtprivBasisKvPvNoBasisabsicherungsbeitrag der PKV nach Bürgerentlastungsgesetz in Euro (steuermindernder Vorsorgeaufwand, Standard: 0.0).

Output Schema

ParametersJSON Schema
NameRequiredDescription
jahrNoJährliche Gehaltsdaten inklusive Jahressonderzahlung
monatNoMonatliche Gehalts- und Abzugsdaten
zulagen_berechnetNoListe der berechneten Zulagen und Zuschläge

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 and the 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.

Purpose4/5

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.

Usage Guidelines2/5

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_salaryA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
stufeNoErfahrungsstufe (z. B. '3').
gruppeNoBesoldungs- oder Entgeltgruppe (z. B. 'A9', 'E11').
kinderNoGibt an, ob Kinder vorhanden sind: 'ja' oder 'nein' (befreit vom PV-Zuschlag für Kinderlose). Standard: 'nein'.
gkvZusatzNoKassenindividueller GKV-Zusatzbeitrag in Prozent (z. B. 2.9 für Bundesdurchschnitt 2026, Standard: 2.9).
bundeslandNoBundesland des Wohnorts für Kirchensteuersatz und PV Sachsen (z. B. 'bayern', 'by', 'nrw'). Standard: 'bayern'.
dienstherrNoDienstherr / Bundesland bei Beamten (z. B. 'bund', 'bayern' bzw. 'by', 'nordrhein-westfalen' bzw. 'nrw').
period_keyNoOptionaler Gültigkeitszeitraum / Tarifrunde.
pkvBeitragNoMonatlicher PKV-Gesamtbeitrag in Euro (Standard: 0.0).
steuerjahrNoSteuerjahr für den BMF-Programmablaufplan (Standard: 2026).
steuervierNoFaktor bei Steuerklasse IV mit Faktorverfahren (z. B. 0.955, Standard: 1.0).
geburtsjahrNoGeburtsjahr des Beschäftigten für Altersentlastung und PV-Zuschlag (Standard: 1992).
bruttoGehaltNoFester monatlicher oder jährlicher Bruttobetrag in Euro (nur erforderlich bei employmentType='sonstige').
kinderpflegeNoAnzahl 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.
steuerklasseYesLohnsteuerklasse (1 bis 6). Standard: 1.
tarifvertragNoTarifvertrag bei Tarifbeschäftigten oder Ärzten (z. B. 'tvoed-vka', 'tv-l').
insuranceTypeNoKrankenversicherungsart: 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.
kirchensteuerNoKirchensteuerpflichtig (true für ja, false für nein). Standard: false.
employmentTypeYes'beamte', 'tarif', 'aerzte' oder 'sonstige' (für freie Gehaltseingabe/Brutto-Netto-Rechner). Standard: 'beamte'.
zeitraumGehaltNoZeitraum für bruttoGehalt: 'monat' oder 'jahr' (Standard: 'monat').
sonstigeZulagenNoSonstige individuelle, steuerpflichtige Monatszulage in Euro (Standard: 0.0).
zusatzversorgungNoBetriebliche 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.
kinderfreibetraegeNoZahl der Kinderfreibeträge auf der Lohnsteuerkarte (z. B. 0.0, 0.5, 1.0, 1.5, 2.0). Standard: 0.0.
rentenversicherungNoGesetzliche 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.
employmentPercentageNoBeschäftigungsumfang in Prozent bei Teilzeit (z. B. 100.0, 80.0, 50.0). Standard: 100.0.
pkvZuschussArbeitgeberNoMonatlicher Arbeitgeberzuschuss zur privaten KV/PV in Euro (Standard: 0.0).
arbeitslosenversicherungNoGesetzliche 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.
profiGesamtprivBasisKvPvNoBasisabsicherungsbeitrag der PKV nach Bürgerentlastungsgesetz in Euro (Standard: 0.0).

Output Schema

ParametersJSON Schema
NameRequiredDescription
jahrNoJährliche Gehaltsdaten
monatNoMonatliche Gehalts- und Abzugsdaten

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '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.

Usage Guidelines4/5

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

The description gives clear usage context 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_optionsA
Read-onlyIdempotent
Inspect

Liefert eine Übersicht aller Dienstherren (Bund & 16 Bundesländer) und Tarifverträge (TVöD, TV-L, etc.) mit den verfügbaren Besoldungsgruppen.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
tarifNoListe aller Tarifverträge im Öffentlichen Dienst (z. B. TVöD VKA, TV-L)
aerzteNoListe aller Ärztetarife im Öffentlichen Dienst
beamteNoListe aller Dienstherren für Beamte (Bund und alle 16 Bundesländer)

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_optionsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
gruppeYesBesoldungs- oder Entgeltgruppe (z. B. 'A9', 'A13', 'E11', 'B2').
dienstherrNoDienstherr / Bundesland (z. B. 'bayern' bzw. 'by', 'bund', 'nordrhein-westfalen' bzw. 'nrw') – erforderlich wenn employmentType='beamte'.
period_keyNoOptionaler Gültigkeitszeitraum / Tarifrunde (z. B. '20260501_'). Standard: aktuellste Tabelle.
tarifvertragNoTarifvertrag (z. B. 'tvoed-vka', 'tv-l') – erforderlich wenn employmentType='tarif'.
employmentTypeYesArt des Beschäftigungsverhältnisses: 'beamte' für Besoldung oder 'tarif' für Tarifverträge.

Output Schema

ParametersJSON Schema
NameRequiredDescription
entityNo
gruppeNoBesoldungs- oder Entgeltgruppe
stufenNoTabellen-Grundgehälter je Erfahrungsstufe
zulage_optionsNoWählbare Stellenzulagen und Amtszulagen (z. B. Polizeizulage) mit Betrag und ID
employment_typeNo
familienzuschlag_infoNoRegeln und Beträge für Ehe- und Kinderbestandteile des Familienzuschlags

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 2 tool updates
    • Changedcalculate_agent_salary9 fields changed
      • changedInput schema / properties / arbeitslosenversicherung / description
        Previous 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."
      • changedInput schema / properties / arbeitslosenversicherung / enum
        Previous value: -[
        -  "nein",
        -  "gAV"
        -]New value: +[
        +  "gAV",
        +  "nein"
        +]
      • changedInput schema / properties / insuranceType / description
        Previous 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."
      • changedInput schema / properties / insuranceType / enum
        Previous value: -[
        -  "pkvOhne",
        -  "pkvMit",
        -  "gkv",
        -  "gkvMitBeihilfe"
        -]New value: +[
        +  "gkv",
        +  "pkvOhne",
        +  "pkvMit",
        +  "gkvMitBeihilfe"
        +]
      • changedInput schema / properties / rentenversicherung / description
        Previous 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."
      • changedInput schema / properties / rentenversicherung / enum
        Previous value: -[
        -  "nein",
        -  "gRV"
        -]New value: +[
        +  "gRV",
        +  "nein"
        +]
      • changedInput schema / properties / zusatzversorgung / description
        Previous 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."
      • changedInput schema / properties / zusatzversorgung / enum
        Previous value: -[
        -  "nein",
        -  "vbl",
        -  "vbl-ost"
        -]New value: +[
        +  "vbl",
        +  "vbl-ost",
        +  "nein"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "employmentType",
        -  "gruppe",
        -  "stufe",
        -  "steuerklasse",
        -  "insuranceType"
        -]New value: +[
        +  "employmentType",
        +  "gruppe",
        +  "stufe",
        +  "steuerklasse"
        +]
    • Changedcalculate_standard_salary9 fields changed
      • changedInput schema / properties / arbeitslosenversicherung / description
        Previous 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."
      • changedInput schema / properties / arbeitslosenversicherung / enum
        Previous value: -[
        -  "nein",
        -  "gAV"
        -]New value: +[
        +  "gAV",
        +  "nein"
        +]
      • changedInput schema / properties / insuranceType / description
        Previous 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."
      • changedInput schema / properties / insuranceType / enum
        Previous value: -[
        -  "pkvOhne",
        -  "pkvMit",
        -  "gkv",
        -  "gkvMitBeihilfe"
        -]New value: +[
        +  "gkv",
        +  "pkvOhne",
        +  "pkvMit",
        +  "gkvMitBeihilfe"
        +]
      • changedInput schema / properties / rentenversicherung / description
        Previous 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."
      • changedInput schema / properties / rentenversicherung / enum
        Previous value: -[
        -  "nein",
        -  "gRV"
        -]New value: +[
        +  "gRV",
        +  "nein"
        +]
      • changedInput schema / properties / zusatzversorgung / description
        Previous 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."
      • changedInput schema / properties / zusatzversorgung / enum
        Previous value: -[
        -  "nein",
        -  "vbl",
        -  "vbl-ost"
        -]New value: +[
        +  "vbl",
        +  "vbl-ost",
        +  "nein"
        +]
      • changedInput schema / required
        Previous value: -[
        -  "employmentType",
        -  "steuerklasse",
        -  "insuranceType"
        -]New value: +[
        +  "employmentType",
        +  "steuerklasse"
        +]
  2. 2 tool updates
    • Changedget_public_sector_options8 fields changed
      • addedOutput schema / properties / aerzte / items
        Added value: +{
        +  "type": "object"
        +}
      • changedOutput schema / properties / aerzte / type
        Previous value: -[
        -  "array",
        -  "object"
        -]New value: +"array"
      • addedOutput schema / properties / beamte / items
        Added value: +{
        +  "type": "object"
        +}
      • changedOutput schema / properties / beamte / type
        Previous value: -[
        -  "array",
        -  "object"
        -]New value: +"array"
      • removedOutput schema / properties / dienstherren
        Removed value: -{
        -  "description": "Liste aller Dienstherren für Beamte (Bund und alle 16 Bundesländer)",
        -  "type": [
        -    "array",
        -    "object"
        -  ]
        -}
      • addedOutput schema / properties / tarif / items
        Added value: +{
        +  "type": "object"
        +}
      • changedOutput schema / properties / tarif / type
        Previous value: -[
        -  "array",
        -  "object"
        -]New value: +"array"
      • removedOutput schema / properties / tarifvertraege
        Removed value: -{
        -  "description": "Liste aller Tarifverträge im Öffentlichen Dienst (z. B. TVöD VKA, TV-L)",
        -  "type": [
        -    "array",
        -    "object"
        -  ]
        -}
    • Changedget_salary_and_zulagen_options7 fields changed
      • removedOutput schema / properties / familienzuschlag
        Removed value: -{
        -  "description": "Regeln und Beträge für Ehe- und Kinderbestandteile des Familienzuschlags",
        -  "type": [
        -    "object",
        -    "array"
        -  ]
        -}
      • changedOutput schema / properties / familienzuschlag_info / type
        Previous value: -[
        -  "object",
        -  "array"
        -]New value: +"object"
      • removedOutput schema / properties / stellenzulagen
        Removed value: -{
        -  "description": "Wählbare Stellenzulagen und Amtszulagen mit Betrag und ID",
        -  "type": [
        -    "array",
        -    "object"
        -  ]
        -}
      • addedOutput schema / properties / stufen / items
        Added value: +{
        +  "type": "object"
        +}
      • changedOutput schema / properties / stufen / type
        Previous value: -[
        -  "array",
        -  "object"
        -]New value: +"array"
      • addedOutput schema / properties / zulage_options / items
        Added value: +{
        +  "type": "object"
        +}
      • changedOutput schema / properties / zulage_options / type
        Previous value: -[
        -  "array",
        -  "object"
        -]New value: +"array"
  3. 4 tool updates
    • Changedcalculate_agent_salary1 field changed
      • addedOutput schema / additionalProperties
        Added value: +true
    • Changedcalculate_standard_salary1 field changed
      • addedOutput schema / additionalProperties
        Added value: +true
    • Changedget_public_sector_options9 fields changed
      • addedOutput schema / additionalProperties
        Added value: +true
      • addedOutput schema / properties / aerzte
        Added value: +{
        +  "description": "Liste aller Ärztetarife im Öffentlichen Dienst",
        +  "type": [
        +    "array",
        +    "object"
        +  ]
        +}
      • addedOutput schema / properties / beamte
        Added value: +{
        +  "description": "Liste aller Dienstherren für Beamte (Bund und alle 16 Bundesländer)",
        +  "type": [
        +    "array",
        +    "object"
        +  ]
        +}
      • removedOutput schema / properties / dienstherren / items
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / dienstherren / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "object"
        +]
      • removedOutput schema / properties / perioden
        Removed value: -{
        -  "description": "Verfügbare Gültigkeitszeiträume und Tarifrunden",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / tarif
        Added value: +{
        +  "description": "Liste aller Tarifverträge im Öffentlichen Dienst (z. B. TVöD VKA, TV-L)",
        +  "type": [
        +    "array",
        +    "object"
        +  ]
        +}
      • removedOutput schema / properties / tarifvertraege / items
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / tarifvertraege / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "object"
        +]
    • Changedget_salary_and_zulagen_options9 fields changed
      • addedOutput schema / additionalProperties
        Added value: +true
      • addedOutput schema / properties / employment_type
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / entity
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / familienzuschlag / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "array"
        +]
      • addedOutput schema / properties / familienzuschlag_info
        Added value: +{
        +  "description": "Regeln und Beträge für Ehe- und Kinderbestandteile des Familienzuschlags",
        +  "type": [
        +    "object",
        +    "array"
        +  ]
        +}
      • removedOutput schema / properties / stellenzulagen / items
        Removed value: -{
        -  "properties": {
        -    "betrag": {
        -      "type": "number"
        -    },
        -    "id": {
        -      "type": "string"
        -    },
        -    "name": {
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • changedOutput schema / properties / stellenzulagen / type
        Previous value: -"array"New value: +[
        +  "array",
        +  "object"
        +]
      • changedOutput schema / properties / stufen / type
        Previous value: -"object"New value: +[
        +  "array",
        +  "object"
        +]
      • addedOutput schema / properties / zulage_options
        Added value: +{
        +  "description": "Wählbare Stellenzulagen und Amtszulagen (z. B. Polizeizulage) mit Betrag und ID",
        +  "type": [
        +    "array",
        +    "object"
        +  ]
        +}
  4. 4 tool updates
    • First observedcalculate_agent_salary
    • First observedcalculate_standard_salary
    • First observedget_public_sector_options
    • First observedget_salary_and_zulagen_options

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    16
    11 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources