bundeswehr-dienstgrade.de — Dienstgrade der Bundeswehr
Server Details
German armed forces ranks: lookup, comparison, NATO codes, promotion, US/UK equivalents, pay.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct operation: list_ranks enumerates a service's ranks, find_rank gives full detail on one rank, compare_ranks ranks two against each other, and base_pay extracts pay figures. The only mild overlap is that find_rank and list_ranks both surface pay grades, and find_rank already includes 2026 base pay, which base_pay also returns, but the descriptions make the intended use of each clear.
Three tools follow a clean verb_noun pattern (list_ranks, find_rank, compare_ranks). base_pay breaks the pattern by using a noun phrase with no verb, a minor but noticeable deviation in an otherwise consistent set.
Four tools is a lean but sensible surface for a reference dataset about ranks and pay. Nothing feels redundant enough to remove, though the set is on the thin side and a fifth query mode would not be out of place.
The core domain—enumerating ranks, detailing a rank, comparing ranks, and computing pay—is well covered, including pay grades, NATO codes, and career paths. Gaps are minor: no reverse lookup by NATO code, abbreviation, or pay grade to a rank, and no way to list all pay grades or experience levels directly.
Available Tools
4 toolsbase_payBundeswehr base pay (Besoldung)ARead-onlyIdempotentInspect
Monthly gross base pay (Grundgehalt) in euro for a rank or a pay grade (A 3 to A 16, B 1 to B 10), per experience level (Erfahrungsstufe 1-8; B grades have none). year 2026 = payments since 1 May 2026, 2025 = 1 April 2025 to 30 April 2026. Both are advance payments (Abschlag) not yet enacted by law. Without family allowance, bonuses and deductions.
| Name | Required | Description | Default |
|---|---|---|---|
| rank | No | A Bundeswehr rank name or abbreviation in German, any service, e.g. "Hauptmann", "KKpt", "Oberstabsarzt", "Flieger". | |
| year | No | ||
| pay_grade | No | Instead of rank: a pay grade such as "A 9" or "B 6" | |
| experience_level | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/closed-world, and the description adds substantive data-quality context: both year figures are advance payments (Abschlag) not yet enacted by law, and the figures exclude family allowance, bonuses and deductions. That caveat materially changes how an agent should present results, which is exactly the added value expected beyond 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?
One dense, front-loaded paragraph: what the figure is first, then qualifiers (date periods, advance-payment caveat, exclusions). Every clause adds information an agent would otherwise have to guess.
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?
With no output schema, the description does state the returned quantity and its unit (monthly gross euro). Remaining gaps are the response shape for a full lookup versus a range, and the behavior of a call with no arguments at all, which is plausible given zero required parameters.
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 50%, and the description compensates well: it defines the grade ranges (A 3–A 16, B 1–B 10), the experience-level range (1–8) and that B grades have none, and it spells out what each year enum value means. It does not resolve what happens if both rank and pay_grade are supplied, or if neither is, despite zero required parameters.
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 resource and measurement precisely: monthly gross base pay in euro, keyed by rank or pay grade, experience level and year. An agent can tell this is a pay-figure lookup rather than the rank-metadata siblings (find_rank, list_ranks, compare_ranks), though the description never names those alternatives 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?
Explains the two input routes ('for a rank or a pay grade') and the constraint that B grades have no experience level, plus the effective date ranges per year value. It stops short of explicit when-to-use/when-not guidance relative to compare_ranks or find_rank.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_ranksWhich of two ranks is higherARead-onlyIdempotentInspect
Compare two Bundeswehr ranks, also across services (e.g. "Hauptbootsmann" and "Oberfeldwebel"): which is higher, by how many levels, and their NATO codes.
| Name | Required | Description | Default |
|---|---|---|---|
| rank_a | Yes | A Bundeswehr rank name or abbreviation in German, any service, e.g. "Hauptmann", "KKpt", "Oberstabsarzt", "Flieger". | |
| rank_b | Yes | A Bundeswehr rank name or abbreviation in German, any service, e.g. "Hauptmann", "KKpt", "Oberstabsarzt", "Flieger". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds value beyond that by disclosing the shape of the answer — relative ordering, a level delta, and NATO codes — which matters because no output schema exists. It does not say how an unrecognized or ambiguous abbreviation is handled.
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?
A single sentence with the action and the returned quantities front-loaded, followed by a concrete example pair in parentheses. No filler and nothing that could be cut without losing information.
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 two-parameter read-only tool with no output schema, the description supplies what an agent needs: the comparison semantics, the cross-service allowance, and the three pieces of returned information. The only gap is failure behavior for an invalid or unknown rank string.
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% and both parameters already carry examples including abbreviations and medical ranks, so the baseline is 3. The description adds only that the two inputs may come from different services, which is a semantic constraint the schema does not state, but no further detail on format or matching rules.
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?
Names a specific verb and resource ("Compare two Bundeswehr ranks") and states the scope of the response (which is higher, by how many levels, NATO codes). This clearly separates it from list_ranks (enumeration), find_rank (lookup) and base_pay (pay data).
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?
"also across services" tells the agent that cross-service comparison is explicitly supported, which is the key usage condition for this tool versus a same-service lookup. It stops short of naming alternatives or exclusions (e.g., use find_rank when the rank name is unknown), so it is clear context rather than a full routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_rankLook up a Bundeswehr rankARead-onlyIdempotentInspect
Everything about one German military rank (Dienstgrad): service, abbreviation, rank group, level 1-26, NATO code, pay grade and 2026 base pay, form of address, insignia, the equivalent ranks in the other services, how one gets the rank under the Soldatenlaufbahnverordnung, typical posts where bundeswehr.de states them, and the US/UK ranks with the same NATO code. Text fields are in German.
| Name | Required | Description | Default |
|---|---|---|---|
| rank | Yes | A Bundeswehr rank name or abbreviation in German, any service, e.g. "Hauptmann", "KKpt", "Oberstabsarzt", "Flieger". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and closed-world, so the safety profile is covered. The description's real contribution is the return payload inventory, including the note that text fields are German — valuable given there is no output schema — but it says nothing about miss behavior (unknown rank / ambiguous abbreviation) or result shape.
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?
Front-loaded with the core statement ('Everything about one German military rank'), then a dense but purposeful inventory of returned fields. It is one long sentence with no filler, though the list is heavy enough to be slightly hard to scan.
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?
With no output schema, the description carries the return-value burden well by naming every data category (NATO code, pay, insignia, equivalents, career path). The remaining gap is operational: no statement about unknown/ambiguous rank inputs or the format of the returned object.
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?
There is a single parameter at 100% schema coverage, and the schema already gives concrete German examples and the service-agnostic behavior. The description only echoes the language constraint, adding essentially no syntax or disambiguation detail beyond the schema, so baseline 3 applies.
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 resource and scope: the complete record for exactly one German Dienstgrad, enumerating the fields returned. That singles it out from list_ranks (enumeration) and compare_ranks (multi-rank comparison), though it never names those 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?
Usage is only implied: it is the tool for looking up everything about a single named rank, so an agent can infer that enumerating many ranks belongs to list_ranks. There is no explicit when-to-use/when-not statement, no note that exactly one rank per call is required, and no guidance on what happens if the rank string is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ranksAll ranks of a service in orderARead-onlyIdempotentInspect
All Bundeswehr ranks of one service from lowest to highest, with abbreviation, rank group, level, NATO code and pay grade. Ranks on the same level are equal in rank (the officer candidates Fahnenjunker, Fähnrich and Oberfähnrich share a level with the rank below them).
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | heer_luftwaffe (Army and Air Force share their ranks), marine (Navy), sanitaet (medical officers) | heer_luftwaffe |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed world), so credit goes to what the description adds: the domain rule that ranks sharing a level are equal, including the officer-candidate exception. That is real behavioral context an agent could not derive from the annotations or schema. It stops short of describing ordering ties or output shape beyond field names.
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 sentences, no waste, ordering and field list front-loaded before the edge-case caveat. Every clause carries information the agent 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?
With no output schema, the description compensates by naming the returned fields (abbreviation, rank group, level, NATO code, pay grade) and the sort order. For a single-parameter read tool this is close to sufficient; only the exact result shape (array vs. nested grouping) is unspecified.
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% and the single enum parameter is fully documented (heer_luftwaffe shares Army/Air Force ranks, marine, sanitaet). The description only says 'one service' and adds no syntax or default behavior beyond the schema, so baseline 3 applies.
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 ('All Bundeswehr ranks of one service') plus ordering ('from lowest to highest') and the fields returned. The word 'All' plus the single-service scope cleanly separates it from find_rank (lookup) and compare_ranks (pairwise comparison) without opening any 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?
Usage is only implied: an agent can infer this is the enumeration tool to call when it needs the full rank ladder rather than a lookup. There is no explicit when-to-use/when-not statement and no named alternative, so the routing is left to inference.
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.
4 tool updates
- First observed
base_pay - First observed
compare_ranks - First observed
find_rank - First observed
list_ranks
Related MCP Connectors
Jobs, salaries, net pay and labour-market data for Germany from the JobJump job board.
German federal statutes and ordinances (Bundesrecht) — search by title or official abbreviation…
Verified German HR data with legal source: minimum wage, social security, holidays, notice periods
German public tenders and contract awards: search, deadlines, winners, market figures. Open data.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables deterministic salary and net/gross pay calculations for the German public sector and free salaries, following the official BMF tax computation plan, including allowances, family benefits, and tax/social contributions.41MIT
- AlicenseNot gradedqualityFmaintenanceEnables querying over 6,800 German federal statutes, case law, and legislative preparatory works with verbatim source text. Integrates EU law cross-references and provides citation validation and legal stance building.186 npm23Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables searching German federal statutes and ordinances by title or official abbreviation (BGB, StGB, GG), reading a single § or Article in full, browsing a law's table of contents, and retrieving its amendment status from the official Gesetze im Internet collection.312 npmMIT
- AlicenseBqualityAmaintenanceEnables clients to look up DARC local-club DOK codes and special event DOKs — district, club, purpose, callsign and sponsoring club — and to check whether a code was valid on a given QSO date, or to search by club, town, district or purpose. Runs fully offline with no network or authentication, and every answer cites its published source.6191 PyPIGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.