Skip to main content
Glama
iMark21

AEAT MCP Server

by iMark21

AEAT MCP Server

Servidor MCP con datos fiscales españoles para asistentes de IA. Toda la información procede exclusivamente de fuentes oficiales (AEAT, BOE).

Conecta este servidor a Claude, ChatGPT, Copilot, Cursor o cualquier agente compatible con MCP y pregúntale sobre la declaración de la renta, deducciones, plazos, IVA, criptomonedas y más.

Aviso legal: Esta herramienta proporciona datos meramente informativos y orientativos. No constituye asesoramiento fiscal. Consulte siempre con un profesional cualificado o verifique en la AEAT.


Si este proyecto te resulta útil, dale una estrella en GitHub. Ayuda a que más gente lo encuentre.


Índice


Related MCP server: Dichiarino

Qué es MCP

Model Context Protocol (MCP) es un estándar abierto que permite a los asistentes de IA (Claude, ChatGPT, Copilot, Cursor...) conectarse a fuentes de datos externas. Este servidor MCP da acceso a datos fiscales españoles oficiales, de forma que tu asistente puede responder preguntas sobre impuestos con información verificada y actualizada.


Instalación

Requisito

No necesitas clonar ni compilar nada. npx descarga y ejecuta el servidor automáticamente.

Claude Desktop

  1. Abre Claude Desktop

  2. Ve a Claude (menú superior) > Settings > Developer > Edit Config

  3. Se abrirá un archivo JSON. Añade "mcpServers" para que quede así:

{
  "mcpServers": {
    "aeat": {
      "command": "npx",
      "args": ["-y", "aeat-mcp"]
    }
  }
}

Si el archivo ya tenía contenido (por ejemplo "preferences"), añade "mcpServers" al mismo nivel, separado por coma:

{
  "preferences": {
    "menuBarEnabled": false
  },
  "mcpServers": {
    "aeat": {
      "command": "npx",
      "args": ["-y", "aeat-mcp"]
    }
  }
}
  1. Guarda el archivo y reinicia Claude Desktop (cierra y abre la app)

  2. En la ventana de chat verás un icono de herramientas (martillo) — al pulsarlo deberían aparecer las 10 herramientas del servidor AEAT

Claude Code

claude mcp add aeat-mcp -- npx -y aeat-mcp

Cursor

  1. Ve a Settings (Cmd+,) > busca MCP

  2. Añade un servidor con comando npx y argumentos -y aeat-mcp

O añade a .cursor/mcp.json:

{
  "mcpServers": {
    "aeat": {
      "command": "npx",
      "args": ["-y", "aeat-mcp"]
    }
  }
}

VS Code (Copilot)

Añade a .vscode/mcp.json:

{
  "servers": {
    "aeat": {
      "command": "npx",
      "args": ["-y", "aeat-mcp"]
    }
  }
}

Windsurf

  1. Ve a Settings > MCP Servers > Add Server

  2. Comando: npx, argumentos: -y aeat-mcp

ChatGPT y otros asistentes

ChatGPT no soporta MCP de forma nativa por ahora. Alternativa:

  • Usa MCP Bridge para conectar servidores MCP con ChatGPT


Ejemplos de uso

Pregúntale a tu asistente de IA:

Obligación de declarar

  • «¿Estoy obligado a declarar si gano 18.000 EUR con dos pagadores?»

Rendimientos del trabajo

  • «Mi indemnización por despido de 45.000 EUR, ¿está exenta?»

  • «Mi empresa me paga el coche, ¿cómo tributa la retribución en especie?»

IRPF y deducciones

  • «¿Cuánto pago de IRPF en Madrid con 50.000 EUR brutos?»

  • «¿Qué deducciones autonómicas hay en Baleares?»

  • «¿Cuánto es la deducción por maternidad?»

  • «¿Es mejor declarar conjunta o individual si mi pareja no trabaja?»

Inversiones

  • «¿Cómo tributan los dividendos de acciones francesas?»

  • «He vendido bitcoins con ganancias, ¿cómo lo declaro?»

  • «He traspasado un fondo de inversión a otro, ¿tributa?»

Alquileres

  • «Tengo un piso alquilado, ¿qué gastos me puedo deducir?»

  • «Alquilo mi piso en Airbnb, ¿cómo tributa?»

Autónomos

  • «¿Qué gastos se puede deducir un autónomo?»

  • «¿Cuándo es el plazo para el Modelo 303?»

Retenciones

  • «¿Por qué mi empresa me retiene un 24% de IRPF?»

  • «Soy profesional autónomo nuevo, ¿qué retención me aplican?»

Patrimonio

  • «¿Tengo que declarar el Impuesto sobre el Patrimonio?»

  • «¿Cómo funciona el Impuesto de Solidaridad de Grandes Fortunas?»

Otros

  • «¿Cómo funciona el rescate de un plan de pensiones?»

  • «¿Es válido este NIF: 12345678Z?»

  • «He presentado mal la declaración, ¿cómo la corrijo?»


Qué incluye

10 herramientas

Herramienta

Descripción

get_vat_rates

Tipos de IVA (21%, 10%, 4%), recargos de equivalencia, IGIC (Canarias) e IPSI (Ceuta y Melilla)

get_irpf_brackets

Tramos del IRPF — escala estatal general y del ahorro

get_personal_minimums

Mínimos personales y familiares (contribuyente, descendientes, ascendientes, discapacidad)

get_indicators

Indicadores económicos: IPREM, SMI, tipo de interés legal del dinero

get_fiscal_calendar

Plazos de la AEAT por año, trimestre o modelo. Indica el próximo vencimiento

get_tax_form_info

Información de 19 modelos fiscales (100, 303, 720...) — nombre, periodicidad, quién declara

validate_tax_id

Valida NIF, NIE y CIF (verificación del dígito de control)

search_tax_rules

Busca en todo el Manual de la Renta — rendimientos, deducciones, exenciones, ganancias

search_casillas

Busca casillas del Modelo 100 por número o palabra clave

get_ccaa_deductions

Deducciones autonómicas por comunidad (17 CCAA + Ceuta y Melilla, unas 350 deducciones)

Manual de la Renta 2025 completo

Todo el contenido del Manual Práctico de Renta 2025 de la AEAT, estructurado como datos consultables:

Capítulo

Contenido

Obligación de declarar

Umbrales del art. 96 LIRPF (22.000 / 15.876 EUR), casos obligatorios, regla transitoria

Rentas exentas

30 exenciones del art. 7 LIRPF — despido (180.000), maternidad, becas, discapacidad, trabajo en el extranjero (60.100), loterías (40.000)

Rendimientos del trabajo

Sueldos, retribuciones en especie, dietas exentas, gastos deducibles, reducciones

Capital inmobiliario

Alquileres: 10 categorías de gastos, reducciones del 50 al 90%, imputación de rentas

Capital mobiliario

Dividendos, intereses, seguros, rentas vitalicias, PIAS, SIALP, régimen transitorio

Actividades económicas

Autónomos: estimación directa normal y simplificada, 14 categorías de gastos, amortización, RETA, pagos fraccionados

Ganancias patrimoniales

8 tipos, método FIFO, traspasos de fondos (exentos), 10 exenciones, norma anti-abuso, compensación de pérdidas

Deducciones estatales

16 deducciones: maternidad, familia numerosa, donativos, vehículo eléctrico, eficiencia energética, Ceuta y Melilla

Deducciones autonómicas

Unas 350 deducciones en las 17 CCAA + Ceuta y Melilla

Tramos autonómicos del IRPF

Escalas autonómicas de las 15 CCAA de régimen común + Ceuta y Melilla

Doble imposición internacional

Art. 80 LIRPF, 92 países con tipos de convenio, proceso de recuperación, ejemplo paso a paso

Criptomonedas

Compraventa, permutas, staking, minería, FIFO, casillas 1802-1806, Modelo 721

Tributación conjunta

2 modalidades de unidad familiar, reducciones de 3.400 / 2.150 EUR, cuándo conviene

Alquiler turístico

Sin reducción del 50-90%, gastos proporcionales, imputación de días vacíos, IVA, DAC7

Planes de pensiones

Rescate: 3 formas, reducción del 40% para aportaciones anteriores a 2007, límites

Pensión compensatoria

Reducción para el pagador (art. 55), anualidades por alimentos a hijos (art. 64, escala separada)

