NebenkostenPro
Server Details
German housing costs: utility costs of 400 cities, property tax rates, housing benefit, deadlines.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Most tools have clearly distinct purposes, but there is notable overlap: get_property_tax_rate partially duplicates get_city_costs (which also returns property tax rates), and calculate_deadlines overlaps with the deadline info returned by start_bill_check and start_bill_creation. The descriptions do help distinguish them, keeping misselection low.
All nine tools follow a consistent snake_case verb_noun pattern (calculate_deadlines, get_city_costs, list_operating_cost_types, search_places, start_bill_check, start_bill_creation). No mixing of conventions or vague verbs.
Nine tools is well-scoped for a German utility-bill domain, covering lookup, calculation, statistics, and workflow entry points without bloat. Each tool earns its place.
The surface covers deadlines, cost benchmarks, property tax, operating cost types, place resolution, and both tenant/landlord workflows, which is broad for the domain. Minor gaps exist (e.g. no tool for directly interpreting a specific bill line item or heating cost calculation), but agents can work around them.
Available Tools
9 toolscalculate_deadlinesFristen der NebenkostenabrechnungARead-onlyIdempotentInspect
Berechnet die Abrechnungsfrist des Vermieters (12 Monate nach Ende des Abrechnungszeitraums, § 556 Abs. 3 S. 2 BGB) und, wenn das Zugangsdatum bekannt ist, die Einwendungsfrist des Mieters (12 Monate nach Zugang, § 556 Abs. 3 S. 5 BGB). Datum als JJJJ-MM-TT oder TT.MM.JJJJ. (EN: Deadlines for German utility bills: landlord billing deadline and tenant objection deadline.)
| Name | Required | Description | Default |
|---|---|---|---|
| period_end | Yes | Letzter Tag des Abrechnungszeitraums, z. B. '2025-12-31' | |
| received_on | No | Tag, an dem die Abrechnung beim Mieter ankam (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed world, so safety is covered. The description adds real behavioral context beyond that: the two distinct legal deadlines, the conditional behavior tied to received_on, and the accepted date formats, though it says nothing about how the result is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the primary calculation and its statutory basis, then the conditional case, then the format note. The parenthetical English gloss is slightly redundant for a German-domain tool but is efficient and aids disambiguation, so the text stays tight.
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 pure calculator with no output schema, the description conveys the inputs, the conditional logic, and the statutory rules that determine the result. It could be stronger by sketching the returned values (e.g., both computed dates and whether the objection deadline applies), but it is otherwise sufficient to invoke 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?
Schema description coverage is 100%, so baseline is 3, but the description adds meaning the schema does not: it states both accepted date formats (JJJJ-MM-TT or TT.MM.JJJJ) and ties each parameter to the specific deadline it drives via the statutory periods.
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 (calculates) and resource (the landlord's Abrechnungsfrist and, conditionally, the tenant's Einwendungsfrist under § 556 BGB), which is unmistakable and clearly distinct from the sibling lookup tools. The legal citations and the conditional on received_on make the scope precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implicitly scopes usage to German Nebenkostenabrechnung deadlines and explains the condition under which the second computation occurs ('wenn das Zugangsdatum bekannt ist'), which tells the agent when the optional parameter matters. No explicit exclusions or alternatives are named, but no sibling overlaps this calculation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bill_statisticsHäufigste Prüfhinweise in NebenkostenabrechnungenARead-onlyIdempotentInspect
Statistik aus der Prüfung echter Nebenkostenabrechnungen bei NebenkostenPro: zu welchen Themen (Heizung, Umlageschlüssel, Wasser, Hausmeister ...) die Prüfung wie oft Rückfragen markiert und wie viele Hinweise eine Abrechnung im Median hat. Laufend aktualisiert, mit Methodik und Zitierhinweis. Passt zu Fragen wie 'Wie oft sind Nebenkostenabrechnungen falsch?' oder 'Was ist in Nebenkostenabrechnungen häufig auffällig?'. (EN: Statistics from checking real German utility bills at NebenkostenPro: how often each topic (heating, allocation key, water ...) gets flagged, median flags per bill, with methodology and citation.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read-only, idempotent, non-destructive, closed-world profile, so the bar is lower. The description adds genuinely useful context beyond that: the data source (NebenkostenPro audits), continuous updating, and availability of methodology and citation notes.
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 purpose and the enumerated topics, then usage examples, then metadata notes. Slightly long because the English translation repeats the German content verbatim, which is duplication with little added value for an agent, but the structure itself is clean.
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 the work of indicating the return content (per-topic flag frequency, median flags per bill) and citing methodology/citation availability. For a zero-parameter statistics tool this is essentially complete; only the exact shape of the returned data remains 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?
The tool takes no parameters, so the baseline is 4. There is nothing for the description to disambiguate, and it correctly implies the tool is parameter-free by framing itself as an always-available statistics lookup.
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 (aggregate statistics from auditing real German utility bills) and enumerates the metrics returned: how often each topic is flagged and the median flags per bill. This clearly separates it from the sibling start_bill_check, which audits a specific bill rather than reporting aggregate findings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete example questions it answers ('Wie oft sind Nebenkostenabrechnungen falsch?', 'Was ist häufig auffällig?'), which effectively communicates the aggregate/lookup use case. It does not, however, explicitly name the alternative (e.g. start_bill_check for one's own bill), so the routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_city_costsNebenkosten einer StadtARead-onlyIdempotentInspect
Nebenkosten-Kennzahlen einer der 400 größten deutschen Städte: Grundsteuer-Hebesatz, Frischwasser- und Abwasserpreis, Müllgebühren sowie Vergleichswerte für Heizung, Versicherung, Gartenpflege und Hauswart. Jeder Wert mit Datenstand und Datenqualität (belegt, Modellwert oder Richtwert). (EN: Utility and service charges (Nebenkosten) for the 400 largest German cities: property tax rate, water, sewage, waste fees and benchmarks for heating, insurance, gardening and caretaker, each with data date and quality.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | Stadtname oder Slug, z. B. 'München', 'frankfurt-am-main' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is covered. The description adds genuine behavioral context beyond that: each value carries a Datenstand (data date) and Datenqualität tier (belegt / Modellwert / Richtwert), which tells the agent how much to trust individual figures.
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 resource and scope, then the returned fields, then the data-quality caveat. The German/English duplication adds length but serves discoverability; overall the text is dense with content rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and full annotation coverage, the description carries the return-value burden itself — and it does so by listing the exact metrics and the data-quality metadata. The one noticeable gap is the unaddressed overlap with the property-tax sibling tool.
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% for the single city parameter, which already documents 'Stadtname oder Slug' with examples. The description adds no further parameter syntax or formatting guidance, so the schema does the heavy lifting and a baseline 3 is appropriate.
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 (Nebenkosten/utility cost metrics) and enumerates exactly which values are returned (Grundsteuer-Hebesatz, water, sewage, waste fees, plus benchmarks), plus the addressable scope (400 largest German cities). It does not, however, differentiate itself from the sibling get_property_tax_rate, whose subject matter clearly overlaps with the Grundsteuer-Hebesatz field.
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?
There is no explicit when-to-use guidance, no statement of prerequisites, and no mention of the sibling get_property_tax_rate or get_housing_benefit_rent_level as alternatives. Usage is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_housing_benefit_rent_levelWohngeld-MietstufeARead-onlyIdempotentInspect
Wohngeld-Mietstufe (I bis VII) eines deutschen Ortes und die monatlichen Höchstbeträge für Miete nach § 12 WoGG je Haushaltsgröße. Das tatsächliche Wohngeld hängt zusätzlich vom Einkommen ab. (EN: German housing benefit (Wohngeld) rent level of a place and the monthly maximum rent amounts by household size.)
| Name | Required | Description | Default |
|---|---|---|---|
| place | Yes | Ortsname oder Slug aus search_places | |
| household_size | No | Anzahl Haushaltsmitglieder (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds real value beyond that by describing what is returned (rent level plus per-household-size maximums) and warning that real benefit depends on income — an important misuse guard. No rate limits or error behavior, but the bar is lower given 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 core definition is one dense, front-loaded sentence followed by a short caveat, with no filler. The bilingual repetition roughly doubles length, though it is defensible for a German-domain term.
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 must convey returns, and it does so reasonably (levels I–VII and monthly maximum rent by household size). For a simple two-parameter lookup with full annotation coverage this is close to complete, missing only exact return shape detail.
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 are documented there, so the baseline is 3. The description reinforces that amounts are keyed by household size but adds no format, slug, or default guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Wohngeld-Mietstufe I–VII for a German place) and the concrete output (monthly maximum rent amounts per § 12 WoGG by household size). It is clearly distinct from a general cost or tax tool, but it never names or differentiates itself from siblings like search_places or get_city_costs.
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 implied as a direct lookup keyed by place, and the caveat that actual Wohngeld also depends on income hints at when this result is and is not sufficient. However, no explicit when-to-use, prerequisites, or alternative tools are stated, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_property_tax_rateGrundsteuer-HebesatzARead-onlyIdempotentInspect
Grundsteuer-Hebesätze (B und, falls vorhanden, A) für jede deutsche Gemeinde, mit Landes- und Bundesdurchschnitt, Datenstand und Quelle. Grundsteuer = Messbetrag x Hebesatz / 100. (EN: German property tax (Grundsteuer) multiplier rates for every municipality, with state and national averages.)
| Name | Required | Description | Default |
|---|---|---|---|
| municipality | Yes | Gemeindename oder Slug aus search_places |
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 genuinely useful behavioral context beyond that: which rate types are returned, that state and national averages are included, and that the payload carries Datenstand and Quelle, which matters for a tax figure that changes over time.
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 resource and scope, followed by the data payload and a compact formula; the German/English pairing is slightly redundant but justified for a German-domain tool. No filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return-value burden, and it does so: it enumerates the rate types, the averages, and the metadata (data date, source). For a one-parameter lookup tool this is complete.
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 single parameter is already documented (name or slug from search_places). The description adds the meaning of the returned Hebesatz and its formula but nothing new about the municipality parameter itself, so the 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 names a precise resource (Grundsteuer-Hebesätze for every German municipality, types B and A) plus the accompanying data (state/national averages, data date, source) and even the computation formula. It is unambiguous what the tool returns, though it never explicitly contrasts itself with siblings like get_city_costs or search_places.
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 it should call this when it needs a municipality's property tax multiplier. There is no explicit when-to-use, when-not, or routing to an alternative tool, so the agent must reason from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_operating_cost_typesUmlagefähige BetriebskostenBRead-onlyIdempotentInspect
Die 17 umlagefähigen Betriebskostenarten nach § 2 BetrKV mit üblichem Verteilerschlüssel sowie typische Kosten, die nicht umgelegt werden dürfen (Verwaltung, Instandhaltung, Rücklagen). (EN: The 17 operating cost types landlords in Germany may pass on to tenants (§ 2 BetrKV) and typical costs they may not.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds useful content context (legal basis, included distribution keys, non-passable costs) but discloses no additional behavioral traits such as side effects or auth needs.
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 an English translation parenthetical. It is efficient and every part earns its place, though the bilingual repetition slightly lengthens it.
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 and no parameters, the description sufficiently explains what the returned list contains (the 17 types, distribution keys, and non-passable costs). No critical information for invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so there are no parameter semantics to document. The baseline score of 4 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 specifies a clear resource and scope: the 17 passable operating cost types under § 2 BetrKV, plus typical non-passable costs. It does not explicitly differentiate from siblings, but the domain is distinct among the listed tools.
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 states what the tool contains but gives no explicit guidance on when to use it or when to prefer alternatives. Usage is only implied by the content itself, with no conditions or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_placesOrte suchenARead-onlyIdempotentInspect
Sucht deutsche Städte und Gemeinden nach Namen und liefert den eindeutigen Slug für die anderen Tools. Nützlich bei mehrdeutigen Namen (z. B. 'Neuenkirchen' gibt es mehrfach). Zeigt auch, ob für den Ort ein ausführliches Nebenkosten-Profil (400 größte Städte) vorliegt. (EN: Search German cities and municipalities by name and get the slug used by the other tools.)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Name oder Namensanfang, z. B. 'Leipzig', 'Frankfurt', 'Neuenkirchen' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context: results include the slug and a flag for whether a detailed Nebenkosten profile exists (only for the 400 largest cities), which shapes what the agent can expect back. It does not describe pagination or ranking, so not a 5.
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 purpose, then the ambiguity rationale and the return-value hint, all in three compact sentences. The appended English translation duplicates content, which is redundant for a German-capable agent, but it costs little and does not bury the core message.
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 must carry return-value meaning, and it does: slug plus profile-availability flag. Combined with the annotations, an agent has enough to call it correctly; only result ordering and the 'limit' parameter's effect remain unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'query' is documented in the schema, but 'limit' has no description anywhere. The description implies name/prefix matching but adds no format or syntax detail beyond the schema's own example. Baseline 3 for a half-documented schema is appropriate.
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 ('Sucht deutsche Städte und Gemeinden nach Namen') plus the concrete return artifact (the slug other tools consume). This distinguishes it immediately from siblings like get_city_costs or get_property_tax_rate, which consume rather than produce the slug.
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?
Explicitly frames the use case: resolving ambiguous names (the 'Neuenkirchen' example) and feeding slugs to the other tools, which effectively makes it the entry point of the chain. It stops short of stating exclusions or naming which sibling to use when, but the context is clear enough to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_bill_checkNebenkostenabrechnung prüfen lassenARead-onlyIdempotentInspect
Für Mieter, die ihre eigene Nebenkostenabrechnung prüfen lassen möchten. Liefert den Link zur Prüfung bei NebenkostenPro (Abrechnung als PDF oder Foto hochladen, kostenlose Vorschau, Prüfung jeder Position gegen Betriebskosten- und Heizkostenverordnung), den Ablauf und, wenn das Zugangsdatum bekannt ist, bis wann Einwände möglich sind. Den Link unverändert an den Nutzer weitergeben. (EN: For tenants who want their own German utility bill (Nebenkostenabrechnung) checked: returns the NebenkostenPro upload link (free preview) and the objection deadline.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Stadt der Wohnung (optional) | |
| received_on | No | Tag, an dem die Abrechnung ankam, JJJJ-MM-TT oder TT.MM.JJJJ (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds real value: free preview, PDF/photo upload, per-position check against the Betriebskosten- und Heizkostenverordnung, and the instruction to pass the link through unchanged. That last directive is exactly the kind of behavioral guidance annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the target audience and the returned artifacts, with the pass-through instruction placed last as an action note. It is dense but every clause carries information; the appended English gloss is somewhat redundant for a German-language tool but aids agents.
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 no-required-param, read-only tool with no output schema, the description adequately explains what the caller receives (link plus workflow plus deadline). Permissions, rate limits, or the exact link format are not addressed, but nothing essential to a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are already documented, so the baseline is 3. The description adds a minor nuance by implying the objection deadline is only returned 'wenn das Zugangsdatum bekannt ist', which loosely ties to received_on, but adds no format or syntax detail beyond the schema.
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 action and the concrete deliverables: the NebenkostenPro upload link, the workflow, and the objection deadline. The 'check' framing implicitly separates it from the sibling 'start_bill_creation', though the alternative is never named 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?
The opening 'Für Mieter, die ihre eigene Nebenkostenabrechnung prüfen lassen möchten' identifies the audience, which implies when to use it, but there is no explicit when-not guidance and no alternatives (e.g. start_bill_creation, calculate_deadlines) are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_bill_creationNebenkostenabrechnung erstellenARead-onlyIdempotentInspect
Für Vermieter und Hausverwaltungen, die eine Nebenkostenabrechnung erstellen müssen. Liefert den Link zu NebenkostenPro (Belege hochladen, Kosten werden nach Betriebskostenverordnung verteilt, fertige Abrechnung als PDF), den Ablauf und, wenn das Ende des Abrechnungszeitraums bekannt ist, die Abrechnungsfrist. Den Link unverändert an den Nutzer weitergeben. (EN: For landlords who need to prepare a German utility bill: returns the NebenkostenPro link (upload receipts, finished statement as PDF) and the billing deadline.)
| Name | Required | Description | Default |
|---|---|---|---|
| period_end | No | Letzter Tag des Abrechnungszeitraums, z. B. '2025-12-31' (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: the output is a link plus a process description, the deadline is returned only when the period end is known, and the caller must forward the URL unmodified.
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 audience and purpose, then the return contents and the handling instruction. Slightly padded by the parenthetical English translation of an already-understandable German sentence, but nothing is truly wasted.
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 one-optional-parameter, read-only tool with no output schema, the description adequately covers what comes back (link, Ablauf, deadline) and the caller's obligation. The 'Ablauf' content is left unspecified, a minor gap rather than a blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by explaining the functional effect of the optional period_end — supplying it causes the Abrechnungsfrist to be returned. That meaning is not present in the schema text itself.
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 ('Nebenkostenabrechnung erstellen') and enumerates what the tool returns: the NebenkostenPro link, the workflow, and the billing deadline. It is clearly distinguishable from start_bill_check (creating vs checking), though it never names that sibling 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?
It names the target user and the condition of use ('Vermieter und Hausverwaltungen, die eine Nebenkostenabrechnung erstellen müssen') and gives an operational instruction to pass the link on unchanged. It does not state when to prefer it over start_bill_check or other siblings, so guidance is clear but not exclusionary.
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.
3 tool updates
- Added
get_bill_statistics - Added
start_bill_check - Added
start_bill_creation
6 tool updates
- First observed
calculate_deadlines - First observed
get_city_costs - First observed
get_housing_benefit_rent_level - First observed
get_property_tax_rate - First observed
list_operating_cost_types - First observed
search_places
Related MCP Connectors
German municipal tax data (Hundesteuer, Zweitwohnungsteuer, Pfaendung), cited to the source
German land values (Bodenrichtwerte) by address + land-use type. Coverage varies; not in SH/SN/BY.
Waste collection dates for German addresses from municipal authority calendars.
German moving cost estimates with sources: volume catalog, 6400 routes, versioned methodology
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables users to calculate Portuguese property purchase costs (IMT, stamp duty, deed/registration) and query annual IMI rates and costs for all 308 municipalities, with sourced figures.MIT
- AlicenseNot gradedqualityCmaintenanceEnables users to calculate Portuguese property purchase costs (IMT and stamp duty) and look up annual IMI property tax rates and costs for all 308 municipalities, with sources and year.MIT
- AlicenseNot gradedqualityDmaintenanceProvides access to KfW funding programs for residential building energy efficiency renovations in Germany. Enables users to list programs, check eligibility, calculate funding amounts, and get detailed information about specific KfW loans and grants.MIT
- FlicenseNot gradedqualityDmaintenanceNine tools for indoor climate and household energy in Germany/EU: BTU sizing for a room, portable-AC window-seal length, live heatwave outlook, appliance running costs, heating watts, dew point for safe ventilation, and balcony-storage subsidy rules. Also searches and reads 133 guides on getecoback.com; no auth, no personal data, and every answer returns its source URL.-
Glama MCP Gateway
Add one secure layer between your agents and this server.