Conversor IAE-CNAE
by conversoriaecnae · remote · no sign-in to list tools · v1.0.1 · published by GitHub user conversoriaecnae
The first fiscal MCP server for Spain: IAE/CNAE 2025, AEAT modelos, IRPF/IVA, RETA quota.
19 tools: 18 change things and 1 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things18Claude Code: ask: see these tools
- Only reads1Claude Code: allow: see these tools
10 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http conversor-iae-cnae https://www.conversoriaecnae.es/api/mcp/mcpFindings
Matches of fixed checks, with the text they matched.
- Warndetalle_iae
The server marks "detalle_iae" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
- Warndetalle_cnae
The server marks "detalle_cnae" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
The server marks "detalle_cnae_2009" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
The server marks "calendario_fiscal" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
The server marks "obligaciones_fiscales" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
- Warnmodulos_irpf_iva
The server marks "modulos_irpf_iva" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Show 4 more findingsShow fewer
The server marks "empresas_por_actividad" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
The server marks "subvenciones_por_actividad" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
- Warntarifa_at_ep
The server marks "tarifa_at_ep" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
- Warnconsulta_dgt
The server marks "consulta_dgt" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
19 tools
Changes things 18Claude Code: ask
buscar_codigoBusca códigos IAE/CNAE por descripción (búsqueda semántica).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Busca códigos IAE/CNAE por descripción (búsqueda semántica). Cada resultado incluye la URL canónica de su página (url). Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
buscar_doctrina_teacBusca resoluciones y criterios del Tribunal Económico-Administrativo Central (TEAC) por tema o texto (IVA, IRPF, sociedades, procedimiento…).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Busca resoluciones y criterios del Tribunal Económico-Administrativo Central (TEAC) por tema o texto (IVA, IRPF, sociedades, procedimiento…). Devuelve número, asunto, criterio y enlace. Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
calendario_fiscalModelos AEAT y próximos plazos para un código IAE/CNAE.1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "calendario_fiscal" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Modelos AEAT y próximos plazos para un código IAE/CNAE. Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
consulta_dgtBusca consultas vinculantes de la Dirección General de Tributos (DGT) por texto libre en español (stemming/acentos).1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "consulta_dgt" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Busca consultas vinculantes de la Dirección General de Tributos (DGT) por texto libre en español (stemming/acentos). Gratis: el resumen de la consulta más relevante. Con un plan de pago: la lista completa ordenada por relevancia y el filtro por código IAE. Solo doctrina pública, sin datos personales. Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
consulta_masivaHasta 50 fichas IAE o CNAE en una llamada.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Hasta 50 fichas IAE o CNAE en una llamada. Requiere un plan de pago.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
cuota_irpfCalcula la cuota íntegra ESTATAL del IRPF por suma marginal de tramos a partir de una base liquidable.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Calcula la cuota íntegra ESTATAL del IRPF por suma marginal de tramos a partir de una base liquidable. No incluye escala autonómica ni mínimos. Datos públicos. Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
cuota_retaCalcula el tramo y la cuota mínima estimada de autónomos (RETA) por rendimiento neto.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Calcula el tramo y la cuota mínima estimada de autónomos (RETA) por rendimiento neto. Datos públicos. Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
detalle_cnaeFicha de un código CNAE 2025: título, descripción, categoría, sector y correspondencia con IAE y CNAE 2009, con la URL canónica de la página (url).1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "detalle_cnae" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Ficha de un código CNAE 2025: título, descripción, categoría, sector y correspondencia con IAE y CNAE 2009, con la URL canónica de la página (url). Sin clave. El enriquecimiento con IA (ai_summary, fiscal_signals) requiere un plan de pago.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
detalle_cnae_2009Ficha de un código CNAE 2009 (obsoleto): título, descripción y correspondencia a CNAE 2025, con la URL canónica de la página (url).1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "detalle_cnae_2009" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Ficha de un código CNAE 2009 (obsoleto): título, descripción y correspondencia a CNAE 2025, con la URL canónica de la página (url). Sin clave. El enriquecimiento con IA (ai_summary, fiscal_signals) requiere un plan de pago.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
detalle_iaeFicha de un epígrafe IAE: título, descripción, elegibilidad de módulos y correspondencia IAE↔CNAE 2025, con la URL canónica de la página (url).1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "detalle_iae" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Ficha de un epígrafe IAE: título, descripción, elegibilidad de módulos y correspondencia IAE↔CNAE 2025, con la URL canónica de la página (url). Sin clave. El enriquecimiento con IA (ai_summary, fiscal_signals) requiere un plan de pago. Acepta un código cualificado (p. ej. B831) para desambiguar epígrafes con varias secciones.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
empresas_por_actividadDevuelve estadísticas de constitución de empresas (recuento, capital medio/mediano, tendencia mensual, provincias) para un código CNAE-2025.1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "empresas_por_actividad" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Devuelve estadísticas de constitución de empresas (recuento, capital medio/mediano, tendencia mensual, provincias) para un código CNAE-2025. Datos a nivel de empresa (Ley 37/2007), sin datos personales. Sin clave. La lista completa de constituciones recientes (denominación social) requiere clave Profesional; sin clave se devuelve una muestra de 3.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
escala_irpfTramos de la escala IRPF estatal (general o ahorro), año 2026.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Tramos de la escala IRPF estatal (general o ahorro), año 2026. Datos públicos. Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
gastos_deduciblesGastos deducibles del IRPF del autónomo (todos o por categoría).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Gastos deducibles del IRPF del autónomo (todos o por categoría). Datos públicos. Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
modulos_irpf_ivaRégimen de estimación objetiva (módulos) de un IAE.1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "modulos_irpf_iva" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Régimen de estimación objetiva (módulos) de un IAE. Acepta un slug opcional para desambiguar códigos con varias actividades. Datos públicos. Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
obligaciones_fiscalesModelos AEAT aplicables a un código (confianza, motivo, periodicidad, plazo).1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "obligaciones_fiscales" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Modelos AEAT aplicables a un código (confianza, motivo, periodicidad, plazo). Datos públicos. Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
subvenciones_por_actividadDevuelve subvenciones/ayudas públicas ABIERTAS (convocatorias BDNS) para un código CNAE-2025: total abiertas, cuántas son para autónomos/PYME, y una muestra (título, órgano, ámbito…1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "subvenciones_por_actividad" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Devuelve subvenciones/ayudas públicas ABIERTAS (convocatorias BDNS) para un código CNAE-2025: total abiertas, cuántas son para autónomos/PYME, y una muestra (título, órgano, ámbito, dotación, enlace oficial). Con plan de pago: lista completa y filtro solo_actividad. Solo convocatorias públicas, sin datos personales. Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
tarifa_at_epTarifa de cotización por accidentes de trabajo y enfermedades profesionales (AT/EP) de una actividad CNAE-2025.1 finding
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "tarifa_at_ep" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Tarifa de cotización por accidentes de trabajo y enfermedades profesionales (AT/EP) de una actividad CNAE-2025. Gratis: el tipo total + la nota de aplicación (por cuenta ajena; el autónomo cotiza al 1,30 %). El desglose IT/IMS y la cita normativa (source_anchor) requieren un plan de pago.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
texto_normativaTexto consolidado y VIGENTE de un artículo del BOE (norma, rango, estado, texto legal, fecha de vigencia y enlace).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Texto consolidado y VIGENTE de un artículo del BOE (norma, rango, estado, texto legal, fecha de vigencia y enlace). Sin articulo: devuelve el índice de artículos vigentes de la norma. Solo texto en vigor (no histórico), citable como fuente oficial. Sin clave. Con clave: hechos + texto completo.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
Only reads 1Claude Code: allow
describe_conversorAuto-descripción del servicio: catálogos, RPCs y frescura de datos.No findings
Why it is in this group
- The name "describe_conversor" says "describe": a word for reading.
Description, as the server wrote it Auto-descripción del servicio: catálogos, RPCs y frescura de datos. Sin clave.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http conversor-iae-cnae https://www.conversoriaecnae.es/api/mcp/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__conversor-iae-cnae__describe_conversor"
],
"ask": [
"mcp__conversor-iae-cnae__buscar_codigo",
"mcp__conversor-iae-cnae__detalle_iae",
"mcp__conversor-iae-cnae__detalle_cnae",
"mcp__conversor-iae-cnae__detalle_cnae_2009",
"mcp__conversor-iae-cnae__calendario_fiscal",
"mcp__conversor-iae-cnae__escala_irpf",
"mcp__conversor-iae-cnae__gastos_deducibles",
"mcp__conversor-iae-cnae__obligaciones_fiscales",
"mcp__conversor-iae-cnae__modulos_irpf_iva",
"mcp__conversor-iae-cnae__cuota_reta",
"mcp__conversor-iae-cnae__cuota_irpf",
"mcp__conversor-iae-cnae__buscar_doctrina_teac",
"mcp__conversor-iae-cnae__empresas_por_actividad",
"mcp__conversor-iae-cnae__subvenciones_por_actividad",
"mcp__conversor-iae-cnae__tarifa_at_ep",
"mcp__conversor-iae-cnae__texto_normativa",
"mcp__conversor-iae-cnae__consulta_dgt",
"mcp__conversor-iae-cnae__consulta_masiva"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as conversor-iae-cnae. Review it before you use it.
