Skip to main content
Glama

german-tax-data

Server Details

German municipal tax data (Hundesteuer, Zweitwohnungsteuer, Pfaendung), cited to the source

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 9 of 9 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct resource and action: by_state aggregates per state, lookup gets per-city details, ranking sorts cities, changes lists modifications, list_datasets is a meta-introspection tool, and pfaendung_calc is a calculator. No two tools have overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a domain prefix and an action suffix: <domain>_by_state, <domain>_lookup, <domain>_ranking, plus list_datasets and pfaendung_calc. The pattern is uniform and predictable.

Tool Count5/5

With 9 tools, the server is well-scoped: two tax domains each have three core lookup/ranking/state tools, supplemented by a changes tool, a dataset catalog, and a garnishment calculator. Each tool earns its place without redundancy.

Completeness5/5

For a data lookup service, the surface covers all common query types: per-state aggregates, per-city lookups, rankings, legislative changes, and an overview of available datasets. The garnishment calculator adds a distinct functionality. No obvious dead ends or missing operations.

Available Tools

9 tools
hundesteuer_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).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity name or slug, e.g. "Köln", "muenchen", "Frankfurt"
dogsNoNumber of dogs (default 1)
listedNoTreat as a listed/dangerous-breed dog (Listenhund) if the city has a higher rate
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many cities to return
orderNoexpensive
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dependentsNoNumber of maintenance-dependent persons (0-5)
net_income_eurYesMonthly NET income in EUR
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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. Defaults to 2026 (Stuttgart, Chemnitz, Heidelberg doubled to 20%, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context by defining 'changed' (raised or newly introduced) and offering examples of output content, but it does not disclose return format, pagination, or behavior for years with no changes. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with an em-dash explanation and concrete examples. Every word earns its place, and there is no filler or unnecessary detail. It is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one optional parameter, list output) with no output schema. The description gives examples that imply the shape of results (city names and doubled percentages), which helps the agent predict the output. However, it does not formally describe the response structure or mention edge cases, leaving minor gaps. Given the low complexity, this is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

The schema has one parameter 'year' with 0% description coverage, so the description must compensate. It does link the parameter to the tool's purpose ('in a given year') and notes the default, but the default is already in the schema, and there is no additional explanation of the valid range or optionality. This adds marginal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description uses a specific verb 'List' with a clearly defined resource ('German cities that changed their Zweitwohnungsteuer') and specifies the scope ('raised or newly introduced'). The phrase 'fresh-news angle' distinguishes it from sibling tools like lookup, ranking, and by_state, making the tool's unique function evident.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides clear context by stating the operation is for a 'given year', defaulting to 2026, and giving concrete examples (Stuttgart, Chemnitz, Heidelberg). This implies the intended use case of tracking recent changes, but it does not explicitly name alternatives or state when not to use this tool, preventing a 5.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesCity name or slug, e.g. "Stuttgart", "muenchen", "Konstanz"
monthly_rentNoMonthly cold rent (Kaltmiete) in EUR, to compute the annual tax (only for computable cities)
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many cities to return
orderNoexpensive
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources