Skip to main content
Glama
iMark21

AEAT MCP Server

by iMark21

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Every tool has a clearly distinct purpose targeting specific Spanish tax and fiscal information domains. There is no overlap between tools like get_ccaa_deductions (regional tax deductions), get_fiscal_calendar (deadlines), get_indicators (economic thresholds), and search_tax_rules (keyword-based rule search). The descriptions clearly differentiate each tool's unique function.

    Naming Consistency5/5

    All tools follow a consistent verb_noun naming pattern with perfect uniformity. Every tool name starts with either 'get_' or 'search_' followed by a descriptive noun phrase, and all use snake_case consistently throughout. This creates excellent predictability and readability across the entire toolset.

    Tool Count5/5

    With 10 tools, this server is well-scoped for its comprehensive Spanish tax information domain. Each tool earns its place by covering distinct aspects like regional deductions, tax brackets, VAT rates, form information, and validation. The count is ideal for providing complete coverage without being overwhelming.

    Completeness5/5

    The toolset provides complete coverage of Spanish tax and fiscal information needs. It includes regional deductions, tax brackets, VAT rates, economic indicators, personal minimums, form information, deadline calendars, tax rule searches, form field searches, and ID validation. This represents comprehensive CRUD-like access to the domain with no apparent gaps for agent workflows.

  • Average 4.1/5 across 10 of 10 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

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

    With no annotations provided, the description carries full burden. It discloses the tool's behavior as a read-only operation ('Returns') and specifies the data source (Ley 35/2006), but doesn't mention potential limitations like rate limits, authentication needs, or error conditions. It adequately describes what the tool does without contradictions.

    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 efficiently structured in two sentences: the first states the purpose and scope, the second adds context about tax reduction and legal source. Every phrase contributes meaning without redundancy, making it appropriately concise and front-loaded.

    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 low complexity (1 parameter, no output schema, no annotations), the description is reasonably complete. It explains what the tool returns and its tax relevance, though it could benefit from mentioning output format or example usage. The absence of an output schema means the description doesn't need to cover return values in detail.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema fully documents the single parameter 'year'. The description doesn't add any parameter-specific information beyond what's in the schema, maintaining the baseline score of 3 for adequate coverage without extra value.

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

    Purpose5/5

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

    The description clearly states the tool's purpose with specific verbs ('Returns') and resources ('personal and family tax-free minimums for Spanish IRPF'), including detailed scope ('taxpayer minimum, descendants, ascendants, and disability allowances'). It distinguishes from sibling tools by focusing on minimums rather than deductions, brackets, or other tax elements.

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

    Usage Guidelines3/5

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

    The description implies usage context by mentioning 'reduce the taxable base' and citing legal sources, suggesting it's for tax calculation scenarios. However, it lacks explicit guidance on when to use this tool versus alternatives like get_irpf_brackets or get_ccaa_deductions, and doesn't specify prerequisites or exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • 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 about the source ('PGE + BOE') and the tool's read-only nature is implied by 'Returns', but it doesn't disclose potential limitations like data availability, rate limits, error conditions, or response format 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 efficiently structured in three sentences: first states the core function, second explains usage context, third cites sources. Every sentence adds value with zero wasted words, and key information is front-loaded.

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

    Completeness3/5

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

    For a read-only tool with 2 parameters and 100% schema coverage but no output schema, the description is adequate but has gaps. It explains purpose and context well, but without annotations or output schema, it should ideally describe the return format (e.g., structured data with values) to be more 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?

    Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds marginal value by implying the 'year' parameter filters the data and that 'indicator' is optional, but doesn't provide additional syntax or format details beyond what the schema provides.

    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 specific action ('Returns') and resources ('key Spanish economic indicators'), listing the exact indicators (IPREM, SMI, legal interest rate, late payment interest rate). It distinguishes from sibling tools by focusing on economic thresholds rather than tax brackets, deductions, or other fiscal data.

    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 for when to use this tool ('used as thresholds in tax calculations, subsidies, and legal proceedings'), but does not explicitly state when not to use it or name specific alternatives among the sibling tools. The context is helpful but lacks explicit exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • 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 describes what the tool returns (deductions with specific fields) and mentions the data source (AEAT Manual Practico Renta 2025), which adds useful context. However, it doesn't disclose potential behavioral traits like rate limits, error conditions, or response format details that would be helpful for an agent.

    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 efficiently structured in three sentences: purpose statement, scope/details, and usage/source information. Every sentence adds value with no wasted words, and key information is front-loaded.

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

    Completeness4/5

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

    For a read-only data retrieval tool with 2 parameters and no output schema, the description provides good context about what data is returned and its source. However, without annotations or output schema, it could benefit from more detail about response structure or potential limitations to be fully 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?

    Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds marginal value by providing example CCAA names and mentioning the optional query parameter can filter by keywords like 'alquiler' or 'hijo', but doesn't significantly enhance the parameter understanding beyond what the schema provides.

    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 verb ('Returns') and resource ('all tax deductions available in a specific Spanish autonomous community'), specifying the scope (17 CCAA + Ceuta + Melilla) and content details (amount/percentage, limits, income requirements, legal source). It distinguishes from siblings by focusing on autonomous community deductions rather than calendars, brackets, or other tax data.

    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 for when to use this tool (to get deductions for a specific CCAA) and includes usage guidance ('Use common names: ...'). However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools, though the distinct purpose implies differentiation.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • 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 describes the return content (deadlines with start/end dates, description, and filer info) and data source, which adds useful context. However, it lacks details on permissions, rate limits, or error handling, leaving some behavioral aspects unclear for a tool with no annotation coverage.

    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 front-loaded with the core purpose, followed by filtering options and return details, all in three efficient sentences. Each sentence adds value without redundancy, making it appropriately sized and well-structured for quick understanding.

    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, no annotations, and no output schema, the description is fairly complete—it explains what the tool does, filtering options, and return content. However, it could improve by detailing the output structure more explicitly or mentioning any limitations, such as year range constraints already in the schema.

    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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds marginal value by mentioning filtering by quarter and tax form, but it does not provide additional semantic details beyond what the schema specifies, such as examples of other tax forms or implications of filtering.

    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 specific action ('Returns'), resource ('Spanish AEAT fiscal calendar deadlines'), and scope ('for a given year'). It distinguishes itself from sibling tools by focusing on calendar deadlines rather than tax rates, brackets, or other tax-related data, making its purpose unambiguous.

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

    Usage Guidelines4/5

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

    The description provides clear context on when to use this tool—to retrieve fiscal calendar deadlines—and mentions filtering options by quarter or tax form. However, it does not explicitly state when not to use it or name specific alternatives among the sibling tools, such as for non-calendar tax information.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • 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. It discloses that the tool returns brackets (read-only behavior) and specifies the source (Ley 35/2006), adding useful context. However, it doesn't mention potential limitations like rate changes, data freshness, or error handling, leaving some behavioral aspects unclear.

    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 front-loaded with the core purpose, followed by specific details on types and scope, and ends with the source. Every sentence adds value without redundancy, making it appropriately sized 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?

    Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is fairly complete. It covers purpose, parameter semantics, and scope, but lacks details on output format (e.g., structure of returned brackets) and potential errors, which could be helpful for an agent.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds marginal value by explaining the semantics of 'general' and 'savings' types and noting the state-level scope, but doesn't provide additional syntax or format details beyond what the schema offers.

    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 verb 'Returns' and the resource 'Spanish IRPF brackets', specifying it's for a given fiscal year. It distinguishes between 'general' and 'savings' types, making the purpose specific and differentiated from siblings like get_ccaa_deductions or get_vat_rates.

    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 on when to use each type ('general' for work/business income, 'savings' for capital gains/dividends) and notes these are STATE-level rates only, implying alternatives might be needed for regional scales. However, it doesn't explicitly name when-not-to-use cases or direct alternatives among siblings.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • 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. It discloses this is a read operation ('Returns information') and specifies the return fields (name, periodicity, etc.) and data source. However, it doesn't mention error handling, rate limits, or authentication needs, which are gaps for a tool with no annotation coverage.

    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 efficiently structured in two sentences: one stating the purpose with examples, and one detailing the return values and source. Every word contributes to understanding, with no wasted text or redundancy.

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

    Completeness4/5

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

    For a simple read tool with one parameter and no output schema, the description is mostly complete. It covers purpose, parameter context, return fields, and data source. The main gap is lack of error handling or behavioral details, but given the tool's simplicity, it's reasonably comprehensive.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already fully documents the single parameter. The description adds marginal value by providing examples ('100' for IRPF, '303' for IVA) that clarify the parameter's meaning, but doesn't go beyond what the schema provides in terms of syntax or constraints.

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

    Purpose5/5

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

    The description clearly states the tool's purpose with specific verb ('Returns information') and resource ('specific Spanish AEAT tax form'). It distinguishes from siblings by focusing on form metadata rather than deductions, rates, or validations. The examples ('100' for IRPF, '303' for IVA) help clarify the scope.

    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 for when to use this tool: when you need information about a specific tax form by its number. It doesn't explicitly mention when not to use it or name alternatives among siblings, but the context is sufficiently clear for a read-only lookup tool.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • 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 return format (casilla number, name, section, and source article) and the data source (AEAT Manual Practico Renta 2025), but lacks details on error handling, rate limits, or authentication needs, which are important for a search 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 front-loaded with the core purpose, followed by usage examples and return details, all in three efficient sentences with zero waste. Each sentence adds necessary context without redundancy.

    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 (search with one parameter), no annotations, and no output schema, the description is fairly complete—it covers purpose, usage, and return format. However, it could improve by detailing error cases or limitations, such as handling of partial matches or case sensitivity.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents the query parameter with examples. The description adds marginal value by reinforcing the same examples but does not provide additional semantics beyond what the schema offers, such as query formatting rules or search behavior nuances.

    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 searches the Modelo 100 (IRPF) casilla map by number or keyword, specifying the exact resource and operation. It distinguishes itself from siblings by focusing on casilla definitions rather than deductions, brackets, or other tax-related data.

    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 on when to use this tool (searching casillas by number or keyword) with examples, but does not explicitly state when not to use it or mention alternatives among the sibling tools, such as get_tax_form_info or search_tax_rules, which might overlap.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • 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 describes what gets searched (tax rules across specified domains) and what gets returned (matching rules with casilla numbers, limits, source articles). However, it doesn't disclose important behavioral traits like whether this is a read-only operation, potential rate limits, authentication requirements, or pagination behavior for large result sets.

    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 efficiently structured in three sentences: the core functionality, usage guidance with examples, and return format with data source. Every sentence adds value without redundancy. It's appropriately sized for a search tool with two parameters and no annotations.

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

    Completeness4/5

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

    For a search tool with 2 parameters, 100% schema coverage, and no output schema, the description provides good contextual completeness. It explains what domains are searched, gives natural language examples, describes the return format, and cites the data source. The main gap is the lack of output schema, so the agent must infer the structure from the description alone, but the description does specify what information will be returned.

    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 schema has 100% description coverage, so the baseline is 3. The description adds meaningful context beyond the schema by providing natural language examples of search terms ('alquiler', 'dividendos', 'maternidad', etc.) and clarifying that searches occur across specific tax domains (work income, rental income, etc.). This helps the agent understand the semantic intent behind the parameters.

    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 specific action ('searches across all IRPF tax rules data') and resource ('tax rules data'), with explicit scope ('for a given keyword or concept'). It distinguishes from sibling tools like 'search_casillas' by covering broader tax domains beyond just casillas, and from 'get_tax_form_info' by focusing on rule search rather than form retrieval.

    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 for when to use this tool: when searching tax rules by natural language terms across multiple tax domains. It gives concrete examples of search terms ('alquiler', 'dividendos', etc.) and mentions the data source. However, it doesn't explicitly state when NOT to use it or name specific alternatives among sibling tools, though the scope differentiation is implied.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/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 effectively describes the tool's behavior: it validates IDs, detects types, returns validity status, and formats values, and cites authoritative sources (Ministerio del Interior, Real Decreto). It does not mention error handling, rate limits, or authentication needs, but for a simple validation tool, this is reasonably comprehensive.

    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 front-loaded with the core purpose, followed by specifics on supported types and return values, and ends with source citations. Every sentence adds value: the first states the action, the second details formats, the third outlines outputs, and the fourth provides authority. It is compact and well-structured without redundancy.

    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 simplicity (one parameter, no output schema, no annotations), the description is fairly complete. It covers purpose, supported ID types, return values, and sources. However, it lacks details on output structure (e.g., what 'formatted value' means) and potential error responses, which could be helpful for an agent. For a low-complexity tool, this is adequate but not exhaustive.

    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 description coverage is 100%, with the parameter 'id' documented as 'Tax ID to validate (NIF, NIE, or CIF)'. The description adds semantic context by detailing the supported formats (e.g., 8 digits + letter for NIF), which clarifies beyond the schema's generic mention. However, it does not explain validation rules or error cases, so it meets the baseline for high schema coverage.

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

    Purpose5/5

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

    The description clearly states the tool's purpose: validating Spanish tax IDs. It specifies the exact types supported (NIF, NIE, CIF) with details on their formats, distinguishing it from sibling tools that retrieve tax data rather than validate IDs. The verb 'validates' and resource 'Spanish tax identification number' are specific and unambiguous.

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

    Usage Guidelines4/5

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

    The description implies usage context by listing supported ID types, helping users know when to apply this tool for validation. However, it does not explicitly state when to use it versus alternatives (e.g., for Spanish tax IDs only) or mention any prerequisites, such as input format requirements beyond the schema. The context is clear but lacks explicit exclusions or comparisons.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/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 effectively describes what the tool returns (multiple VAT rates and surcharges), mentions the source (Ley 37/1992 del IVA) for credibility, and implies it's a read-only operation through 'Returns.' However, it doesn't specify rate limits, error conditions, or response format details that would be helpful for an agent.

    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 efficiently structured in three sentences: purpose, scope, usage guidance, and source. Every sentence adds value without redundancy. It's front-loaded with the core functionality and includes necessary details concisely.

    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 (2 parameters, no output schema, no annotations), the description is mostly complete. It covers purpose, scope, usage guidance, and source. However, without an output schema, it could better describe the return format (e.g., structured rates by category) to help the agent interpret results.

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

    Parameters3/5

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

    Schema description coverage is 100%, providing a strong baseline. The description adds some value by explaining the meaning of territory parameters ('canarias' for IGIC, 'ceuta_melilla' for IPSI), which goes beyond the schema's enum values. However, it doesn't provide additional context about the 'year' parameter or clarify the output structure beyond rate types.

    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 specific action ('Returns Spanish VAT (IVA) rates'), resource ('for a given fiscal year'), and scope ('Includes general, reduced, and super-reduced rates, plus equivalence surcharges'). It distinguishes itself from siblings by focusing specifically on VAT rates rather than deductions, calendars, brackets, or other tax-related data.

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

    Usage Guidelines5/5

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

    The description provides explicit guidance on when to use alternatives: 'Use territory='canarias' for IGIC or territory='ceuta_melilla' for IPSI.' This clearly indicates that this tool is for Spanish VAT rates, with specific territory parameters for different tax systems, helping the agent choose correctly among sibling tools that handle different tax types.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

aeat-mcp MCP server

Copy to your README.md:

Score Badge

aeat-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/iMark21/aeat-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server