german-tax-data
Server Details
German municipal tax data (Hundesteuer, Zweitwohnungsteuer, Pfaendung), cited to the source
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
10 toolshundesteuer_by_stateAInspect
Average German dog tax (Hundesteuer, first dog per year) per Bundesland (federal state), aggregated over the covered largest cities — the data behind the Deutschlandkarte. Answers 'which German state has the highest/lowest dog tax'. Note: a mean over cities, not an official state rate (the tax is municipal).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on full disclosure duty. It transparently reveals that the value is a mean over cities, not an official state rate, and clarifies the municipal nature of the tax. This goes beyond the basic name and adds critical interpretive context, though it doesn't mention data source or update cadence.
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, front-loaded with the core purpose and a concise caveat at the end. Every sentence adds value, no redundancy or fluff. The structure is ideal for a simple zero-parameter aggregation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and no annotations, the description provides sufficient context: what it returns, how it's aggregated, and a key caveat. It is complete for the tool's simplicity and likely usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per the rubric baseline is 4. The description provides context about what the returned data represents (average per state over covered cities), enhancing understanding of the output despite having no parameter semantics to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: 'Average German dog tax per Bundesland', which clearly states the tool's function. It distinguishes itself from siblings by focusing on state-level aggregations ('by_state') and explicitly mentions answering which state has the highest/lowest tax, differentiating from ranking or lookup 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 clearly implies when to use the tool: for comparing dog tax across German states, and notes it aggregates over large cities. It does not explicitly name alternatives or exclusions, but the context of state-level aggregation versus the sibling tools' city-level lookup/ranking is evident from the wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hundesteuer_changesAInspect
List German cities that changed their Hundesteuer (dog tax) rate in a given year — the fresh-news angle for the annual city comparison. Only 2026 is curated, and it is the default: 14 of the covered cities changed their rate, led by Köln (174 EUR), Lübeck (156 EUR), Lünen (156 EUR). Also returns outlook_2027: 5 cities that have announced or resolved an increase for 2027 but are NOT yet charging it — announced and in force are kept apart deliberately. Every entry checked individually against the municipal statute.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses that only 2026 is curated, that announced 2027 increases are intentionally separated from in-force changes, and that every entry was verified against municipal statutes. It does not cover every edge case, such as exact behavior for non-curated years, but the core limits and semantics are explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then gives concrete dataset details, the outlook distinction, and a source-verification guarantee. Every sentence adds operational value; no filler or schema repetition.
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 read-style tool with one parameter and no output schema, the description covers what it returns, what the default is, what data is curated, how announced vs in-force changes are kept apart, and data quality. An agent has enough to select and invoke it correctly; the only missing items (exact response shape) are not needed given the described semantics.
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 schema only defines an integer year with range/default, so the description's statement that 'given year' is the filter and that 2026 is the only curated/default year adds essential meaning. It also explains the fixed outlook_2027 output facet. It could still spell out what happens if a year outside 2026 is requested, but it compensates well for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening phrase identifies a specific verb and resource: list German cities that changed their Hundesteuer rate in a given year. It further positions this as the 'fresh-news angle' for city comparison, which distinguishes it from ranking/state/lookup siblings without needing their schemas.
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 clearly states when the tool is relevant (annual comparison, change-focused, fresh-news) and gives the critical constraint that only 2026 is curated and is the default. It stops short of explicitly naming alternative tools or when not to use it, so it earns a 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hundesteuer_lookupAInspect
Look up the German dog tax (Hundesteuer) for a city: annual rate for one or more dogs, listed-dog (Listenhund) surcharge, the city's pricing model, its rank among the largest cities, plus the official source and Stand. Rates verified against each municipal Satzung.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City name or slug, e.g. "Köln", "muenchen", "Frankfurt" | |
| dogs | No | Number of dogs (default 1) | |
| listed | No | Treat as a listed/dangerous-breed dog (Listenhund) if the city has a higher rate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that rates are 'verified against each municipal Satzung' and that the response includes official source and Stand, adding useful behavioral context about data provenance and freshness. It does not cover edge cases like city-not-found behavior, but the disclosed behavior is substantive.
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, well-structured sentence that front-loads the core purpose and then lists the specific data points returned. Every clause adds value, with no filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 params, no output schema), the description covers the essential aspects: what is returned, the data source, and verification status. It does not describe response format or error handling, but it provides enough context for an agent to understand the tool's scope and output content.
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 baseline is 3. The description adds meaning by linking 'annual rate for one or more dogs' to the 'dogs' parameter and 'listed-dog surcharge' to the 'listed' parameter, reinforcing the schema's descriptions with real-world context. This goes beyond simple repetition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look up') with a clear resource ('German dog tax for a city') and enumerates the specific outputs (annual rate, listed-dog surcharge, pricing model, rank, source, Stand). It clearly distinguishes from sibling tools like hundesteuer_by_state and hundesteuer_ranking by focusing on city-level lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for city-specific dog tax inquiries and differentiates from state-level or ranking tools via 'for a city', but it does not explicitly name alternatives or provide exclusions. It provides clear context without direct when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hundesteuer_rankingAInspect
Ranking of German cities by Hundesteuer (first dog, per year): most expensive or cheapest, plus the national average across the covered cities.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many cities to return | |
| order | No | expensive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral disclosure. It does disclose the inclusion of a national average and the two ordering modes, but it omits details such as default order/limit, data source, or whether the average changes with the limit parameter. This is a reasonable but incomplete transparency profile.
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 front-loads the core purpose and packs in key specifics (first dog, per year, expensive/cheapest, national average) with no wasted words. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, and the description covers the main behavior (ranking, ordering, average) despite lacking an output schema. It does not specify the exact return structure, but the description is sufficient for an agent to invoke the tool for ranking scenarios.
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 50%; the limit parameter is documented in the schema, while order is not. The description adds meaning by mapping 'expensive' and 'cheapest' to the order enum, but it does not discuss limit or how the two parameters interact with the average. This partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool produces a ranking of German cities by Hundesteuer, with specific dimensions (first dog, per year) and options (most expensive/cheapest, plus national average). This is a specific verb+resource and is readily distinguishable from sibling tools like hundesteuer_lookup or hundesteuer_by_state.
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 establishes clear context: use this when you need a ranked comparison of cities by dog tax, including ordering by cost. It does not explicitly name alternatives or exclusions, but the ranking focus and comparison to sibling tool names imply when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_datasetsAInspect
List the available hand-verified German municipal tax/fee datasets (Hundesteuer, Zweitwohnungsteuer, Pfändung), their coverage, source sites and refresh cadence. Call this first to see what you can query.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clearly indicates a read-only listing operation via the verb 'List', and adds valuable context about the data being 'hand-verified' and including 'refresh cadence', which informs the agent about data quality and update frequency. This goes beyond a simple restatement and is fully transparent for a non-destructive discovery tool.
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 concise, with two sentences. The first sentence states the purpose and content, and the second gives a clear usage directive. Every word earns its place, with no redundancy or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no parameters and no output schema, the description is complete. It covers what is listed (datasets, coverage, source sites, refresh cadence) and provides context ('Call this first') to guide the agent. The sibling tool names further clarify the context. Nothing essential 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, so the baseline is 4. The description doesn't need to explain parameters, and it appropriately focuses on what the tool returns rather than parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' with a clear resource: 'available hand-verified German municipal tax/fee datasets'. It also names the specific datasets (Hundesteuer, Zweitwohnungsteuer, Pfändung) and distinguishes itself from sibling tools by describing its scope as an overview of coverage, sources, and refresh cadence rather than querying individual datasets.
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 explicitly states 'Call this first to see what you can query', giving clear guidance on when to use it as an entry point. It does not explicitly mention when not to use it or name alternatives, but the sibling tool names imply that the other tools are for specific queries, making the usage context sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pfaendung_calcAInspect
Compute the attachable portion of monthly net income under German §850c ZPO (Pfändung / wage garnishment), using the current official Pfändungsfreigrenzenbekanntmachung. Returns attachable amount, remaining amount, exempt base and the P-Konto base. Informational, not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| dependents | No | Number of maintenance-dependent persons (0-5) | |
| net_income_eur | Yes | Monthly NET income in EUR |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It states that it uses the 'current official Pfändungsfreigrenzenbekanntmachung' and adds an 'Informational, not legal advice' disclaimer. However, it does not mention edge-case behavior, rounding, or validation beyond what the schema already indicates.
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 two sentences, immediately specifies the action, legal basis, and return values. Every clause contributes meaning, with no superfluous content.
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?
Although there is no output schema, the description explicitly enumerates the return values, which is essential. Given the tool's simplicity (2 params) and clear scope, the description covers the needed context, legal basis, and caveat. It does not explain how dependents affect the calculation, but the schema description for that parameter already provides that information.
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 input schema already documents both parameters with descriptions (100% coverage), so the baseline is 3. The description adds no additional meaning about the parameters, leaving the schema to fully define their semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Compute' with the resource 'attachable portion of monthly net income under German §850c ZPO' and lists the output values (attachable amount, remaining amount, exempt base, P-Konto base). This clearly distinguishes it from sibling tools about Hundesteuer and Zweitwohnungsteuer.
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 clearly implies when to use the tool (for wage garnishment calculations under German law) and provides enough context to differentiate from the sibling tax tools. It does not explicitly state exclusions or alternatives, but the legal and topical context makes the appropriate use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zweitwohnungsteuer_by_stateAInspect
Average German second-home tax (Zweitwohnungsteuer) rate in percent per Bundesland (federal state), aggregated over the levying cities with a computable rate — the data behind the Deutschlandkarte. Answers 'which German state has the highest/lowest second-home tax'. Note: a mean over cities, not an official state rate (the tax is municipal).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure. It explains the aggregation methodology, the population of cities included ('levying cities with a computable rate'), and the important caveat that the result is an average over cities rather than an official state rate. This goes beyond a generic 'get data' description, though it does not cover data freshness or exact source details.
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 compact and information-dense, delivering purpose, scope, methodology, and a caveat in three sentences. It is front-loaded with the key value proposition and avoids filler or repetition.
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 parameterless, read-only data lookup with no output schema, the description is sufficiently complete for an agent to select and invoke it correctly. It explains what the data is, how it was aggregated, what caveats apply, and what question it answers, making it self-contained for its simplicity.
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 the schema has 100% coverage (empty properties object). With no parameters to document, the description cannot add parameter-level detail, but the context is clear that no input is required. Baseline of 4 is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning average second-home tax rates per German federal state, with a specific aggregation method (mean over levying cities) and the exact question it answers. It distinguishes itself from sibling tools like lookup (city-level) and ranking by focusing on state-level aggregation.
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 explicitly states the tool answers a state-level comparison question ('which German state has the highest/lowest second-home tax') and provides a critical caveat that this is not an official state rate because the tax is municipal. It implies when to use this tool over municipality-specific tools, though it does not name alternatives explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zweitwohnungsteuer_changesAInspect
List German cities that changed (raised or newly introduced) their Zweitwohnungsteuer in a given year — the fresh-news angle. Only 2026 is curated, and it is the default: 12 cities changed their rate, led by Potsdam (25 %), Borkum (22 %), Stuttgart (20 %). Every entry checked individually against the municipality's own statute.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden and does a strong job: it discloses curation limits ('Only 2026 is curated'), data verification ('every entry checked individually against the municipality's own statute'), and expected output flavor (12 cities, led by Potsdam 25%, Borkum 22%, Stuttgart 20%). It does not describe what happens for non-curated years, but the curation caveat covers the main behavioral risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: the first states the core purpose, the second adds the critical curation/default context with concrete examples, and the third reassures data quality. Every sentence earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one simple parameter, no output schema, and no annotations, the description is largely complete: it defines the domain, scope, data curation status, default year, and verification standard. It does not specify the exact return format, but 'List' strongly implies a list output, and the missing detail is minor for an agent deciding whether to call it.
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 0%, so the description must clarify the year parameter. It does: 'in a given year' explains the semantic role of the parameter, and 'Only 2026 is curated, and it is the default' adds crucial meaning beyond the schema's default value. It could be even more explicit about accepted year range, but the schema already supplies min/max.
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 action ('List German cities'), a concrete domain ('Zweitwohnungsteuer'), and a precise scope ('changed ... in a given year'), including what counts as a change ('raised or newly introduced'). The 'fresh-news angle' and focus on year-over-year changes distinguish it clearly from sibling tools like lookup, ranking, and by_state.
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 sets clear usage context: use this tool for a change-focused, news-oriented view of Zweitwohnungsteuer by year. It also gives a concrete usage warning that only 2026 is curated and defaults to it, but it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zweitwohnungsteuer_lookupAInspect
Look up the German second-home tax (Zweitwohnungsteuer) for a city: whether the city levies it, the rate and its basis (net cold rent etc.), the rank among cities, official source and Stand. Optionally pass a monthly cold rent to get the annual tax. Returns state = keine_steuer | berechenbar | sondermodell.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City name or slug, e.g. "Stuttgart", "muenchen", "Konstanz" | |
| monthly_rent | No | Monthly cold rent (Kaltmiete) in EUR, to compute the annual tax (only for computable cities) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the return state (keine_steuer | berechenbar | sondermodell), the data fields provided, and that rent computation only works for computable cities. Missing explicit error-handling details and a statement of read-only nature, but 'look up' implies it. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with purpose, then optional parameter, then return state. No wasted words; each sentence adds distinct 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?
Given no output schema and moderate complexity, the description covers purpose, parameters, and return state. It could specify exact response structure or error behavior, but it's sufficiently complete for a lookup tool with this scope and sibling context.
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% with detailed descriptions for both `city` and `monthly_rent`. The description reinforces that monthly_rent computes the annual tax and ties to net cold rent, but adds minimal new meaning beyond the schema. 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 clearly states the tool looks up the German second-home tax for a city, listing specific outputs (levy status, rate, basis, rank, official source, Stand). The verb 'look up' is specific and the resource is well-defined, distinguishing it from sibling tools like by_state, ranking, and changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need city-level tax details and mentions the optional monthly rent to compute annual tax. It doesn't explicitly name alternatives or exclusions, but sibling tool names make the scope clear (e.g., by_state, ranking). Clear context but no explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zweitwohnungsteuer_rankingAInspect
Ranking of German cities by Zweitwohnungsteuer rate: highest or lowest, plus the average, count with a computable rate, and count of cities with no second-home tax.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many cities to return | |
| order | No | expensive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the output categories (ranking, average, count with computable rate, count with no tax) and the two ordering directions. It does not mention data source, update cadence, or edge cases, but the tool appears read-only and low-risk.
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 compact sentence that packs the core purpose, ranking directions, and all return metrics with no filler or redundancy. Every phrase contributes meaningful 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?
Despite lacking an output schema or annotations, the description explains what the tool produces well enough for selection and basic invocation. It doesn't specify the exact response format, but that is not critical for understanding whether to use the 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 coverage is 50%: 'limit' is described in the schema, while the description adds context to 'order' by mentioning 'highest or lowest', which maps to 'expensive' and 'cheapest'. This partially compensates for the missing enum descriptions, but no additional parameter-specific guidance is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Ranking of German cities by Zweitwohnungsteuer rate', giving a clear verb, resource, and scope. It also distinguishes itself from sibling tools by explicitly covering highest/lowest rankings plus aggregate counts, unlike lookup or by_state 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?
Usage is implied through the word 'Ranking' and the mention of 'highest or lowest', suggesting comparison across cities. However, there is no explicit guidance on when to choose this over lookup or by_state variants, leaving the agent to infer from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
German land values (Bodenrichtwerte) by address, with mandatory dl-de/by-2-0 attribution.
German moving cost estimates with sources: volume catalog, 6400 routes, versioned methodology
STR legality, permits and lodging tax by city, each field cited to its source jurisdiction.
Waste collection dates for German addresses from municipal authority calendars.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceCite-grade German legal-text infrastructure for LLM agents, providing access to federal, Länder, and EU laws with cryptographic provenance.2Apache 2.0
- 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.14722Apache 2.0
- FlicenseNot gradedqualityBmaintenanceProvides tools to search, retrieve, and trace German tax law statutes (KStG, EStG, AO, GewSt) from gesetze-im-internet.de, including amendment tracking.
- AlicenseAqualityDmaintenanceProvides access to 5,000+ Key Performance Indicators across 264 operating areas for all Swedish municipalities and regions, enabling statistical analysis, comparisons, and trend tracking of Swedish public sector data.215912MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct tax/domain and operation: state-level aggregation, per-city lookup, ranking, and yearly change tracking are clearly separated per tax. The only potential overlap between state averages and city rankings is resolved by explicit descriptions of the state vs. city scope.
The two tax areas follow a perfectly parallel pattern: <tax>_by_state, <tax>_changes, <tax>_lookup, and <tax>_ranking. The utility tools list_datasets and pfaendung_calc also use clear snake_case names and do not disrupt the overall convention.
Ten tools is well-scoped for a server covering two municipal taxes and a garnishment calculator. Each tax has four natural query operations, plus dataset discovery and a separate calculation tool, with no redundant or missing categories.
For a read-only data server, the surface is complete: per-city lookup, ranking, state aggregation, and change tracking exist for both taxes, list_datasets exposes dataset metadata, and pfaendung_calc covers the garnishment computation. There are no obvious dead-end workflows within the stated domain.