Retenciones

Escala de retención (6 tramos, 19%-47%), mínimos por situación familiar, tipos fijos, exclusiones, regularización, Modelo 145

Procedimiento de corrección

Autoliquidación rectificativa (Ley 13/2023) y complementaria, recargos, pago en dos plazos, prescripción

Patrimonio y Grandes Fortunas

Impuesto sobre el Patrimonio (Ley 19/1991): tarifa, exenciones, CCAA. ITSGF (Modelo 718): tarifa, umbrales

Casillas del Modelo 100

Más de 50 casillas mapeadas con su artículo de la LIRPF

Datos de referencia

Dominio

Años

Fuente oficial

Tipos de IVA, recargos, IGIC, IPSI

2025

Ley 37/1992, RDL 4/2024

Tramos IRPF (estatal + 15 CCAA)

2025

Ley 35/2006, Ley 7/2024, legislación autonómica

Mínimos personales y familiares

2025

Ley 35/2006, arts. 57-61

Indicadores (IPREM, SMI, tipo legal)

2025-2026

Ley 31/2022, RD 87/2025, RD 126/2026

Calendario fiscal

2026

AEAT — Calendario del Contribuyente 2026

Catálogo de modelos

19 modelos

AEAT — sede electrónica

Convenios de doble imposición

92 países

AEAT — Manual de Tributación de No Residentes


Integridad de los datos

Cada dato incluye un campo source con la referencia exacta a la ley, artículo y referencia del BOE.

Fuentes prohibidas: blogs, consultorías, medios de comunicación o cualquier fuente no oficial.

Solo fuentes oficiales:

  • AEAT (Agencia Tributaria)

  • BOE (Boletín Oficial del Estado)

  • Boletines oficiales autonómicos (BOJA, BOCM, DOGC, etc.)

  • Seguridad Social


En números

Herramientas

10

Archivos de datos

28

Líneas de datos fiscales

14.933

Tests automatizados

52

Capítulos del manual

18

Deducciones autonómicas

~350

Países con convenio de doble imposición

92

Tipos de rentas exentas

30

Modelos fiscales catalogados

19

Plazos del calendario fiscal

53


Desarrollo

git clone https://github.com/iMark21/aeat-mcp.git
cd aeat-mcp
npm install
npm run build
npm test

Licencia

MIT — (c) iMark Apps

Available Tools

10 tools
get_ccaa_deductionsA

Returns all tax deductions available in a specific Spanish autonomous community (CCAA). Covers all 17 CCAA + Ceuta + Melilla. Each deduction includes amount/percentage, limits, income requirements, and legal source. Use common names: 'baleares', 'madrid', 'cataluna', 'valencia', etc. Source: AEAT Manual Practico Renta 2025, Parte 2 — Deducciones Autonomicas.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccaaYesAutonomous community name (e.g., 'baleares', 'madrid', 'cataluna', 'valencia', 'andalucia')
queryNoOptional keyword to filter deductions (e.g., 'alquiler', 'hijo', 'vivienda', 'donacion')

TDQS

A4/5.0
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.

get_fiscal_calendarA

Returns Spanish AEAT fiscal calendar deadlines for a given year. Filter by quarter (1-4) to see only that quarter's deadlines. Filter by modelo (e.g., '303', '100') to see deadlines for a specific tax form. Each deadline includes start/end dates, description, and who must file. Source: AEAT Calendario del Contribuyente.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesYear (2024-2026)
quarterNoFilter by quarter (1=Jan-Mar, 2=Apr-Jun, 3=Jul-Sep, 4=Oct-Dec)
modeloNoFilter by tax form number (e.g., '303', '100', '720')

TDQS

A4/5.0
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.

get_indicatorsA

Returns key Spanish economic indicators for a given year: IPREM (public income reference), SMI (minimum wage), legal interest rate, and late payment interest rate. These are used as thresholds in tax calculations, subsidies, and legal proceedings. Source: PGE (national budget) + BOE.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesYear (2024-2026)
indicatorNoFilter by specific indicator (optional, returns all if omitted)

TDQS

A3.9/5.0
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.

get_irpf_bracketsA

Returns Spanish IRPF (income tax) brackets for a given fiscal year. type='general' returns the base general (work/business income) brackets. type='savings' returns the base del ahorro (capital gains/dividends) brackets. These are STATE-level rates only (roughly half of the total rate). The other half comes from the CCAA regional scale. Source: Ley 35/2006, arts. 63 and 66.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesFiscal year (2024-2026)
typeNoBracket type: 'general' (work income) or 'savings' (capital gains)general

TDQS

A4/5.0
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.

get_personal_minimumsA

Returns the personal and family tax-free minimums (minimo personal y familiar) for Spanish IRPF. Includes taxpayer minimum, descendants, ascendants, and disability allowances. These reduce the taxable base. Source: Ley 35/2006, arts. 57-61.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesFiscal year (2024-2026)

TDQS

A3.8/5.0
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.

get_tax_form_infoA

Returns information about a specific Spanish AEAT tax form (modelo). Provide the form number (e.g., '100' for IRPF, '303' for IVA, '720' for foreign assets). Returns: name, periodicity, who must file, description, filing period. Source: AEAT sede electronica.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeloYesTax form number (e.g., '100', '303', '720')

TDQS

A4/5.0
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.

get_vat_ratesA

Returns Spanish VAT (IVA) rates for a given fiscal year. Includes general, reduced, and super-reduced rates, plus equivalence surcharges. Use territory='canarias' for IGIC or territory='ceuta_melilla' for IPSI. Source: Ley 37/1992 del IVA.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesFiscal year (2024-2026)
territoryNoTax territory (default: peninsular Spain)peninsular

TDQS

A4.4/5.0
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.

search_casillasA

Searches the Modelo 100 (IRPF) casilla map by number or keyword. Use a casilla number (e.g., '0001') to get its definition, or a keyword (e.g., 'dividendos', 'alquiler') to find relevant casillas. Returns casilla number, name, section, and source article. Source: AEAT Manual Practico Renta 2025.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesCasilla number (e.g., '0001', '0596') or keyword (e.g., 'dividendos', 'trabajo')

TDQS

A4/5.0
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.

search_tax_rulesA

Searches across all IRPF tax rules data for a given keyword or concept. Searches in: work income, rental income, investment income, capital gains, deductions, and casilla definitions. Use natural terms like 'alquiler', 'dividendos', 'maternidad', 'vehiculo electrico', 'plan pensiones', 'vivienda habitual', 'despido', etc. Returns matching rules with casilla numbers, limits, and source articles. Source: AEAT Manual Practico Renta 2025.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term (e.g., 'alquiler', 'dividendos', 'maternidad', 'despido', 'criptomonedas')
domainNoFilter by tax domain (default: search all)all

TDQS

A4.2/5.0
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.

validate_tax_idA

Validates a Spanish tax identification number. Supports NIF (individuals, 8 digits + letter), NIE (foreign residents, X/Y/Z + 7 digits + letter), and CIF (companies, letter + 7 digits + control). Returns validity, type detected, and formatted value. Source: Ministerio del Interior (NIF/NIE algorithm), Real Decreto 1065/2007 (CIF).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTax ID to validate (NIF, NIE, or CIF)

TDQS

A4.2/5.0
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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 10 tool updatesv0.1.0
    • First observedget_ccaa_deductions
    • First observedget_fiscal_calendar
    • First observedget_indicators
    • First observedget_irpf_brackets
    • First observedget_personal_minimums
    • First observedget_tax_form_info
    • First observedget_vat_rates
    • First observedsearch_casillas
    • First observedsearch_tax_rules
    • First observedvalidate_tax_id

TDQS

A4.3/5.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.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    European business compliance suite for AI agents — 28 tools covering tax ID validation (PT, ES, FR, DE, IT, UK, NL), IBAN verification, EU VAT rates, invoice requirements, e-invoicing rules, payment terms, labor calendar helpers, VAT breakdown calculations and invoice schema validation for 18+ European countries.
    28
    -
  • F
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to help compile the Italian Modello 730 income tax return by providing IRPEF calculations, deduction tools, and tax rule guidance.
    12
    23
    -
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants to answer tax compliance questions (VAT, sales tax, GST) and validate EU VAT numbers in real time via the VIES registry.
    2
    17
    MIT

Appeared in Searches

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