Skip to main content
Glama

🏢 CE3X-MCP-Server (Certificación Energética con IA)

🏗️ Perfil & ConTech

📈 Repositorio & Enlaces

Profesión Role Location Sector Protocol Engine Normativa Language

PyPI Version PyPI Descargas Versión Stars Glama MCP Glama Score Licencia LinkedIn Web

CE3X-MCP-Server MCP server – quality and maintenance score on Glama

Servidor MCP para CE3Xv3.2 para Claude, Gemini y ChatGPT.

Diseñado bajo la perspectiva técnica de un Arquitecto Técnico & BIM Manager para dotar al sector AECO de una herramienta libre, rigurosa y ultrarrápida.


⚡ Enlaces y Accesos Rápidos

🌟 Recurso

🚀 Acción / Enlace

📝 Descripción

Estructura de Visita

Guía 5 Carpetas

Arquitectura canónica para organizar fotos, planos, notas y certificados.

Estudio de Conectores

Conexiones

Mapeo pantalla a pantalla, botón a botón y ensayos de CE3X a conectores de IA.

Documento de Análisis

Análisis CE3X & MCP

Análisis exhaustivo del software, manuales técnicos y arquitectura modular.

Plantilla de Campo

Plantilla de Datos

Formulario estructurado para visitas de campo y dictado por voz.

Guía para tu IA

Instrucciones para la IA

System prompts y protocolo de primer contacto para Claude, Gemini y Cursor.

Historial de Versiones

Changelog

Registro detallado de versiones y mejoras implementadas.

Código de Conducta

Código de Conducta

El manual del buen rollo y convivencia comunitaria.

Guía de Contribución

Cómo Contribuir

Pautas para reportar bugs, proponer ideas y enviar Pull Requests.

Instalador 1-Clic

Instalador Windows

Script autoejecutable para configurar Claude Desktop y Cursor.

Skills para Claude/GPT/Gemini

Guía de Skills

Manual operativo para que cualquier IA razone como un Arquitecto Técnico.

Paquete PyPI Oficial

PyPI

Distribución oficial en el Python Package Index (pip install ce3x-mcp-server).

Glama MCP Registry

Glama.ai

Directorio oficial de servidores MCP e Inspector web interactivo.

Notas de Release v1.0

Release Notes v1.0

Manifiesto de capacidades, paquetes wheel y distribución oficial.

Seguridad

Política de Seguridad

Divulgación responsable y reporte de vulnerabilidades.

Repositorio GitHub

GitHub jmcaamanog

Código fuente, issues y lanzamientos oficiales.


Related MCP server: Fetch MCP Server

👥 Perfiles y Modos de Uso para Cualquier Profesional

Perfil / Modo

Icono

Descripción del Flujo

Entrada Requerida

Entregables Generados

Modo Express (Datos Mínimos)

⚡

Certificación ultrarrápida en segundos interactuando por chat. La IA infiere automáticamente la envolvente y el clima normativo oficial.

Referencia Catastral (o municipio) + año + superficie + climatización básica.

Archivo .cex, XML oficial v3.0 homologado y PDF oficial de 15 páginas.

Modo Técnico Documental

📐

Extracción multimodal asistida por IA. Lee planos arquitectónicos en PDF y fotos de placas de características de equipos térmicos.

Plano de distribución en PDF/imagen + fotos o fichas técnicas de caldera/aerotermia.

Desglose completo de estancias, fachadas, ventanas, potencias y rendimientos estacionales (SCOP/COP).

Modo BIM & Auditoría NextGen

🏗️

Conexión directa con modelos BIM y justificación automática de subvenciones públicas y deducciones IRPF.

Archivo BIM .ifc (Revit, Archicad, CYPE) o proyecto de rehabilitación.

Cubicación BIM con IfcOpenShell, cálculo solar satelital PVGIS, salto a letra A y Dictamen NextGen (RD 853/2021).


🚀 Guía Rápida para Usuarios Noveles (Empieza en 3 Pasos)

IMPORTANT

📥

🎯 ¿No quieres lidiar con consolas, comandos ni archivos JSON?

Sigue estos 3 pasos inmediatos para tener la herramienta funcionando en 1 minuto:

  1. Doble Clic al Instalador: Haz doble clic sobre instalar_en_claude_desktop.bat en la raíz del repositorio. Configurará Claude Desktop y Cursor automáticamente sin tocar nada de código.

  2. Abre Claude Desktop o Cursor: El servidor ce3x aparecerá conectado y listo para usar con sus 27 herramientas oficiales.

  3. Escribe en el chat:

    "Certifica la vivienda de la carpeta ejemplos/visita_vivienda_ejemplo"
    (Verás cómo la IA organiza las fotos, planos y notas, y genera la carpeta CERTIFICADO/ con los archivos oficiales).


📦 ¿Prefieres usar PyPI / uvx directamente sin clonar nada?
Copia estas 4 líneas en tu archivo de configuración de Claude Desktop o Cursor:

"ce3x": {
  "command": "uvx",
  "args": ["ce3x-mcp"]
}

🔌 Configuración Inmediata en Clientes de IA

1. Claude Desktop (claude_desktop_config.json)

Abre tu configuración de Claude Desktop (%APPDATA%\Claude\claude_desktop_config.json en Windows o ~/Library/Application Support/Claude/claude_desktop_config.json en macOS) y añade el paquete oficial de PyPI:

{
  "mcpServers": {
    "ce3x": {
      "command": "uvx",
      "args": [
        "--from",
        "ce3x-mcp-server",
        "ce3x-mcp"
      ]
    }
  }
}

2. Cursor IDE (.cursor/mcp.json o Settings > MCP)

En Cursor, ve a Settings > MCP Servers (o añade en tu archivo .cursor/mcp.json):

{
  "mcpServers": {
    "ce3x": {
      "command": "uvx",
      "args": [
        "--from",
        "ce3x-mcp-server",
        "ce3x-mcp"
      ]
    }
  }
}

3. Antigravity IDE / Gemini (~/.gemini/config/mcp_config.json)

{
  "mcpServers": {
    "ce3x": {
      "command": "uvx",
      "args": [
        "--from",
        "ce3x-mcp-server",
        "ce3x-mcp"
      ]
    }
  }
}

4. Instalación Local para Desarrollo (Opcional con pip)

Si prefieres tener el repositorio clonado y trabajar en local:

git clone https://github.com/jmcaamanog/CE3X-MCP-Server.git
cd CE3X-MCP-Server
python -m venv .venv
.venv\Scripts\activate
pip install -e .

Y en tu archivo de configuración MCP indicas el intérprete local:

{
  "mcpServers": {
    "ce3x": {
      "command": "C:\\ruta\\al\\repositorio\\.venv\\Scripts\\python.exe",
      "args": [
        "-I",
        "-m",
        "ce3x_mcp.server"
      ],
      "env": {
        "PYTHONPATH": "C:\\ruta\\al\\repositorio\\src"
      }
    }
  }
}

🌟 Características Principales (ConTech & AI Cert)

Módulo

Icono

Funcionalidades Destacadas

Ingesta Catastral Automática

🏛️

Conexión directa con la Sede Electrónica del Catastro (OVC) para extraer datos oficiales, año de edificación, superficie y dirección con solo la Referencia Catastral.

Motor Normativo CTE DB-HE

📐

Determinación automática de zonas climáticas CTE (α1 a E1) con corrección por altitud y asignación de transmitancias límite e históricas (NBE-CT-79, CTE 2006/2013/2019).

Exportación a CE3X (.cex)

💾

Generación y lectura nativa de archivos de proyecto .cex para abrir, auditar y recalcular en la interfaz oficial de CE3X v3.2.

XML Oficial de Registro

📑

Creación de archivos XML normalizados conforme a la especificación DatosEnergeticosDelEdificio v3.0, validados al 100% contra el esquema RelaxNG oficial del Ministerio.

Compilación de PDF Homologado

🖨️

Integración con Typst / xml2cert (IETcc-CSIC) para compilar en segundos el certificado oficial completo de 15 páginas con gráficos y anejos.

Cálculo Solar Satelital PVGIS

☀️

Conexión en vivo con la API oficial PVGIS de la Comisión Europea (JRC) para estimar la producción fotovoltaica real (kWh/año) según radiación satelital SARAH-2.

Medidas de Mejora & NextGen

🌿

Propuesta automatizada de paquetes de rehabilitación (SATE, aerotermia, fotovoltaica) con cálculo de ahorro %, nuevo salto de letra, amortización y dictamen para ayudas RD 853/2021 y deducciones IRPF.

Caché Persistente & Telemetría

⚡

Base de datos SQLite local en modo WAL (~/.ce3x_mcp/cache.db) que acelera consultas a Catastro y PVGIS a menos de 5 ms (hasta 230x más rápido) y emite telemetría de progreso en vivo vía FastMCP.Context (ctx.report_progress).


🛠️ Catálogo Completo de 27 Herramientas MCP Disponibles

El servidor implementa el mapeo total y exhaustivo de CE3X v3.2, manuales técnicos y normativas oficiales:

🔍 Verificación Oficial y Conectividad con CE3X v3.2

  1. verificar_conexion_ce3x(directorio_ce3x): Verificación y testeo en vivo de la instalación de CE3X v3.2, comprobando CE3Xv3.2.exe, compilador Typst xml2cert.exe, validador RelaxNG xmlcheck.exe, base de datos de escalas oficiales (Escala/Localidades.xml) para las 32 zonas climáticas, motores climáticos Calculos/BDClima y entornos de ejecución Java.

🏛️ Datos Administrativos, Catastro y Clima

  1. consultar_catastro(referencia_catastral): Ingesta telemática en tiempo real desde la Sede Electrónica de Catastro.

  2. determinar_zona_climatica(provincia, municipio, altitud): Clima oficial de referencia CTE DB-HE con corrección por cota.

  3. registrar_visita_presencial(fecha_visita, pruebas, observaciones): Registro formal in situ para el Anexo IV obligatorio (RD 390/2021 Art. 8).

📐 Envolvente Térmica, BIM y Planos

  1. estimar_envolvente_por_defecto(ano_construccion, zona, superficie): Transmitancias U históricas (Pre-79, NBE-CT-79, CTE).

  2. analizar_modelo_bim_ifc(ifc_path): Cubicación paramétrica de muros, cubiertas y huecos desde modelos IFC (IfcOpenShell).

  3. analizar_plano_arquitectura_pdf(pdf_path): Extracción inteligente de superficies y carpinterías desde planos en PDF.

  4. calcular_puentes_termicos(ano, perimetro_forjado, perimetro_huecos, pilares): Transmitancias lineales psi (W/m·K) según DA DB-HE / 3.

⚙️ Instalaciones, Equipos y Renovables

  1. analizar_ficha_equipo_clima(texto_o_ficha): Lectura de bombas de calor, calderas, potencias y SCOP/COP.

  2. calcular_produccion_fotovoltaica_pvgis(lat, lon, kwp): Simulación satelital en tiempo real con datos de la Comisión Europea.

🧪 Ensayos Oficiales y Contraste de Consumos

  1. registrar_ensayo_estanqueidad_blower_door(volumen, superficie, caudal_50pa): Ensayo Blower Door (UNE-EN ISO 9972) con cálculo de n50 y q50.

  2. contrastar_consumo_facturas_reales(consumo_teorico, electricidad, gas, gasoleo): Contraste de facturación real vs modelo normativo.

  3. registrar_ensayo_flujometria_termica_in_situ(flujo, temp_int, temp_ext, duracion): Ensayo in situ de flujometría térmica (UNE-EN ISO 9869-1) para determinar la transmitancia U real de muros.

💡 Rehabilitación y Subvenciones Públicas

  1. proponer_medidas_mejora_rd390(...): Generación de paquetes de envolvente, equipos e hibridación con fotovoltaica.

  2. emitir_dictamen_subvenciones_nextgen(...): Dictamen técnico oficial con tramos del 40%, 65%, 80% (RD 853/2021) e IRPF.

📐 Envolvente, Sombras y Terciario

  1. calcular_sombras_hueco(orientacion, ancho, alto, retranqueo, voladizo, toldo): Factor solar estacional F_sh para huecos según CTE DB-HE.

  2. calcular_sombras_obstaculo_edificio_enfrente(distancia, altura, orientacion): Ángulo alfa y factor de sombra por edificio enfrente / obstáculo remoto.

  3. calcular_parametros_terciario_local_comercial(tipo, m2, luminarias): Potencia de iluminación W/m², VEEI según DB-HE 3 y caudal RITE.

  4. configurar_perfil_tecnico_colegiado(nombre, nif, titulacion, colegio): Registro persistente de la firma y credenciales del técnico.

📐 Cálculos Normativos Especializados (ISO & CTE)

  1. calcular_transmitancia_ventana_iso10077(ancho, alto, u_vidrio, u_marco, fraccion_marco, intercalario): Cálculo riguroso de transmitancia térmica total $U_w$ según la norma UNE-EN ISO 10077-1 (vidrio $U_g$, marco $U_f$, fracción de hueco y puente térmico perimetral $\Psi_g$).

  2. calcular_demanda_acs_cte_he4(numero_dormitorios, provincia, ocupantes, litros_persona_dia): Demanda reglamentaria obligatoria de ACS a 60 °C ($l/día$ y $kWh/año$) según dotaciones del CTE DB-HE 4 y tabla mensual de temperatura de red provincial.

📂 Gestión Integral de Carpeta de Visita y Entregables

  1. organizar_carpeta_visita(ruta_carpeta): Auto-organizador inteligente en 5 carpetas (INFORMACION, PLANOS, FOTOS, INSTALACIONES, CERTIFICADO).

  2. auditar_carpeta_visita(ruta_carpeta): Escaneo autónomo multimodal de la visita y generación de preguntas quirúrgicas.

  3. certificar_desde_carpeta_visita(ruta_carpeta, ...): Ciclo completo que genera todos los entregables en CERTIFICADO/.

  4. calcular_calificacion_energetica(proyecto): Motor de cálculo simplificado de demandas, consumos y emisiones.

  5. generar_certificado_completo(...): Pipeline integral que emite el .cex nativo, XML oficial v3.0 y PDF de 15 páginas.

⚡ Rendimiento, Persistencia y Telemetría FastMCP

  1. gestionar_cache_ce3x(accion, categoria): Gestión del subsistema de caché persistente SQLite local (~/.ce3x_mcp/cache.db en modo WAL). Acelera las consultas recurrentes a Catastro (OVC) y radiación solar satelital (PVGIS) de cientos de milisegundos a menos de 5 ms (aceleración 230x), previene el bloqueo por tasa de peticiones (rate limiting) y permite auditar estadísticas y purgar registros caducados (TTL de 30 y 90 días).


👨‍💻 Autor y Dirección Técnica

Jose Manuel Caamaño González | Arquitecto Técnico & BIM Manager
Digital Product Lead | ConTech & Digital Twin SaaS | Data Analytics (SQL, Power BI)

Hecho con código y café desde A Coruña. ☕
LinkedIn · Web

Available Tools

27 tools
analizar_ficha_equipo_climaAnalizar Ficha Equipo ClimaA
Read-onlyIdempotent

Analiza la descripción textual o ficha técnica de un equipo térmico (aerotermia, caldera de condensación, bomba de calor, termo eléctrico) y extrae su potencia nominal (kW), rendimiento estacional (SCOP/COP/SEER) y vector energético para CE3X.

Cuándo usar: Invoque esta herramienta a partir de notas técnicas, transcripción de fotos de placas o catálogos del fabricante para parametrizar las instalaciones térmicas en CE3X.

Comportamiento y efectos secundarios: Operación analítica de procesamiento de lenguaje natural y extracción técnica (Read-Only). Sin efectos secundarios en disco.

ParametersJSON Schema
NameRequiredDescriptionDefault
descripcion_o_fichaYesTexto técnico o descripción detallada de la ficha de características del equipo de climatización (ej. 'Bomba de calor aerotérmica Daikin Altherma 8 kW con SCOP 4.2').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description largely restates this ('Read-Only', 'Sin efectos secundarios en disco'). It adds that the operation is NLP-based extraction, which is mildly informative, but discloses nothing about accuracy limits, handling of ambiguous or missing fields, or what happens when no power/performance value is found.

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

Conciseness4/5

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

Purpose is front-loaded in the first sentence, followed by clearly labelled 'Cuándo usar' and behavior sections. Slightly verbose in restating the read-only nature, but each section is short and earns its place.

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

Completeness4/5

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

For a single-input analysis tool with an output schema (so return format needn't be explained), the description covers purpose, trigger context, and safety profile. What is missing is guidance on fallback behavior when extraction fails or values are absent, which matters for an NLP extraction tool.

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

Parameters3/5

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

With a single parameter at 100% schema description coverage, the schema already documents the argument fully, including an example string. The description's added detail about extraction targets concerns outputs rather than the input parameter, so baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb (analiza/extrae) on a specific resource (descripción textual o ficha técnica de un equipo térmico) and enumerates exactly what is extracted (potencia nominal kW, SCOP/COP/SEER, vector energético). It also names the equipment types and the CE3X target, so it is clearly distinguishable from all listed siblings, none of which parse equipment datasheets.

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 'Cuándo usar' section gives concrete triggers: technical notes, photo-of-nameplate transcriptions, manufacturer catalogs, in order to parameterize thermal installations in CE3X. This is clear invocation context, though it names no exclusion or alternative sibling (e.g., when to use the BIM or PDF-plan analyzers instead).

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

analizar_modelo_bim_ifcAnalizar Modelo Bim IfcA
Read-onlyIdempotent

Abre y analiza un modelo BIM IFC mediante IfcOpenShell, extrayendo automáticamente las superficies útiles de estancias (IfcSpace), muros de fachada exterior (IfcWall) y carpinterías exteriores (IfcWindow/IfcDoor) para su integración en CE3X.

Cuándo usar: Invoque esta herramienta cuando disponga del modelo tridimensional BIM del proyecto (Revit, Archicad, Allplan, CYPE) para automatizar la cubicación de la envolvente térmica. Para planos 2D en papel o PDF use 'analizar_plano_arquitectura_pdf'.

Comportamiento y efectos secundarios: Operación de lectura y cubicación geométrica (Read-Only). No altera el archivo IFC original. Emite progreso interactivo a FastMCP.

ParametersJSON Schema
NameRequiredDescriptionDefault
ifc_pathYesRuta absoluta o relativa al archivo de modelo BIM en formato IFC (.ifc, IFC2X3 o IFC4).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety is partly covered; the description adds concrete behavioral context: it does not modify the original IFC file and emits interactive progress to FastMCP. That is real value beyond the structured hints, though it stops short of noting failure modes (corrupt/unsupported IFC) or performance considerations.

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

Conciseness4/5

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

Front-loaded with the core action and organized under clear headers (Cuándo usar, Comportamiento), which aids scanning. Slightly verbose in enumerating the IFC entity types, but every clause carries information useful for routing.

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

Completeness5/5

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

Given a single-parameter tool with full schema coverage, an output schema (so return values need no prose), and annotations covering safety, the description supplies the remaining essentials: what it extracts, when to pick it, and its side-effect profile. Nothing needed to invoke it correctly is missing.

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% and the single ifc_path parameter is fully documented there (absolute/relative path, .ifc/IFC2X3/IFC4). The description adds no format or path-handling detail beyond the schema, so the baseline 3 applies.

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?

States a specific verb (abre y analiza) plus resource (modelo BIM IFC), and enumerates exactly what it extracts (IfcSpace, IfcWall, IfcWindow/IfcDoor) and the downstream purpose (integración en CE3X). An agent can distinguish it from other siblings without opening the schema.

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 'Cuándo usar' block explicitly names the trigger condition (having the 3D BIM model from Revit, Archicad, Allplan, CYPE) and names the alternative for the opposite case ('analizar_plano_arquitectura_pdf' for 2D plans/PDF). When-to-use and when-to-use-something-else are both covered.

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

analizar_plano_arquitectura_pdfAnalizar Plano Arquitectura PdfA
Read-onlyIdempotent

Abre y analiza un plano arquitectónico en PDF vectorial mediante PyMuPDF, extrayendo superficies útiles de estancias (m²) y cuadros de carpintería de huecos y ventanas.

Cuándo usar: Utilice esta herramienta cuando disponga de planos de planta en PDF para extraer estancias, cotas y cuadros de ventanas. Para modelos tridimensionales IFC use 'analizar_modelo_bim_ifc'.

Comportamiento y efectos secundarios: Operación de lectura y parseo vectorial (Read-Only). No altera el archivo PDF de entrada. Emite progreso interactivo a FastMCP.

ParametersJSON Schema
NameRequiredDescriptionDefault
pdf_pathYesRuta absoluta o relativa al archivo PDF que contiene el plano arquitectónico de distribución.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, but the description adds real context: vector parsing via PyMuPDF, explicit statement that the input PDF is not modified, and that interactive progress is emitted to FastMCP. It stops short of covering error/failure behavior for malformed or raster PDFs.

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

Conciseness4/5

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

Front-loaded with purpose, then labeled sections for usage and side effects, so an agent can skim. Slightly verbose with the header scaffolding, but every sentence carries information.

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

Completeness5/5

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

With an output schema present, return values need not be explained, and the description covers purpose, alternatives, input expectations, and side effects. Nothing an agent needs to call this correctly is missing.

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?

Only one parameter (pdf_path) at 100% schema description coverage, so the schema already documents it. The description adds no syntax or format detail beyond the schema. Baseline 3 applies.

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?

States a specific verb (abre y analiza) and resource (plano arquitectónico en PDF vectorial), names the engine (PyMuPDF) and the concrete outputs (superficies útiles en m² y cuadros de carpintería). It clearly differentiates itself from the IFC sibling tool.

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 'Cuándo usar' block gives an explicit condition (planos de planta en PDF) and routes the agent to the alternative ('analizar_modelo_bim_ifc') for 3D IFC models. No inference required.

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

auditar_carpeta_visitaAuditar Carpeta VisitaA
Read-onlyIdempotent

Audita de forma autónoma una carpeta de visita técnica (croquis, notas, planos PDF, fotos y fichas) verificando si se dispone de toda la información preceptiva para certificar y emite un informe de salud documental.

Cuándo usar: Invoque esta herramienta antes de ejecutar 'certificar_desde_carpeta_visita' para detectar omisiones preceptivas (como fotos de instalaciones, planos o referencia catastral).

Comportamiento y efectos secundarios: Operación de inspección y análisis documental (Read-Only). No modifica los archivos existentes. Emite progreso interactivo a FastMCP.

ParametersJSON Schema
NameRequiredDescriptionDefault
ruta_carpetaYesRuta a la carpeta de visita técnica a auditar.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is partly covered. The description confirms no file modification (largely redundant with readOnlyHint) but adds genuinely new behavior: it emits interactive progress to FastMCP and produces a document-health report, which is not derivable from the annotations.

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

Conciseness4/5

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

Front-loaded purpose sentence followed by clearly labeled usage and behavior sections, so an agent can scan it quickly. The header scaffolding is slightly heavier than needed for a single-parameter tool, but every sentence carries relevant content.

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

Completeness5/5

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

An output schema exists, so the description need not explain return values, and it covers purpose, usage, and side effects. For a one-parameter read-only audit tool this is complete enough to invoke correctly.

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?

Only one parameter (ruta_carpeta) with 100% schema description coverage, so the schema fully documents it. The description does not add format, path-convention, or validation details beyond what the schema provides; baseline 3 applies.

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?

States a specific verb (audita) and resource (carpeta de visita), enumerates the inspected content types (croquis, notas, planos PDF, fotos, fichas) and names the concrete outcome (informe de salud documental). It is clearly distinguishable from the sibling certificar_desde_carpeta_visita, which it references by name.

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?

Explicit 'Cuándo usar' section tells the agent to invoke it before certificar_desde_carpeta_visita, and states the purpose of doing so (detecting mandatory omissions like facility photos, plans, cadastral reference). The condition that selects this tool over its closest sibling is spelled out.

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

calcular_calificacion_energeticaCalcular Calificacion EnergeticaA
Read-onlyIdempotent

Calcula la demanda energética estimada, consumo de energía primaria no renovable, emisiones de CO2 y asigna las letras de calificación energética oficiales (A a G) conectando directamente con las escalas y edificios de referencia de CE3X (Escala/Localidades.xml).

Cuándo usar: Utilice esta herramienta para pre-calificar rápidamente un inmueble y verificar la letra energética antes de generar el paquete documental definitivo con 'generar_certificado_completo'.

Comportamiento y efectos secundarios: Operación analítica de solo lectura (Read-Only). Conecta con las bases de datos de CE3X sin modificar archivos ni registrar persistencia.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipo_acsNoTipo o vector energético del ACS: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', o None.
tipologiaNoTipología edificatoria: 'Bloque', 'Unifamiliar' o 'Terciario'.Bloque
zona_climaticaNoZona climática CTE DB-HE (ej. 'C1', 'D3', 'E1').C1
superficie_utilYesSuperficie útil habitable del edificio o vivienda en metros cuadrados (m²).
ano_construccionYesAño de construcción catastral del edificio.
tipo_calefaccionNoTipo o vector energético de la calefacción: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'Biomasa', 'BombaCalor', o None.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds some operational context (it reads CE3X reference databases and registers no persistence), but the central 'read-only, no file modification' claim largely restates the annotation. With annotations carrying the safety burden, this is a modest add rather than rich new disclosure.

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

Conciseness4/5

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

Front-loaded purpose sentence followed by clearly labeled 'Cuándo usar' and 'Comportamiento' sections. Efficient and well-organized, though the behavior block slightly overlaps the annotation and could be tightened.

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 calculation tool with full schema coverage, annotations, and an output schema, the description covers purpose, routing, and side effects adequately. Nothing an agent needs to invoke it correctly appears to be missing, though it says little about required environmental inputs beyond the parameters.

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 all six parameters, including ACS/heating vectors and allowed tipología values. The description adds no syntax, ranges, or defaults beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

States specific outputs (demanda energética, consumo de energía primaria no renovable, emisiones de CO2, letras A-G) and the data source it leverages (CE3X Escala/Localidades.xml). An agent can immediately tell this is the pre-certification energy-rating calculator, distinct from the full-certificate generator named as a sibling.

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 'Cuándo usar' section explicitly names the alternative tool 'generar_certificado_completo' and the condition that selects this one (quick pre-qualification before producing the definitive documentary package). Explicit when-to-use with a named alternative is exactly what a routing agent needs.

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

calcular_demanda_acs_cte_he4Calcular Demanda Acs Cte He4A
Read-onlyIdempotent

Calcula la demanda normativa obligatoria de Agua Caliente Sanitaria (ACS) a 60 °C en litros/día según las tablas oficiales del Código Técnico de la Edificación CTE DB-HE4 y la temperatura de agua fría de red.

Cuándo usar: Invoque esta herramienta para determinar el volumen reglamentario diario de ACS necesario para dimensionar las instalaciones térmicas de producción y cobertura solar en CE3X.

Comportamiento y efectos secundarios: Operación analítica de solo lectura (Read-Only). No altera archivos ni registros locales.

ParametersJSON Schema
NameRequiredDescriptionDefault
provinciaNoProvincia donde se ubica el edificio para fijar la temperatura de agua de red (ej. 'Madrid', 'A Coruña', 'Sevilla').A Coruña
tipo_edificioNoTipología de uso: 'ViviendaUnifamiliar', 'ViviendaBloque', 'Hotel_3_estrellas', 'Hospital', 'Residencia', 'Gimnasio'.ViviendaBloque
numero_personasNoNúmero de personas u ocupantes directos calculados o previstos.
numero_dormitoriosNoNúmero de dormitorios de la vivienda (para residenciales privados).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description largely restates that ('Operación analítica de solo lectura') while adding that no local files or records are altered. It adds the dependency on cold-water network temperature derived from the province, which is useful, but omits any error conditions, table-lookup limits, or fallback behavior.

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

Conciseness4/5

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

The header-based structure (purpose, cuándo usar, comportamiento) is front-loaded and easy to scan. It is slightly padded by restating the read-only nature already covered by annotations, but no sentence is wasted enough to hurt readability.

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?

With an output schema present, the description need not explain return values, and it covers purpose, invocation context, and side-effect profile adequately. The one residual gap is the relationship between the two occupancy parameters (personas vs dormitorios), which is left to 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?

Schema description coverage is 100%, so all four parameters are already documented. The description adds only indirect meaning by mentioning the cold-water network temperature (tied to 'provincia') and the 60 °C output target; it does not clarify when to supply numero_personas versus numero_dormitorios, so it stays at the baseline for high-coverage schemas.

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 states a precise verb and resource ('Calcula la demanda normativa obligatoria de ACS'), pins the output unit and condition (60 °C, litros/día), and names the governing standard (CTE DB-HE4). No sibling tool covers ACS demand, so the agent can identify it unambiguously from the name-plus-description alone.

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 'Cuándo usar' section gives a clear context: determining the regulatory daily ACS volume for sizing thermal production and solar coverage installations in CE3X. It does not name alternatives or exclusions, but no sibling overlaps this calculation, so explicit routing is largely unnecessary.

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

calcular_parametros_terciario_local_comercialCalcular Parametros Terciario Local ComercialA
Read-onlyIdempotent

Estima los parámetros normativos obligatorios de CE3X para edificios de uso Terciario y Locales Comerciales: potencia de iluminación instalada (W/m²), VEEI, caudales de ventilación (RITE IDA) y tasa de ocupación según CTE DB-HE3 y RITE.

Cuándo usar: Invoque esta herramienta obligatoriamente cuando el edificio o inmueble certificado sea de uso terciario o local comercial para obtener los parámetros de iluminación y ventilación que exige CE3X en terciario.

Comportamiento y efectos secundarios: Operación analítica de solo lectura (Read-Only). No modifica archivos ni registros locales.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipo_actividadYesTipo de actividad del local o edificio terciario (ej. 'Comercial', 'Oficinas', 'Docente', 'Restauracion', 'Sanitario').
tipo_luminariaNoTecnología de iluminación principal: 'LED', 'Fluorescencia', 'Halogena', 'Incandescente'.LED
superficie_util_m2YesSuperficie útil del local comercial en metros cuadrados (m²).
nivel_iluminacion_luxNoNivel medio de iluminancia mantenida en lux según exigencias de la actividad (CTE DB-HE3). Por defecto 500 lux.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description's 'operación analítica de solo lectura... no modifica archivos ni registros locales' largely restates them. It does not add non-obvious behavior (assumptions, default fallbacks, error cases) beyond the safety profile.

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

Conciseness4/5

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

Front-loads the purpose, then separates 'Cuándo usar' and 'Comportamiento' into labeled sections, which makes scanning easy. Minor redundancy: the read-only statement repeats the annotations and the terciario/comercial scope is restated.

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?

With an output schema present, return values need not be explained, and the description covers purpose, trigger and safety, which is sufficient for this four-parameter calculator. Only the parameter-to-normative-table mapping is left implicit.

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 every parameter is already documented in the input schema. The description adds domain framing but no parameter-level semantics (e.g., how tipo_actividad maps to occupancy/VEEI tables) beyond what the schema provides. Baseline 3 applies.

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?

States a specific verb ('Estima') and a precisely scoped resource (parámetros normativos obligatorios de CE3X para terciario y locales comerciales), enumerating the concrete outputs (potencia de iluminación, VEEI, caudales RITE IDA, tasa de ocupación). No sibling tool computes normative tertiary parameters, and the scope boundary against residential use makes it distinguishable.

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?

Gives an explicit trigger condition ('Invoque esta herramienta obligatoriamente cuando el edificio... sea de uso terciario o local comercial') and implicitly excludes non-tertiary cases. It stops short of naming an alternative tool for residential/in other cases, so it is a clear context without full routing.

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

calcular_produccion_fotovoltaica_pvgisCalcular Produccion Fotovoltaica PvgisA
Read-onlyIdempotent

Calcula con precisión científica la producción de energía solar fotovoltaica (kWh/año y mensual) conectando con la API oficial PVGIS de la Comisión Europea (JRC) con radiación satelital SARAH-2.

Cuándo usar: Utilice esta herramienta al evaluar la integración de energía solar fotovoltaica para autoconsumo como medida de mejora o justificación CTE DB-HE5.

Comportamiento y efectos secundarios: Operación de consulta telemática a la API de la Comisión Europea con caché persistente SQLite local (TTL de 90 días). Read-Only.

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudYesLatitud geográfica en grados decimales (ej. 43.3623 para A Coruña, 40.4168 para Madrid).
longitudYesLongitud geográfica en grados decimales (ej. -8.4115 para A Coruña, -3.7038 para Madrid).
azimut_gradosNoOrientación o azimut de los paneles: 0° Sur, 90° Oeste, -90° Este, 180° Norte. Por defecto 0.0° (Sur).
potencia_pico_kwNoPotencia pico de la instalación solar fotovoltaica en kilovatios (kWp). Por defecto 3.0 kWp.
inclinacion_gradosNoInclinación de los módulos solares respecto a la horizontal en grados (0 a 90°). Por defecto 35.0°.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, but the description adds useful context beyond them: it is a telematic query to the European Commission's PVGIS API, uses SARAH-2 satellite radiation, and maintains a local SQLite cache with a 90-day TTL. It does not cover rate limits or failure modes, but the behavioral picture is substantially richer.

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

Conciseness4/5

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

The description is well structured with front-loaded purpose followed by 'Cuándo usar' and 'Comportamiento' sections. It is efficient overall, though 'con precisión científica' is mildly promotional and the final 'Read-Only' repeats an annotation already visible elsewhere.

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 full schema coverage, existing annotations, and an output schema, the description supplies enough context: what is calculated, when to use it, and the external API/caching behavior. It is nearly complete, though it could mention practical limits or error handling for an API-dependent tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents latitude, longitude, azimuth, peak power, and tilt with examples and defaults. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose5/5

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

States a specific verb (Calcula), resource (producción de energía solar fotovoltaica), output units (kWh/año y mensual), and method (API PVGIS / SARAH-2). This clearly distinguishes it from sibling tools like calcular_calificacion_energetica or proponer_medidas_mejora_rd390.

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 'Cuándo usar' section gives a clear context: evaluating solar PV integration for self-consumption as an improvement measure or CTE DB-HE5 justification. It does not name alternatives or explicit when-not-to-use cases, so it stops short of a 5.

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

calcular_puentes_termicosCalcular Puentes TermicosA
Read-onlyIdempotent

Calcula las transmitancias térmicas lineales (psi en W/m·K) y la pérdida térmica global por puentes térmicos integrados según el Documento de Apoyo DA DB-HE / 3 del Código Técnico de la Edificación.

Cuándo usar: Invoque esta herramienta para cuantificar el impacto térmico de frentes de forjado, contornos de hueco y pilares en fachada en lugar de usar valores globales estimados.

Comportamiento y efectos secundarios: Operación analítica de solo lectura (Read-Only). Sin efectos secundarios en disco.

ParametersJSON Schema
NameRequiredDescriptionDefault
ano_construccionYesAño de construcción del edificio para asignar la transmitancia lineal de referencia según normativa histórica aplicable.
longitud_pilares_mNoLongitud total de pilares integrados en fachada exterior en metros (m).
perimetro_huecos_mNoPerímetro total de contornos de huecos y ventanas en metros (m).
perimetro_forjado_mNoLongitud total de frentes de forjado en fachada en metros (m).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description repeats this ('solo lectura, sin efectos secundarios'). The normative citation adds context about the calculation basis, which is somewhat useful. However, there is no disclosure of assumptions like default zero for optional lengths, or that year drives the reference value selection—these behavioral nuances are left implicit.

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

Conciseness4/5

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

Front-loaded with the core purpose and normative reference, then clearly sectioned into 'Cuándo usar' and 'Comportamiento.' Every sentence serves a function. Slightly redundant to restate read-only given annotations, but not verbose.

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?

An output schema exists, so no need to describe return values. The description covers purpose, usage, and read-only nature, sufficient to invoke correctly. Minor gap: doesn't warn that optional bridge lengths default to 0, which an agent might miss.

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

Parameters3/5

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

Schema coverage is 100%, so all four parameters are already documented with descriptions and units. The description adds no parameter-level information beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.

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?

States a specific verb (calcula) and resource (transmitancias térmicas lineales psi and pérdida térmica global por puentes térmicos), cites the exact normative reference (DA DB-HE/3 CTE). An agent can distinguish this from siblings like calcular_transmitancia_ventana_iso10077 which handles windows, not linear thermal bridges.

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?

Explicit 'Cuándo usar' section tells the agent to invoke this instead of estimated global values, and names the concrete elements it applies to (frentes de forjado, contornos de hueco, pilares en fachada). The alternative (valores globales estimados) is named, satisfying when-instead-of guidance.

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

calcular_sombras_huecoCalcular Sombras HuecoA
Read-onlyIdempotent

Calcula los factores reductores de sombra estacionales (verano e invierno) y el factor solar modificado Fs para huecos acristalados debidos a elementos de sombra propios (voladizos, retranqueos y aleros) según CTE DB-HE.

Cuándo usar: Utilice esta herramienta para calcular la protección solar propia de las ventanas del edificio. Para obstáculos remotos frente al edificio (edificios de enfrente, árboles lejanos), use 'calcular_sombras_obstaculo_edificio_enfrente'.

Comportamiento y efectos secundarios: Operación analítica de solo lectura (Read-Only). No modifica archivos ni registros locales.

ParametersJSON Schema
NameRequiredDescriptionDefault
orientacionYesOrientación del hueco: 'Sur', 'Norte', 'Este', 'Oeste', 'Sureste', 'Suroeste', 'Noreste', 'Noroeste'.
tiene_toldoNoIndica si el hueco dispone de toldo u obstáculo móvil exterior de protección solar.
alto_hueco_mYesAlto de la ventana en metros (m).
retranqueo_mNoProfundidad del retranqueo de la ventana respecto al plano exterior de fachada en metros (m).
ancho_hueco_mYesAncho de la ventana en metros (m).
vuelo_voladizo_mNoSaliente o vuelo del voladizo o alero superior en metros (m).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the read-only nature is covered structurally. The 'Comportamiento' section largely restates this ('operación de solo lectura, no modifica archivos'), adding only the minor detail that no local records are affected. No additional behavioral traits (idempotency, determinism, rate limits) are disclosed beyond the annotations.

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

Conciseness4/5

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

The description is front-loaded with the core computation and organized into labeled sections ('Cuándo usar', 'Comportamiento'), so each block is easy to scan. There is mild redundancy in restating read-only status already in the annotations, keeping it just short of optimal.

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

Completeness5/5

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

With an output schema present, the description need not explain return values, and annotations carry the safety profile. The purpose, scope, standard, and sibling routing are all covered, so an agent has everything needed to invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by tying the domain concepts (voladizos, retranqueos, aleros) directly to the shading computation, which maps the agent to the vuelo_voladizo_m, retranqueo_m and related parameters, giving slightly more than the schema alone.

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?

States a specific verb (Calcula) and precise resource: factores reductores de sombra estacionales (verano/invierno) and factor solar modificado Fs para huecos acristalados. It names the exact scope (elementos de sombra propios: voladizos, retranqueos, aleros) and the governing standard (CTE DB-HE), making it easy to distinguish from the sibling tool.

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?

A dedicated 'Cuándo usar' section tells the agent exactly when to use this tool (protección solar propia de las ventanas) and names the explicit alternative for the contrasting case ('calcular_sombras_obstaculo_edificio_enfrente' for remote obstacles). Both the when and when-not conditions are stated.

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

calcular_sombras_obstaculo_edificio_enfrenteCalcular Sombras Obstaculo Edificio EnfrenteA
Read-onlyIdempotent

Calcula el ángulo de elevación solar alfa (grados) y la tabla de perfil de sombras producida por un obstáculo remoto continuo (edificio colindante o frente a fachada) según el Anejo E del CTE DB-HE.

Cuándo usar: Utilice esta herramienta para modelar sombras arrojadas por construcciones vecinas o accidentes topográficos. Para elementos propios del hueco (voladizos, retranqueos, aleros), use 'calcular_sombras_hueco'.

Comportamiento y efectos secundarios: Operación analítica de cálculo geométrico solar (Read-Only). No escribe archivos ni altera estado.

ParametersJSON Schema
NameRequiredDescriptionDefault
altura_edificio_mYesAltura del edificio u obstáculo de enfrente en metros (m) medida por encima del centro del hueco evaluado.
orientacion_fachadaYesOrientación de la fachada que recibe la sombra: 'Sur', 'Norte', 'Este', 'Oeste', 'Sureste', 'Suroeste', 'Noreste', 'Noroeste'.
distancia_edificio_mYesDistancia horizontal en metros (m) desde la fachada del edificio evaluado hasta el obstáculo o edificio de enfrente.
descripcion_obstaculoNoDescripción del obstáculo remoto (ej. 'Edificio de 6 plantas enfrente').Edificio colindante

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description's '(Read-Only). No escribe archivos ni altera estado' largely restates this rather than adding new traits. It does add useful context by naming the governing standard (Anejo E del CTE DB-HE) and the analytical/geometric nature of the operation, but does not disclose anything beyond annotation plus method reference.

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?

Front-loaded with the core purpose, then structured into labeled 'Cuándo usar' and 'Comportamiento' blocks. Every sentence is informative and appropriately sized for a 4-parameter analytical tool.

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

Completeness5/5

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

With an output schema present, the description needn't explain return values, and it covers purpose, routing to the sibling, and behavioral profile. Combined with full schema coverage and annotations, an agent has everything needed to select and invoke it correctly.

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 all four parameters (units, orientation values, defaults). The description adds no parameter-level syntax or format detail beyond what the schema provides, so the baseline 3 applies.

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?

Names a specific verb (calcula) and precise outputs: ángulo de elevación solar alfa y tabla de perfil de sombras de un obstáculo remoto. It explicitly scopes the tool to neighbor buildings/topography and distinguishes itself from the sibling calcular_sombras_hueco.

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?

Contains an explicit 'Cuándo usar' section stating the use case (sombras de construcciones vecinas o accidentes topográficos) and naming the alternative 'calcular_sombras_hueco' for opening-level elements (voladizos, retranqueos, aleros). Nothing is left to inference.

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

calcular_transmitancia_ventana_iso10077Calcular Transmitancia Ventana Iso10077A
Read-onlyIdempotent

Calcula la transmitancia térmica total Uw (W/m²K) de una ventana conforme a la norma UNE-EN ISO 10077-1, ponderando las áreas de vidrio y marco e incorporando el efecto del intercalario térmico.

Cuándo usar: Utilice esta herramienta para calcular con precisión la transmitancia de huecos acristalados a partir de los datos técnicos de marco y vidrio antes de introducirlos en la envolvente térmica de CE3X.

Comportamiento y efectos secundarios: Operación analítica de solo lectura (Read-Only). No altera archivos ni estado local.

ParametersJSON Schema
NameRequiredDescriptionDefault
alto_mYesAlto del hueco de ventana en metros (m).
ancho_mYesAncho del hueco de ventana en metros (m).
u_marco_w_m2kYesTransmitancia térmica del marco Uf en W/m²K (ej. 5.7 para metálico sin RPT, 3.2 con RPT, 2.2 para madera, 1.8 para PVC).
fraccion_marcoNoFracción de superficie ocupada por el marco respecto al hueco total (0.10 a 0.50). Por defecto 0.20 (20%).
u_vidrio_w_m2kYesTransmitancia térmica del vidrio Ug en W/m²K (ej. 5.7 para simple, 2.8 para doble estándar, 1.1 para bajo emisivo).
tipo_intercalarioNoTipo de espaciador o intercalario del doble acristalamiento: 'aluminio' o 'calido_warm_edge'.aluminio

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description essentially restates this ('Operación analítica de solo lectura... No altera archivos ni estado local') rather than adding new behavioral context. It discloses no validation limits (e.g. the 0.05–0.60 fraccion_marco bounds), error behavior, or robustness notes beyond what the annotations cover.

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

Conciseness4/5

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

Structure is front-loaded and scannable with labeled sections (Cuándo usar, Comportamiento y efectos secundarios). The effects sentence largely duplicates the annotations, so it is slightly less than maximal economy, but overall it is tight.

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 pure calculation tool with a 6-parameter schema (4 required) and an output schema, the definition adequately conveys purpose, timing, and non-mutating nature; return values correctly need not be explained. It could add a note on valid input ranges or edge cases 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 fully documents all six parameters (units, example values, defaults, range). The description adds conceptual framing of area weighting and the intercalario effect but no syntax or usage detail beyond the schema, so the baseline 3 applies.

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?

States a specific verb (calcular) and resource (transmitancia térmica total Uw de una ventana) and grounds it in a named standard (UNE-EN ISO 10077-1), plus the method (weighting glass/marco areas, intercalario effect). It is clearly distinguishable from siblings like calcular_puentes_termicos or calcular_sombras_hueco.

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 'Cuándo usar' section gives a concrete context: use it to obtain accurate glazing transmittance from frame/glass data before entering it into the CE3X thermal envelope. This is a clear usage context, but it names no explicit alternative tool or exclusion (e.g. when NOT to use it vs. other envelope calculators).

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

certificar_desde_carpeta_visitaCertificar Desde Carpeta VisitaA

Certifica de forma automática el inmueble a partir de la carpeta de visita procesando planos PDF, Catastro y notas de campo para generar los archivos oficiales (.cex, .xml y .pdf) dentro de la carpeta 05_ENTREGABLES.

Cuándo usar: Utilice esta herramienta cuando disponga de una carpeta de visita organizada para ejecutar el flujo integral end-to-end de certificación en un solo paso.

Comportamiento y efectos secundarios: Operación integral con escritura en disco (Write). Crea la subcarpeta 'CERTIFICADO' dentro de '05_ENTREGABLES' con los documentos oficiales. Emite progreso interactivo a FastMCP.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipo_acsNoVector de ACS: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', etc.
ruta_carpetaYesRuta a la carpeta que contiene los archivos de la visita técnica.
nombre_edificioNoNombre o denominación del edificio.
tipo_calefaccionNoVector de calefacción: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', etc.
orientacion_principalNoOrientación predominante de la fachada principal: 'Sur', 'Norte', 'Este', 'Oeste', etc.Sur

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Goes beyond the annotations (readOnlyHint=false, destructiveHint=false) by disclosing the write behavior: it creates a 'CERTIFICADO' subfolder inside '05_ENTREGABLES' and emits interactive progress to FastMCP. Useful side-effect context, though it does not state overwrite/reversibility or auth requirements.

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

Conciseness4/5

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

Front-loads the core action in the first sentence, then organizes the remainder under 'Cuándo usar' and 'Comportamiento y efectos secundarios' headers. Efficient, though the opening sentence is dense and slightly redundant with the section headers.

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?

Even with an output schema present, the description usefully names the generated files, their destination folder, and the side effects, and it clarifies the required input state. It omits prerequisites such as CE3X connectivity checks, which is the only notable gap for a complex end-to-end tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters. The description adds only high-level context (folder contains PDFs, Catastro data, field notes) and no per-parameter semantics beyond that. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb (certifica), the resource (el inmueble), the source (carpeta de visita with planos PDF, Catastro, notas de campo) and the concrete outputs (.cex, .xml, .pdf in 05_ENTREGABLES). This clearly distinguishes it from siblings like organizar_carpeta_visita and auditar_carpeta_visita by framing it as the end-to-end certification run.

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 'Cuándo usar' section gives an explicit condition: use it when an organized visit folder is available to run the whole certification flow in one step. This implicitly positions organizar_carpeta_visita as the prerequisite, but no alternative tools or exclusions are named.

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

configurar_perfil_tecnico_colegiadoConfigurar Perfil Tecnico ColegiadoA

Configura y guarda de forma persistente los datos colegiales y profesionales del técnico certificador (nombre, NIF, titulación, colegio, número de colegiado) para auto-cumplimentar todos los certificados generados.

Cuándo usar: Invoque esta herramienta una sola vez o cuando cambien los datos profesionales del técnico para que se inyecten automáticamente en los archivos .cex, .xml y .pdf.

Comportamiento y efectos secundarios: Operación de configuración persistente (Write). Guarda los datos en el archivo de perfil local del usuario.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoCorreo electrónico profesional de contacto.
telefonoNoTeléfono de contacto profesional.
domicilioNoDomicilio o dirección profesional del técnico.
municipioNoMunicipio del domicilio profesional.
provinciaNoProvincia del domicilio profesional.
titulacionYesTitulación académica habilitante (ej. 'Arquitecto Técnico', 'Ingeniero de Edificación', 'Arquitecto').
nif_tecnicoYesNIF o NIE del técnico certificador.
razon_socialNoRazón social del estudio o empresa técnica (opcional).
codigo_postalNoCódigo postal profesional de 5 dígitos.
nombre_tecnicoYesNombre y apellidos completos del técnico certificador competente.
numero_colegiadoYesNúmero de colegiado profesional.
comunidad_autonomaNoComunidad Autónoma donde ejerce habitualmente la actividad.Galicia
colegio_profesionalYesNombre oficial del Colegio Profesional (ej. 'Colegio Oficial de la Arquitectura Técnica de A Coruña').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare write (readOnlyHint=false, destructiveHint=false). The description adds real behavioral context: it is persistent, it writes to a local user profile file, and the data is auto-injected into .cex/.xml/.pdf outputs. It does not clarify overwrite-vs-merge semantics or auth/permission requirements, keeping it below 5.

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

Conciseness4/5

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

Well front-loaded and organized into purpose, 'Cuándo usar', and 'Comportamiento' sections. Slightly redundant in repeating the persistent-write notion in both the opening and the side-effects block, but otherwise efficient.

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?

With an output schema present, the description need not explain return values, and annotations cover the safety profile. Purpose, timing, and side effects are all covered; only edge-case behavior (overwrite semantics, validation failures) is unaddressed.

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% across 13 parameters, so the schema already carries the semantic load. The description only restates the 5 required fields (nombre, NIF, titulación, colegio, número), adding nothing beyond what the schema documents; the baseline of 3 applies.

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?

States a specific verb ('Configura y guarda') and a highly specific resource ('datos colegiales y profesionales del técnico certificador'), then enumerates the key fields. This is unmistakably distinct from the analysis/certificate-generation siblings, so an agent can identify it without opening the schema.

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 'Cuándo usar' block gives explicit triggering guidance: invoke once, or when professional data changes. It lacks an explicit 'when-not'/alternative statement, but no sibling competes for this function, so the practical ambiguity is low.

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

consultar_catastroConsultar CatastroA
Read-onlyIdempotent

Consulta telemática a la Sede Electrónica del Catastro de España para obtener dirección oficial, municipio, provincia, año de construcción y superficie catastral.

Cuándo usar: Invoque esta herramienta como primer paso ante cualquier inmueble en territorio español común cuando disponga de la Referencia Catastral para auto-rellenar los datos administrativos y de partida del certificado.

Comportamiento y efectos secundarios: Operación de consulta externa telemática (Read-Only) con caché persistente SQLite local (TTL de 30 días). No altera archivos ni estado local.

ParametersJSON Schema
NameRequiredDescriptionDefault
referencia_catastralYesReferencia Catastral oficial del inmueble (14 o 20 caracteres alfanuméricos, ej. '8014008NJ4081S0003RF').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover readOnlyHint and idempotentHint, so the description adds value with new context: it is an external telematic query with a persistent local SQLite cache (30-day TTL) and it does not alter local files or state. The cache TTL is genuinely useful because it warns the agent results may be up to a month old, though it says nothing about network failures or auth needs.

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?

Front-loads the purpose, then uses labeled sections for usage and side effects. Every sentence carries distinct information – no repetition of the schema or annotations, no filler.

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

Completeness5/5

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

An output schema exists, so return values need not be described. The description covers purpose, when-to-use, ordering in the workflow, and behavioral side effects, which is complete for a single-parameter read-only query tool.

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

Parameters3/5

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

With a single parameter at 100% schema description coverage, the schema already documents the expected format (14 or 20 alphanumeric characters) with an example. The description adds no format or validation detail beyond that, so the baseline 3 is correct.

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?

States a specific verb+resource (consulta telemática a la Sede Electrónica del Catastro de España) and enumerates exactly what it returns (dirección oficial, municipio, provincia, año de construcción, superficie catastral). An agent can distinguish this from sibling tools like determinar_zona_climatica without opening any schema.

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 'Cuándo usar' section gives an explicit trigger (first step for any property in common Spanish territory) and a prerequisite condition (when the Referencia Catastral is available), plus the downstream purpose (auto-fill administrative data for the certificate). Nothing is left to inference.

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

contrastar_consumo_facturas_realesContrastar Consumo Facturas RealesA
Read-onlyIdempotent

Compara el consumo real de energía de los últimos 12 meses (electricidad, gas natural o gasóleo) obtenido de facturas con el consumo teórico calculado por CE3X para evaluar la fiabilidad de la calificación y detectar anomalías de uso.

Cuándo usar: Invoque esta herramienta para contrastar la calificación teórica con la realidad del usuario conforme al procedimiento de validación y contraste con facturas del RD 390/2021.

Comportamiento y efectos secundarios: Operación analítica de solo lectura (Read-Only). No altera archivos.

ParametersJSON Schema
NameRequiredDescriptionDefault
gasoleo_real_litrosNoConsumo real de gasóleo de calefacción de los últimos 12 meses en litros.
gas_natural_real_kwhNoConsumo real de gas natural de los últimos 12 meses en kWh.
electricidad_real_kwhNoConsumo eléctrico real facturado de los últimos 12 meses en kWh.
consumo_teorico_kwh_anoYesConsumo teórico anual total calculado por CE3X en kWh/año.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds 'Operación analítica de solo lectura' and 'No altera archivos,' which mostly restates the read-only annotation rather than adding new behavioral context such as authorization needs or output characteristics.

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

Conciseness4/5

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

The description is front-loaded with purpose and organized into clear sections for usage and behavior. It is efficient overall, though the behavior section largely repeats the read-only annotation and could be trimmed.

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 output schema exists and annotations cover the safety profile, the description provides sufficient context for calling the tool: purpose, regulatory context, and read-only behavior. It does not need to explain return values, but could be slightly richer about what kinds of anomalies or outputs to expect.

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 all four parameters are already documented in the input schema. The description reinforces the energy types and 12-month period, but does not add syntax, format, or interaction details beyond the schema.

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

Purpose5/5

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

States a specific verb (compara), resource (consumo real de energía de facturas vs consumo teórico CE3X), and scope (últimos 12 meses, electricidad/gas natural/gasóleo). It implicitly distinguishes itself from sibling calculation tools like calcular_calificacion_energetica by focusing on validation and anomaly detection rather than producing the rating itself.

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?

Includes an explicit 'Cuándo usar' section tying invocation to the RD 390/2021 validation and invoice contrast procedure. It gives clear context but does not state when not to use it or name alternative sibling tools for related tasks.

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

determinar_zona_climaticaDeterminar Zona ClimaticaA
Read-onlyIdempotent

Determina la zona climática CTE DB-HE oficial (ej. C1, D3, A3, E1) en función de la provincia, municipio y altitud sobre el nivel del mar según las tablas oficiales del Código Técnico de la Edificación (Apéndice B).

Cuándo usar: Invoque esta herramienta de forma obligatoria antes de estimar transmitancias o calcular la calificación energética para fijar la severidad climática de invierno y verano del emplazamiento.

Comportamiento y efectos secundarios: Operación analítica de solo lectura (Read-Only). No requiere conexión con CE3X ni modifica archivos en disco.

ParametersJSON Schema
NameRequiredDescriptionDefault
altitud_mNoAltitud del inmueble sobre el nivel del mar en metros (m). Por defecto 0.0.
municipioYesNombre oficial del municipio correspondiente a la provincia.
provinciaYesNombre oficial de la provincia española (ej. 'Madrid', 'A Coruña', 'Sevilla', 'Barcelona').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds genuinely new context: it is analytical, requires no CE3X connection, and does not write to disk, which tells the agent it can be called standalone.

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

Conciseness4/5

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

Front-loaded with the purpose and then cleanly sectioned into usage and side effects; every sentence earns its place. The header labels add slight overhead but improve scanability for an agent.

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

Completeness5/5

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

A simple three-parameter lookup with full schema coverage and an output schema that already documents the returned climate zone. The description covers purpose, timing, and side effects, so nothing needed to call it correctly is missing.

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 provincia, municipio, and altitud_m. The description only restates that these three inputs drive the lookup, adding no syntax, format, or lookup-behavior detail beyond the schema. Baseline 3 applies.

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?

States a specific verb (Determina), the exact resource (zona climática CTE DB-HE oficial), and gives concrete example outputs (C1, D3, A3, E1). It also pins the authority (Apéndice B del CTE), so an agent can distinguish it from the many other calculation siblings without opening the schema.

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 'Cuándo usar' block is explicit: invoke mandatorily before estimating transmittances or computing the energy rating, to fix winter/summer climate severity. Clear context, though no alternatives or when-not conditions are named.

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

emitir_dictamen_subvenciones_nextgenEmitir Dictamen Subvenciones NextgenA
Read-onlyIdempotent

Genera el informe técnico justificativo y dictamen oficial de cumplimiento para las subvenciones Next Generation EU (RD 853/2021) y deducciones fiscales en IRPF (40%/60%).

Cuándo usar: Utilice esta herramienta para justificar el cumplimiento del requisito normativo de reducción del 30% en consumo de energía primaria no renovable para tramitar ayudas públicas.

Comportamiento y efectos secundarios: Operación analítica de evaluación económica y normativa (Read-Only). No altera archivos.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipo_acsNoSistema de ACS actual.EfectoJoule
paquete_mejoraNoPaquete de mejora a evaluar: 1 (Envolvente SATE), 2 (Aerotermia) o 3 (Integral con Solar FV).
zona_climaticaNoZona climática CTE DB-HE.C1
superficie_utilYesSuperficie útil habitable en m².
ano_construccionYesAño de construcción del inmueble.
tipo_calefaccionNoSistema de calefacción actual.EfectoJoule

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description reinforces this ('operación analítica... Read-Only. No altera archivos') and adds that it performs economic and normative evaluation producing a report. It does not contradict annotations and adds mild context, but repeats the read-only fact the annotation already carries.

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?

Front-loaded purpose followed by clearly labeled 'Cuándo usar' and 'Comportamiento y efectos secundarios' sections. Every sentence earns its place with no redundancy or filler.

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?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. The description covers purpose and usage adequately; only sibling differentiation and richer behavioral detail are missing, which are minor given the structured data available.

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 all six parameters (tipo_acs, paquete_mejora, zona_climatica, superficie_util, ano_construccion, tipo_calefaccion) are documented in the schema itself. The description adds no syntax or format detail beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (Genera) and concrete deliverables (informe técnico justificativo y dictamen oficial de cumplimiento) plus the regulatory scope (RD 853/2021, IRPF 40%/60%). This is far more specific than a tautology, though it does not explicitly contrast itself with similar siblings such as generar_certificado_completo.

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 'Cuándo usar' section gives an explicit trigger: justifying compliance with the 30% non-renewable primary energy reduction requirement to process public aid. However it names no alternatives or when-not conditions, so the agent gets context but no routing guidance against sibling tools.

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

estimar_envolvente_por_defectoEstimar Envolvente Por DefectoA
Read-onlyIdempotent

Estima las transmitancias térmicas (U en W/m²K) de fachadas, cubiertas, suelos y huecos según el año de construcción del edificio y su normativa histórica aplicable (Anterior a 1979, NBE-CT-79, CTE-HE-2006, CTE-HE-2013, CTE-HE-2019).

Cuándo usar: Utilice esta herramienta cuando no se disponga de ensayos in situ (flujometría) ni de memorias constructivas conocidas del edificio para obtener los valores tabulados por defecto de los manuales oficiales de CE3X. Para mediciones reales in situ use 'registrar_ensayo_flujometria_termica_in_situ'.

Comportamiento y efectos secundarios: Operación analítica de solo lectura (Read-Only). No altera archivos ni estado persistente.

ParametersJSON Schema
NameRequiredDescriptionDefault
zona_climaticaNoZona climática CTE DB-HE asignada (ej. 'A3', 'B4', 'C1', 'D3', 'E1').C1
ano_construccionYesAño de construcción del edificio según Catastro o escritura (ej. 1975, 1995, 2012).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description's 'Comportamiento' section largely restates this ('operación analítica de solo lectura... no altera archivos ni estado persistente'), adding little beyond the annotations. It omits output detail and any handling of edge cases such as years outside the tabulated regimes.

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

Conciseness4/5

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

Front-loaded with the core purpose, then clearly delimited sections for when-to-use and side effects. The explicit 'Read-Only' restatement is slightly redundant given annotations, but structure and ordering are strong and the text is appropriately sized.

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

Completeness5/5

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

For a read-only analytical tool with an output schema and 100% schema coverage, the description supplies everything an agent needs: what is computed, the normative basis, when to prefer it, and which sibling to use instead. Return values need not be described since an output schema exists.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters documented (zona_climatica with CTE DB-HE examples, ano_construccion with Catastro/writing examples). The description adds contextual meaning by linking ano_construccion to the historical regulatory bands, but duplicates rather than extends the schema's own documentation.

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?

States a specific verb (estimar) and resource (transmitancias térmicas de fachadas, cubiertas, suelos y huecos) and even enumerates the regulatory regimes (NBE-CT-79, CTE-HE-2006/2013/2019) that define the output. This clearly distinguishes it from sibling tools like registrar_ensayo_flujometria_termica_in_situ and calcular_puentes_termicos.

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?

Explicit 'Cuándo usar' section gives the triggering condition (no in-situ flujometría testing and no known construction reports) and explicitly routes the agent to the alternative ('registrar_ensayo_flujometria_termica_in_situ') for real measurements. Nothing left to inference.

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

generar_certificado_completoGenerar Certificado CompletoA

Genera el conjunto completo de entregables oficiales para el certificado energético: archivo de proyecto .cex para CE3X v3.2, archivo XML oficial v3.0 validado con xmlcheck.exe y PDF oficial de 15 páginas compilado con Typst / xml2cert.exe.

Cuándo usar: Invoque esta herramienta como fase final de la certificación tras haber validado todos los datos de envolvente, clima e instalaciones para producir los documentos oficiales exigidos por la Administración.

Comportamiento y efectos secundarios: Operación de generación de archivos en disco (Write). Escribe los archivos .cex, .xml y .pdf en el directorio de salida especificado. Emite progreso interactivo a FastMCP.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipo_acsNoSistema de agua caliente sanitaria instalado.
direccionYesDirección completa del inmueble (calle, número, piso).
municipioYesNombre oficial del municipio.
provinciaYesNombre oficial de la provincia española.
tipologiaNoTipología del edificio: 'Bloque', 'Unifamiliar' o 'Terciario'.Bloque
codigo_postalYesCódigo postal oficial de 5 dígitos (ej. '15001', '28001').
nombre_edificioYesNombre identificativo del edificio o vivienda (ej. 'Vivienda Unifamiliar Caamaño').
superficie_utilYesSuperficie útil habitable del inmueble en metros cuadrados (m²).
ano_construccionYesAño de construcción del edificio según Catastro o proyecto.
tipo_calefaccionNoSistema térmico de calefacción instalado.
directorio_salidaNoRuta al directorio donde se guardarán los archivos generados. Si es None, usa carpeta temporal.
referencia_catastralNoReferencia Catastral oficial del inmueble.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the write nature is known. The description adds real value beyond that: it is an on-disk file generation operation, specifies the exact artifacts written, states they go to the specified output directory, and notes interactive progress is emitted to FastMCP. It stops short of mentioning overwrite/collision behavior when files already exist, which is the main remaining risk for a write tool.

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

Conciseness4/5

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

Front-loaded with the deliverables sentence, then labelled sections for usage and side effects, which makes it scannable. It is somewhat long and the 'Comportamiento' section partially restates what the write annotation already implies, keeping it just short of a 5.

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?

An output schema exists, so return values need not be described, and all parameters are covered by the schema. The description supplies the usage trigger and the disk-write side effects an agent needs. Only minor gaps remain (no note on overwriting existing output files or expected runtime), so it is near-complete rather than 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%, with all 12 parameters documented including defaults and units (m², rango 1800-2050, formato de CP de 5 dígitos). The description adds no parameter-level meaning beyond what the schema already provides, so the baseline 3 for high coverage applies.

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?

Names a specific verb (genera) plus the exact resource and enumerates the three official deliverables with their formats and versions (.cex para CE3X v3.2, XML v3.0 validado con xmlcheck.exe, PDF de 15 páginas con Typst/xml2cert.exe). This distinguishes it from siblings like certificar_desde_carpeta_visita or calcular_calificacion_energetica without needing to open any schema.

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 'Cuándo usar' section gives an explicit trigger: invoke as the final phase of certification after validating envelope, climate and installations data. That is clear context for invocation. It does not, however, name or exclude a concrete alternative sibling (e.g. certificar_desde_carpeta_visita), so it falls short of a 5.

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

gestionar_cache_ce3xGestionar Cache Ce3XA

Gestiona el subsistema de caché persistente SQLite local (~/.ce3x_mcp/cache.db) para consultas a Catastro (TTL 30 días) y radiación solar satelital PVGIS (TTL 90 días).

Cuándo usar: Utilice esta herramienta para consultar el espacio ocupado y la tasa de aciertos (hits/misses) de la caché o para invalidar entradas antiguas si se requiere forzar una recarga telemática fresca.

Comportamiento y efectos secundarios: Operación de mantenimiento del sistema de caché local. 'estadisticas' es de solo lectura (Read-Only); 'purgar_expiradas' y 'vaciar_todo' purgan registros obsoletos de la base de datos SQLite local.

ParametersJSON Schema
NameRequiredDescriptionDefault
accionNoAcción a realizar en el subsistema de caché: 'estadisticas', 'purgar_expiradas' o 'vaciar_todo'.estadisticas
categoriaNoCategoría específica de caché a gestionar ('catastro' o 'pvgis'). Opcional.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only say readOnlyHint=false / destructiveHint=false, so the description carries most of the load and does so well: it distinguishes the read-only action ('estadisticas') from the two mutating ones ('purgar_expiradas', 'vaciar_todo') and names the affected store. It stops short of warning that 'vaciar_todo' discards all cached entries (including unexpired ones) and forces slow re-fetching, and it sits in tension with destructiveHint=false.

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

Conciseness4/5

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

Well front-loaded and organized under labeled headings ('Cuándo usar', 'Comportamiento y efectos secundarios'), which makes it scannable. There is mild redundancy: the opening sentence and 'Operación de mantenimiento del sistema de caché local' restate the same idea, and the Read-Only note partly duplicates what the action list already conveys.

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

Completeness5/5

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

For a two-parameter maintenance tool with an output schema (so return values need no explanation) and full schema coverage, the description supplies everything needed: what is managed, the underlying store, TTLs, when to use it, and which actions mutate. Nothing an agent needs in order to invoke it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents both parameters, their defaults and allowed values (baseline 3). The description adds meaning beyond the plain enumeration by assigning semantics to each 'accion' value (read-only vs. purge), though it says nothing about the 'categoria' selector, which is left entirely to the schema.

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

Purpose4/5

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

States a specific verb+resource ('Gestiona el subsistema de caché persistente SQLite local') and pins down the concrete scope: the ~/.ce3x_mcp/cache.db file, Catastro entries (TTL 30 días) and PVGIS entries (TTL 90 días). No sibling tool touches cache management, so there is little risk of confusion, but the description never explicitly positions itself against alternatives, which keeps it just short of a 5.

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 explicit 'Cuándo usar' block gives two concrete triggers: inspecting occupied space / hit-miss rate, and invalidating old entries to force a fresh telematic reload. It gives clear context for use but names no exclusions or alternative tools (e.g. re-querying via consultar_catastro instead of purging), so no 5.

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

organizar_carpeta_visitaOrganizar Carpeta VisitaA

Crea la estructura estándar de 5 carpetas canónicas (01_FOTOS, 02_PLANOS, 03_DOCUMENTACION, 04_NOTAS_CAMPO, 05_ENTREGABLES) y clasifica automáticamente los archivos existentes según su extensión y metadatos.

Cuándo usar: Utilice esta herramienta al inicio del flujo de trabajo documental tras descargar los archivos tomados en la visita para ordenar la información. Antes de certificar, ejecute 'auditar_carpeta_visita'.

Comportamiento y efectos secundarios: Operación de gestión del sistema de archivos (Write / Organize). Mueve y organiza archivos dentro de la carpeta indicada sin eliminar contenidos.

ParametersJSON Schema
NameRequiredDescriptionDefault
ruta_carpetaYesRuta absoluta o relativa a la carpeta raíz de la visita técnica.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is known. The description adds meaningful context by clarifying that it is a write/organize operation that moves files within the indicated folder without deleting content. It does not discuss permissions, error handling, or rate limits.

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 what the tool does, then clearly sections 'Cuándo usar' and 'Comportamiento y efectos secundarios.' Every sentence is relevant and the structure aids quick scanning.

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

Completeness5/5

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

Given the simple input schema, the presence of an output schema, and annotations, the description covers purpose, when to use it, and side effects. Nothing essential for an agent to invoke it correctly is missing.

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?

There is only one parameter and schema description coverage is 100%, so the schema already documents ruta_carpeta fully. The description mentions 'carpeta indicada' but adds no syntax or format details beyond what the schema provides, making 3 the appropriate baseline.

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 states a specific verb+resource: creates a standard 5-folder structure and automatically classifies existing files by extension and metadata. It even names the canonical folders, making the operation unambiguous and easy to distinguish from sibling tools like auditar_carpeta_visita.

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?

It explicitly says when to use the tool: at the start of the documentary workflow after downloading visit files, and before certification run auditar_carpeta_visita. It provides clear sequencing context but does not state when not to use it or name an alternative tool for the same task.

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

proponer_medidas_mejora_rd390Proponer Medidas Mejora Rd390A
Read-onlyIdempotent

Genera automáticamente los 3 paquetes de medidas de mejora exigidos por el Real Decreto 390/2021 (Mejora de Envolvente SATE, Sustitución por Aerotermia y Solución Integral con Solar FV), calculando reducción de emisiones, ahorro en factura (€/año) y periodo de amortización (payback).

Cuándo usar: Invoque esta herramienta preceptivamente en todo certificado energético de edificio existente para cumplimentar el Anexo III de Medidas de Mejora. Para auditar subvenciones NextGen use 'emitir_dictamen_subvenciones_nextgen'.

Comportamiento y efectos secundarios: Operación de cálculo analítico y financiero (Read-Only). No modifica archivos en disco. Emite progreso interactivo a FastMCP.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipo_acsNoSistema de ACS actual del edificio.EfectoJoule
zona_climaticaNoZona climática CTE DB-HE asignada.C1
superficie_utilYesSuperficie útil del inmueble en m².
ano_construccionYesAño de construcción catastral del edificio.
tipo_calefaccionNoSistema de calefacción actual del edificio.EfectoJoule

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety is covered structurally. The description adds useful context beyond that: it specifies analytical/financial computation, that no files on disk are modified, and that interactive progress is emitted to FastMCP. The 'Read-Only' phrasing partly restates the annotation, capping it below 5.

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

Conciseness4/5

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

Front-loaded purpose followed by clearly labeled sections ('Cuándo usar', 'Comportamiento y efectos secundarios'). Efficient overall, with only minor redundancy where 'Read-Only' overlaps the readOnlyHint annotation.

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?

With an output schema present, return values need not be explained, and the description correctly focuses on purpose, usage and side effects. It is complete enough for correct invocation, though it could specify the relationship to the downstream Anexo III workflow more concretely.

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 all five parameters (superficie_util, ano_construccion, tipo_acs, zona_climatica, tipo_calefaccion) with defaults and ranges. The description mentions the computed outputs but adds no per-parameter meaning beyond the schema, matching the baseline 3.

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 names a specific verb and resource ('Genera automáticamente los 3 paquetes de medidas de mejora') and enumerates exactly what those packages are (SATE, Aerotermia, Solar FV). It also differentiates from the sibling tool 'emitir_dictamen_subvenciones_nextgen', so an agent can route correctly without opening the schema.

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 'Cuándo usar' section explicitly instructs preceptive invocation for every existing-building energy certificate to complete Anexo III, and names the alternative tool for the NextGen subsidy audit case. Both the when-to-use and the disambiguating alternative are stated.

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

registrar_ensayo_estanqueidad_blower_doorRegistrar Ensayo Estanqueidad Blower DoorA
Read-onlyIdempotent

Procesa un ensayo de estanqueidad al aire según norma UNE-EN ISO 9972 (Blower Door), calculando la tasa de renovación n50 (renovaciones/hora), la permeabilidad q50 (m³/h·m²) y la tasa de infiltración de aire para CE3X.

Cuándo usar: Utilice esta herramienta cuando se haya ejecutado un ensayo de presurización/despresurización Blower Door para sustituir la tasa de infiltración estimada por defecto de CE3X por el valor real medido.

Comportamiento y efectos secundarios: Operación de cálculo analítico normativo (Read-Only). No altera archivos ni estado persistente.

ParametersJSON Schema
NameRequiredDescriptionDefault
caudal_50pa_m3hYesCaudal de fuga de aire medido a 50 Pa de presión en metros cúbicos por hora (m³/h).
volumen_neto_m3YesVolumen interno neto del espacio calefactado en metros cúbicos (m³).
superficie_envolvente_m2YesSuperficie total de la envolvente térmica interior en metros cuadrados (m²).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description largely restates this ('Read-Only', 'no altera archivos ni estado persistente'). It does add value by naming the normative calculation basis (UNE-EN ISO 9972) and the derived quantities, but says nothing about edge cases such as validation of the 50 Pa measurement or handling of degenerate geometry.

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

Conciseness4/5

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

Well front-loaded with labeled sections (Cuándo usar, Comportamiento y efectos secundarios) and no filler sentences. Minor redundancy between 'Read-Only' and 'no altera archivos ni estado persistente', which say the same thing twice.

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?

With an output schema present, the description needn't explain return values, and it correctly covers purpose, trigger condition, and safe behavior. Complete enough for a 3-parameter read-only calculation tool, though it omits any note on input validity ranges or expected output units.

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% and all three required numeric parameters are documented with units and exclusiveMinimum constraints. The description mentions the computed outputs but does not map them back to the inputs or add format guidance beyond the schema, so the schema does the heavy lifting.

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?

States a specific verb (procesa/calcula) and resource (ensayo de estanqueidad al aire Blower Door bajo UNE-EN ISO 9972), and names the exact outputs produced: n50, q50 y tasa de infiltración para CE3X. This clearly distinguishes it from the sibling registrar_ensayo_flujometria_termica_in_situ, which is a different test.

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 'Cuándo usar' block gives an explicit trigger condition: use it after a Blower Door pressurization/depressurization test to replace CE3X's default infiltration rate with the measured value. It lacks any explicit exclusion or named alternative for when a test has not been run, but the context is clear.

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

registrar_ensayo_flujometria_termica_in_situRegistrar Ensayo Flujometria Termica In SituA
Read-onlyIdempotent

Registra formalmente un ensayo in situ de flujometría térmica con termoflujómetro y sondas de temperatura según norma ISO 9869-1, calculando la transmitancia térmica real U (W/m²K) y la resistencia térmica R del cerramiento.

Cuándo usar: Utilice esta herramienta cuando se hayan realizado mediciones directas in situ con termoflujómetro para acreditar la transmitancia real de un muro histórico sin necesidad de estimarlo por defecto.

Comportamiento y efectos secundarios: Operación analítica de cálculo normativo (Read-Only). Devuelve el valor oficial de U para su inserción como valor conocido en CE3X.

ParametersJSON Schema
NameRequiredDescriptionDefault
flujo_medio_w_m2YesDensidad de flujo de calor media medida a través del cerramiento en vatios por metro cuadrado (W/m²).
elemento_analizadoNoDescripción del cerramiento ensayado (ej. 'Muro de fachada de ladrillo visto').Muro de fachada exterior
duracion_ensayo_horasNoDuración total del registro continuo en horas (mínimo 72 h según ISO 9869-1).
temp_exterior_media_cYesTemperatura media del aire exterior durante el ensayo en grados Celsius (°C).
temp_interior_media_cYesTemperatura media del aire interior durante el ensayo en grados Celsius (°C).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description usefully reinforces that 'registrar' is an analytical normative calculation rather than a persistence write, plus states the output's purpose (official U for insertion into CE3X). It adds context beyond the annotations, though it does not discuss assumptions or limits of the calculation.

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

Conciseness4/5

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

Front-loaded with the core purpose, then organized under clear 'Cuándo usar' and 'Comportamiento' headers. Slightly verbose but every section carries information; no filler sentences.

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?

With an output schema present, return values needn't be described, and annotations cover the safety profile. The description supplies purpose, precondition, and behavioral framing, leaving only minor gaps such as handling of invalid or short measurement windows.

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 all five parameters, including units, defaults, and the 72 h ISO minimum. The description adds no parameter-level syntax or format detail beyond what the schema provides, so baseline 3 applies.

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?

States a specific verb (Registra/calcula) and resource (ensayo in situ de flujometría térmica con termoflujómetro y sondas), naming the governing standard ISO 9869-1 and the outputs U and R. It is clearly distinguishable from siblings like registrar_ensayo_estanqueidad_blower_door and estimar_envolvente_por_defecto.

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 'Cuándo usar' section gives an explicit precondition: direct in-situ measurements with a heat flow meter to certify a historic wall's real transmittance. It implicitly contrasts with the default-estimation path ('sin necesidad de estimarlo por defecto') but never names the sibling tool, so it stops short of full routing guidance.

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

registrar_visita_presencialRegistrar Visita PresencialA

Registra formalmente la visita presencial obligatoria exigida por el Art. 8 del RD 390/2021, generando el documento justificativo del Anexo IV preceptivo para el registro administrativo autonómico.

Cuándo usar: Invoque esta herramienta de forma preceptiva para todo certificado de edificio existente para acreditar la visita presencial del técnico competente.

Comportamiento y efectos secundarios: Operación de registro y generación documental (Write). Crea el acta de visita presencial en disco.

ParametersJSON Schema
NameRequiredDescriptionDefault
fecha_visitaYesFecha de la visita presencial en formato YYYY-MM-DD (ej. '2026-10-17').
pruebas_realizadasYesDescripción de las pruebas y comprobaciones in situ realizadas (ej. 'Inspección visual de cerramientos, medición láser, toma de datos de caldera').
observaciones_tecnicasNoObservaciones técnicas adicionales recogidas durante la inspección.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, and the description corroborates this while adding value: it labels the operation as a Write and discloses the concrete side effect of generating the Anexo IV acta and writing it to disk. It stops short of noting overwrite behavior, permissions, or what happens on repeated calls for the same certificate.

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

Conciseness4/5

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

Front-loads the purpose sentence and uses clear labeled sections ('Cuándo usar', 'Comportamiento y efectos secundarios'), which an agent can parse quickly. There is mild redundancy between 'obligatoria', 'preceptiva' and 'exigida' that could be trimmed.

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

Completeness5/5

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

An output schema exists, so return values need not be described. Combined with 100% schema coverage, annotations indicating a non-destructive write, and the description's legal scope plus disk-write side effect, an agent has everything needed to call this correctly.

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%, with each of the three parameters documented in the schema itself (format YYYY-MM-DD, examples of pruebas and observaciones). The description adds no additional parameter-level meaning, so the baseline 3 applies.

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?

States a specific verb and resource ('Registra formalmente la visita presencial') and grounds it in the legal instrument (Art. 8 RD 390/2021, Anexo IV). This clearly distinguishes it from the cluster of sibling tools that organize, audit, or certify from the visit folder, so an agent can select it without opening the schema.

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 'Cuándo usar' section gives an explicit trigger condition: invoke mandatorily for every certificate of an existing building to accredit the technician's on-site visit. It does not, however, name alternatives or state exclusions (e.g. new-build certificates, or whether a prior organizar_carpeta_visita step is required), so routing vs. siblings is left partly to inference.

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

verificar_conexion_ce3xVerificar Conexion Ce3XA
Read-onlyIdempotent

Verifica y testea de forma exhaustiva la instalación y conectividad con el software oficial CE3X v3.2 (ejecutables, motores climáticos, validador XML RelaxNG y escalas oficiales).

Cuándo usar: Invoque esta herramienta durante el arranque inicial o en pruebas de diagnóstico del entorno para verificar la presencia de CE3Xv3.2.exe, xml2cert.exe y xmlcheck.exe.

Comportamiento y efectos secundarios: Operación de diagnóstico de solo lectura (Read-Only). Inspecciona el sistema de archivos local sin alterar configuraciones ni registrar escrituras.

ParametersJSON Schema
NameRequiredDescriptionDefault
directorio_ce3xNoRuta absoluta al directorio de instalación de CE3X v3.2. Si es None, autodetecta en 'C:\Program Files (x86)\CE3Xv3.2'.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered; the description does restate 'solo lectura (Read-Only)', which is mildly redundant. It adds genuine value by specifying that it inspects the local filesystem 'sin alterar configuraciones ni registrar escrituras', clarifying the touch surface beyond the annotations.

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

Conciseness4/5

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

Well front-loaded and clearly sectioned ('Cuándo usar', 'Comportamiento y efectos secundarios'), with the purpose stated first. Slightly padded by the read-only restatement that duplicates the annotations, but overall efficient.

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

Completeness5/5

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

An output schema exists, so return values need not be described, and annotations cover the safety/idempotency profile. Purpose, invocation timing, and side effects are all present, leaving nothing critical for an agent to call it correctly.

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

Parameters3/5

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

Schema coverage is 100% with a single parameter whose description already documents the autodetect default path. The tool description adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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?

Specific verb (verifica/testea) plus resource (instalación y conectividad con CE3X v3.2), and it enumerates the exact artifacts checked (ejecutables, motores climáticos, validador XML RelaxNG, escalas oficiales). Among siblings it is clearly the diagnostic/verification tool, distinguishable from transactional tools like generar_certificado_completo or gestionar_cache_ce3x.

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?

It gives an explicit when-to-use: 'durante el arranque inicial o en pruebas de diagnóstico del entorno'. This is clear context but it names no alternative tool and states no when-not conditions, so it stops short of a 5.

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.

  1. 27 tool updates
    • Changedanalizar_ficha_equipo_clima1 field changed
      • addedInput schema / properties / descripcion_o_ficha / description
        Added value: +"Texto técnico o descripción detallada de la ficha de características del equipo de climatización (ej. 'Bomba de calor aerotérmica Daikin Altherma 8 kW con SCOP 4.2')."
    • Changedanalizar_modelo_bim_ifc1 field changed
      • addedInput schema / properties / ifc_path / description
        Added value: +"Ruta absoluta o relativa al archivo de modelo BIM en formato IFC (.ifc, IFC2X3 o IFC4)."
    • Changedanalizar_plano_arquitectura_pdf1 field changed
      • addedInput schema / properties / pdf_path / description
        Added value: +"Ruta absoluta o relativa al archivo PDF que contiene el plano arquitectónico de distribución."
    • Changedauditar_carpeta_visita1 field changed
      • addedInput schema / properties / ruta_carpeta / description
        Added value: +"Ruta a la carpeta de visita técnica a auditar."
    • Changedcalcular_calificacion_energetica9 fields changed
      • addedInput schema / properties / ano_construccion / description
        Added value: +"Año de construcción catastral del edificio."
      • addedInput schema / properties / ano_construccion / maximum
        Added value: +2050
      • addedInput schema / properties / ano_construccion / minimum
        Added value: +1800
      • addedInput schema / properties / superficie_util / description
        Added value: +"Superficie útil habitable del edificio o vivienda en metros cuadrados (m²)."
      • addedInput schema / properties / superficie_util / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / tipo_acs / description
        Added value: +"Tipo o vector energético del ACS: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', o None."
      • addedInput schema / properties / tipo_calefaccion / description
        Added value: +"Tipo o vector energético de la calefacción: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'Biomasa', 'BombaCalor', o None."
      • addedInput schema / properties / tipologia / description
        Added value: +"Tipología edificatoria: 'Bloque', 'Unifamiliar' o 'Terciario'."
      • addedInput schema / properties / zona_climatica / description
        Added value: +"Zona climática CTE DB-HE (ej. 'C1', 'D3', 'E1')."
    • Changedcalcular_demanda_acs_cte_he45 fields changed
      • addedInput schema / properties / numero_dormitorios / description
        Added value: +"Número de dormitorios de la vivienda (para residenciales privados)."
      • addedInput schema / properties / numero_dormitorios / minimum
        Added value: +0
      • addedInput schema / properties / numero_personas / description
        Added value: +"Número de personas u ocupantes directos calculados o previstos."
      • addedInput schema / properties / provincia / description
        Added value: +"Provincia donde se ubica el edificio para fijar la temperatura de agua de red (ej. 'Madrid', 'A Coruña', 'Sevilla')."
      • addedInput schema / properties / tipo_edificio / description
        Added value: +"Tipología de uso: 'ViviendaUnifamiliar', 'ViviendaBloque', 'Hotel_3_estrellas', 'Hospital', 'Residencia', 'Gimnasio'."
    • Changedcalcular_parametros_terciario_local_comercial12 fields changed
      • removedInput schema / properties / nivel_iluminacion_lux / anyOf
        Removed value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / nivel_iluminacion_lux / default
        Previous value: -nullNew value: +500
      • addedInput schema / properties / nivel_iluminacion_lux / description
        Added value: +"Nivel medio de iluminancia mantenida en lux según exigencias de la actividad (CTE DB-HE3). Por defecto 500 lux."
      • addedInput schema / properties / nivel_iluminacion_lux / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / nivel_iluminacion_lux / type
        Added value: +"number"
      • removedInput schema / properties / superficie_util_m2 / default
        Removed value: -100
      • addedInput schema / properties / superficie_util_m2 / description
        Added value: +"Superficie útil del local comercial en metros cuadrados (m²)."
      • addedInput schema / properties / superficie_util_m2 / exclusiveMinimum
        Added value: +0
      • removedInput schema / properties / tipo_actividad / default
        Removed value: -"Comercio"
      • addedInput schema / properties / tipo_actividad / description
        Added value: +"Tipo de actividad del local o edificio terciario (ej. 'Comercial', 'Oficinas', 'Docente', 'Restauracion', 'Sanitario')."
      • addedInput schema / properties / tipo_luminaria / description
        Added value: +"Tecnología de iluminación principal: 'LED', 'Fluorescencia', 'Halogena', 'Incandescente'."
      • addedInput schema / required
        Added value: +[
        +  "tipo_actividad",
        +  "superficie_util_m2"
        +]
    • Changedcalcular_produccion_fotovoltaica_pvgis14 fields changed
      • addedInput schema / properties / azimut_grados / description
        Added value: +"Orientación o azimut de los paneles: 0° Sur, 90° Oeste, -90° Este, 180° Norte. Por defecto 0.0° (Sur)."
      • addedInput schema / properties / azimut_grados / maximum
        Added value: +180
      • addedInput schema / properties / azimut_grados / minimum
        Added value: +-180
      • addedInput schema / properties / inclinacion_grados / description
        Added value: +"Inclinación de los módulos solares respecto a la horizontal en grados (0 a 90°). Por defecto 35.0°."
      • addedInput schema / properties / inclinacion_grados / maximum
        Added value: +90
      • addedInput schema / properties / inclinacion_grados / minimum
        Added value: +0
      • addedInput schema / properties / latitud / description
        Added value: +"Latitud geográfica en grados decimales (ej. 43.3623 para A Coruña, 40.4168 para Madrid)."
      • addedInput schema / properties / latitud / maximum
        Added value: +90
      • addedInput schema / properties / latitud / minimum
        Added value: +-90
      • addedInput schema / properties / longitud / description
        Added value: +"Longitud geográfica en grados decimales (ej. -8.4115 para A Coruña, -3.7038 para Madrid)."
      • addedInput schema / properties / longitud / maximum
        Added value: +180
      • addedInput schema / properties / longitud / minimum
        Added value: +-180
      • addedInput schema / properties / potencia_pico_kw / description
        Added value: +"Potencia pico de la instalación solar fotovoltaica en kilovatios (kWp). Por defecto 3.0 kWp."
      • addedInput schema / properties / potencia_pico_kw / exclusiveMinimum
        Added value: +0
    • Changedcalcular_puentes_termicos12 fields changed
      • addedInput schema / properties / ano_construccion / description
        Added value: +"Año de construcción del edificio para asignar la transmitancia lineal de referencia según normativa histórica aplicable."
      • addedInput schema / properties / ano_construccion / maximum
        Added value: +2050
      • addedInput schema / properties / ano_construccion / minimum
        Added value: +1800
      • addedInput schema / properties / longitud_pilares_m / description
        Added value: +"Longitud total de pilares integrados en fachada exterior en metros (m)."
      • addedInput schema / properties / longitud_pilares_m / minimum
        Added value: +0
      • addedInput schema / properties / perimetro_forjado_m / default
        Added value: +0
      • addedInput schema / properties / perimetro_forjado_m / description
        Added value: +"Longitud total de frentes de forjado en fachada en metros (m)."
      • addedInput schema / properties / perimetro_forjado_m / minimum
        Added value: +0
      • addedInput schema / properties / perimetro_huecos_m / default
        Added value: +0
      • addedInput schema / properties / perimetro_huecos_m / description
        Added value: +"Perímetro total de contornos de huecos y ventanas en metros (m)."
      • addedInput schema / properties / perimetro_huecos_m / minimum
        Added value: +0
      • changedInput schema / required
        Previous value: -[
        -  "ano_construccion",
        -  "perimetro_forjado_m",
        -  "perimetro_huecos_m"
        -]New value: +[
        +  "ano_construccion"
        +]
    • Changedcalcular_sombras_hueco14 fields changed
      • removedInput schema / properties / alto_hueco_m / default
        Removed value: -1.2
      • addedInput schema / properties / alto_hueco_m / description
        Added value: +"Alto de la ventana en metros (m)."
      • addedInput schema / properties / alto_hueco_m / exclusiveMinimum
        Added value: +0
      • removedInput schema / properties / ancho_hueco_m / default
        Removed value: -1.2
      • addedInput schema / properties / ancho_hueco_m / description
        Added value: +"Ancho de la ventana en metros (m)."
      • addedInput schema / properties / ancho_hueco_m / exclusiveMinimum
        Added value: +0
      • removedInput schema / properties / orientacion / default
        Removed value: -"Sur"
      • addedInput schema / properties / orientacion / description
        Added value: +"Orientación del hueco: 'Sur', 'Norte', 'Este', 'Oeste', 'Sureste', 'Suroeste', 'Noreste', 'Noroeste'."
      • addedInput schema / properties / retranqueo_m / description
        Added value: +"Profundidad del retranqueo de la ventana respecto al plano exterior de fachada en metros (m)."
      • addedInput schema / properties / retranqueo_m / minimum
        Added value: +0
      • addedInput schema / properties / tiene_toldo / description
        Added value: +"Indica si el hueco dispone de toldo u obstáculo móvil exterior de protección solar."
      • addedInput schema / properties / vuelo_voladizo_m / description
        Added value: +"Saliente o vuelo del voladizo o alero superior en metros (m)."
      • addedInput schema / properties / vuelo_voladizo_m / minimum
        Added value: +0
      • addedInput schema / required
        Added value: +[
        +  "orientacion",
        +  "ancho_hueco_m",
        +  "alto_hueco_m"
        +]
    • Changedcalcular_sombras_obstaculo_edificio_enfrente11 fields changed
      • addedInput schema / properties / altura_edificio_m / description
        Added value: +"Altura del edificio u obstáculo de enfrente en metros (m) medida por encima del centro del hueco evaluado."
      • addedInput schema / properties / altura_edificio_m / exclusiveMinimum
        Added value: +0
      • removedInput schema / properties / descripcion_obstaculo / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / descripcion_obstaculo / default
        Previous value: -nullNew value: +"Edificio colindante"
      • addedInput schema / properties / descripcion_obstaculo / description
        Added value: +"Descripción del obstáculo remoto (ej. 'Edificio de 6 plantas enfrente')."
      • addedInput schema / properties / descripcion_obstaculo / type
        Added value: +"string"
      • addedInput schema / properties / distancia_edificio_m / description
        Added value: +"Distancia horizontal en metros (m) desde la fachada del edificio evaluado hasta el obstáculo o edificio de enfrente."
      • addedInput schema / properties / distancia_edificio_m / exclusiveMinimum
        Added value: +0
      • removedInput schema / properties / orientacion_fachada / default
        Removed value: -"Sur"
      • addedInput schema / properties / orientacion_fachada / description
        Added value: +"Orientación de la fachada que recibe la sombra: 'Sur', 'Norte', 'Este', 'Oeste', 'Sureste', 'Suroeste', 'Noreste', 'Noroeste'."
      • changedInput schema / required
        Previous value: -[
        -  "distancia_edificio_m",
        -  "altura_edificio_m"
        -]New value: +[
        +  "distancia_edificio_m",
        +  "altura_edificio_m",
        +  "orientacion_fachada"
        +]
    • Changedcalcular_transmitancia_ventana_iso1007714 fields changed
      • addedInput schema / properties / alto_m / description
        Added value: +"Alto del hueco de ventana en metros (m)."
      • addedInput schema / properties / alto_m / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / ancho_m / description
        Added value: +"Ancho del hueco de ventana en metros (m)."
      • addedInput schema / properties / ancho_m / exclusiveMinimum
        Added value: +0
      • changedInput schema / properties / fraccion_marco / default
        Previous value: -0.25New value: +0.2
      • addedInput schema / properties / fraccion_marco / description
        Added value: +"Fracción de superficie ocupada por el marco respecto al hueco total (0.10 a 0.50). Por defecto 0.20 (20%)."
      • addedInput schema / properties / fraccion_marco / maximum
        Added value: +0.6
      • addedInput schema / properties / fraccion_marco / minimum
        Added value: +0.05
      • changedInput schema / properties / tipo_intercalario / default
        Previous value: -"termicamente_mejorado"New value: +"aluminio"
      • addedInput schema / properties / tipo_intercalario / description
        Added value: +"Tipo de espaciador o intercalario del doble acristalamiento: 'aluminio' o 'calido_warm_edge'."
      • addedInput schema / properties / u_marco_w_m2k / description
        Added value: +"Transmitancia térmica del marco Uf en W/m²K (ej. 5.7 para metálico sin RPT, 3.2 con RPT, 2.2 para madera, 1.8 para PVC)."
      • addedInput schema / properties / u_marco_w_m2k / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / u_vidrio_w_m2k / description
        Added value: +"Transmitancia térmica del vidrio Ug en W/m²K (ej. 5.7 para simple, 2.8 para doble estándar, 1.1 para bajo emisivo)."
      • addedInput schema / properties / u_vidrio_w_m2k / exclusiveMinimum
        Added value: +0
    • Changedcertificar_desde_carpeta_visita5 fields changed
      • addedInput schema / properties / nombre_edificio / description
        Added value: +"Nombre o denominación del edificio."
      • addedInput schema / properties / orientacion_principal / description
        Added value: +"Orientación predominante de la fachada principal: 'Sur', 'Norte', 'Este', 'Oeste', etc."
      • addedInput schema / properties / ruta_carpeta / description
        Added value: +"Ruta a la carpeta que contiene los archivos de la visita técnica."
      • addedInput schema / properties / tipo_acs / description
        Added value: +"Vector de ACS: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', etc."
      • addedInput schema / properties / tipo_calefaccion / description
        Added value: +"Vector de calefacción: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', etc."
    • Changedconfigurar_perfil_tecnico_colegiado42 fields changed
      • removedInput schema / properties / codigo_postal / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / codigo_postal / default
        Previous value: -nullNew value: +""
      • addedInput schema / properties / codigo_postal / description
        Added value: +"Código postal profesional de 5 dígitos."
      • addedInput schema / properties / codigo_postal / type
        Added value: +"string"
      • removedInput schema / properties / colegio_profesional / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / colegio_profesional / default
        Removed value: -null
      • addedInput schema / properties / colegio_profesional / description
        Added value: +"Nombre oficial del Colegio Profesional (ej. 'Colegio Oficial de la Arquitectura Técnica de A Coruña')."
      • addedInput schema / properties / colegio_profesional / type
        Added value: +"string"
      • addedInput schema / properties / comunidad_autonoma / description
        Added value: +"Comunidad Autónoma donde ejerce habitualmente la actividad."
      • removedInput schema / properties / domicilio / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / domicilio / default
        Previous value: -nullNew value: +""
      • addedInput schema / properties / domicilio / description
        Added value: +"Domicilio o dirección profesional del técnico."
      • addedInput schema / properties / domicilio / type
        Added value: +"string"
      • removedInput schema / properties / email / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / email / default
        Previous value: -nullNew value: +""
      • addedInput schema / properties / email / description
        Added value: +"Correo electrónico profesional de contacto."
      • addedInput schema / properties / email / type
        Added value: +"string"
      • removedInput schema / properties / municipio / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / municipio / default
        Previous value: -nullNew value: +""
      • addedInput schema / properties / municipio / description
        Added value: +"Municipio del domicilio profesional."
      • addedInput schema / properties / municipio / type
        Added value: +"string"
      • addedInput schema / properties / nif_tecnico / description
        Added value: +"NIF o NIE del técnico certificador."
      • addedInput schema / properties / nombre_tecnico / description
        Added value: +"Nombre y apellidos completos del técnico certificador competente."
      • removedInput schema / properties / numero_colegiado / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / numero_colegiado / default
        Removed value: -null
      • addedInput schema / properties / numero_colegiado / description
        Added value: +"Número de colegiado profesional."
      • addedInput schema / properties / numero_colegiado / type
        Added value: +"string"
      • removedInput schema / properties / provincia / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / provincia / default
        Previous value: -nullNew value: +""
      • addedInput schema / properties / provincia / description
        Added value: +"Provincia del domicilio profesional."
      • addedInput schema / properties / provincia / type
        Added value: +"string"
      • removedInput schema / properties / razon_social / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / razon_social / default
        Previous value: -nullNew value: +""
      • addedInput schema / properties / razon_social / description
        Added value: +"Razón social del estudio o empresa técnica (opcional)."
      • addedInput schema / properties / razon_social / type
        Added value: +"string"
      • removedInput schema / properties / telefono / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / telefono / default
        Previous value: -nullNew value: +""
      • addedInput schema / properties / telefono / description
        Added value: +"Teléfono de contacto profesional."
      • addedInput schema / properties / telefono / type
        Added value: +"string"
      • removedInput schema / properties / titulacion / default
        Removed value: -"Arquitecto Técnico"
      • addedInput schema / properties / titulacion / description
        Added value: +"Titulación académica habilitante (ej. 'Arquitecto Técnico', 'Ingeniero de Edificación', 'Arquitecto')."
      • changedInput schema / required
        Previous value: -[
        -  "nombre_tecnico",
        -  "nif_tecnico"
        -]New value: +[
        +  "nombre_tecnico",
        +  "nif_tecnico",
        +  "titulacion",
        +  "colegio_profesional",
        +  "numero_colegiado"
        +]
    • Changedconsultar_catastro1 field changed
      • addedInput schema / properties / referencia_catastral / description
        Added value: +"Referencia Catastral oficial del inmueble (14 o 20 caracteres alfanuméricos, ej. '8014008NJ4081S0003RF')."
    • Changedcontrastar_consumo_facturas_reales10 fields changed
      • addedInput schema / properties / consumo_teorico_kwh_ano / description
        Added value: +"Consumo teórico anual total calculado por CE3X en kWh/año."
      • addedInput schema / properties / consumo_teorico_kwh_ano / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / electricidad_real_kwh / default
        Added value: +0
      • addedInput schema / properties / electricidad_real_kwh / description
        Added value: +"Consumo eléctrico real facturado de los últimos 12 meses en kWh."
      • addedInput schema / properties / electricidad_real_kwh / minimum
        Added value: +0
      • addedInput schema / properties / gas_natural_real_kwh / description
        Added value: +"Consumo real de gas natural de los últimos 12 meses en kWh."
      • addedInput schema / properties / gas_natural_real_kwh / minimum
        Added value: +0
      • addedInput schema / properties / gasoleo_real_litros / description
        Added value: +"Consumo real de gasóleo de calefacción de los últimos 12 meses en litros."
      • addedInput schema / properties / gasoleo_real_litros / minimum
        Added value: +0
      • changedInput schema / required
        Previous value: -[
        -  "consumo_teorico_kwh_ano",
        -  "electricidad_real_kwh"
        -]New value: +[
        +  "consumo_teorico_kwh_ano"
        +]
    • Changeddeterminar_zona_climatica5 fields changed
      • addedInput schema / properties / altitud_m / description
        Added value: +"Altitud del inmueble sobre el nivel del mar en metros (m). Por defecto 0.0."
      • addedInput schema / properties / altitud_m / maximum
        Added value: +4000
      • addedInput schema / properties / altitud_m / minimum
        Added value: +-50
      • addedInput schema / properties / municipio / description
        Added value: +"Nombre oficial del municipio correspondiente a la provincia."
      • addedInput schema / properties / provincia / description
        Added value: +"Nombre oficial de la provincia española (ej. 'Madrid', 'A Coruña', 'Sevilla', 'Barcelona')."
    • Changedemitir_dictamen_subvenciones_nextgen11 fields changed
      • addedInput schema / properties / ano_construccion / description
        Added value: +"Año de construcción del inmueble."
      • addedInput schema / properties / ano_construccion / maximum
        Added value: +2050
      • addedInput schema / properties / ano_construccion / minimum
        Added value: +1800
      • addedInput schema / properties / paquete_mejora / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • addedInput schema / properties / paquete_mejora / description
        Added value: +"Paquete de mejora a evaluar: 1 (Envolvente SATE), 2 (Aerotermia) o 3 (Integral con Solar FV)."
      • removedInput schema / properties / paquete_mejora / type
        Removed value: -"integer"
      • addedInput schema / properties / superficie_util / description
        Added value: +"Superficie útil habitable en m²."
      • addedInput schema / properties / superficie_util / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / tipo_acs / description
        Added value: +"Sistema de ACS actual."
      • addedInput schema / properties / tipo_calefaccion / description
        Added value: +"Sistema de calefacción actual."
      • addedInput schema / properties / zona_climatica / description
        Added value: +"Zona climática CTE DB-HE."
    • Changedestimar_envolvente_por_defecto4 fields changed
      • addedInput schema / properties / ano_construccion / description
        Added value: +"Año de construcción del edificio según Catastro o escritura (ej. 1975, 1995, 2012)."
      • addedInput schema / properties / ano_construccion / maximum
        Added value: +2050
      • addedInput schema / properties / ano_construccion / minimum
        Added value: +1800
      • addedInput schema / properties / zona_climatica / description
        Added value: +"Zona climática CTE DB-HE asignada (ej. 'A3', 'B4', 'C1', 'D3', 'E1')."
    • Changedgenerar_certificado_completo15 fields changed
      • addedInput schema / properties / ano_construccion / description
        Added value: +"Año de construcción del edificio según Catastro o proyecto."
      • addedInput schema / properties / ano_construccion / maximum
        Added value: +2050
      • addedInput schema / properties / ano_construccion / minimum
        Added value: +1800
      • addedInput schema / properties / codigo_postal / description
        Added value: +"Código postal oficial de 5 dígitos (ej. '15001', '28001')."
      • addedInput schema / properties / direccion / description
        Added value: +"Dirección completa del inmueble (calle, número, piso)."
      • addedInput schema / properties / directorio_salida / description
        Added value: +"Ruta al directorio donde se guardarán los archivos generados. Si es None, usa carpeta temporal."
      • addedInput schema / properties / municipio / description
        Added value: +"Nombre oficial del municipio."
      • addedInput schema / properties / nombre_edificio / description
        Added value: +"Nombre identificativo del edificio o vivienda (ej. 'Vivienda Unifamiliar Caamaño')."
      • addedInput schema / properties / provincia / description
        Added value: +"Nombre oficial de la provincia española."
      • addedInput schema / properties / referencia_catastral / description
        Added value: +"Referencia Catastral oficial del inmueble."
      • addedInput schema / properties / superficie_util / description
        Added value: +"Superficie útil habitable del inmueble en metros cuadrados (m²)."
      • addedInput schema / properties / superficie_util / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / tipo_acs / description
        Added value: +"Sistema de agua caliente sanitaria instalado."
      • addedInput schema / properties / tipo_calefaccion / description
        Added value: +"Sistema térmico de calefacción instalado."
      • addedInput schema / properties / tipologia / description
        Added value: +"Tipología del edificio: 'Bloque', 'Unifamiliar' o 'Terciario'."
    • Changedgestionar_cache_ce3x2 fields changed
      • addedInput schema / properties / accion / description
        Added value: +"Acción a realizar en el subsistema de caché: 'estadisticas', 'purgar_expiradas' o 'vaciar_todo'."
      • addedInput schema / properties / categoria / description
        Added value: +"Categoría específica de caché a gestionar ('catastro' o 'pvgis'). Opcional."
    • Changedorganizar_carpeta_visita1 field changed
      • addedInput schema / properties / ruta_carpeta / description
        Added value: +"Ruta absoluta o relativa a la carpeta raíz de la visita técnica."
    • Changedproponer_medidas_mejora_rd3908 fields changed
      • addedInput schema / properties / ano_construccion / description
        Added value: +"Año de construcción catastral del edificio."
      • addedInput schema / properties / ano_construccion / maximum
        Added value: +2050
      • addedInput schema / properties / ano_construccion / minimum
        Added value: +1800
      • addedInput schema / properties / superficie_util / description
        Added value: +"Superficie útil del inmueble en m²."
      • addedInput schema / properties / superficie_util / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / tipo_acs / description
        Added value: +"Sistema de ACS actual del edificio."
      • addedInput schema / properties / tipo_calefaccion / description
        Added value: +"Sistema de calefacción actual del edificio."
      • addedInput schema / properties / zona_climatica / description
        Added value: +"Zona climática CTE DB-HE asignada."
    • Changedregistrar_ensayo_estanqueidad_blower_door6 fields changed
      • addedInput schema / properties / caudal_50pa_m3h / description
        Added value: +"Caudal de fuga de aire medido a 50 Pa de presión en metros cúbicos por hora (m³/h)."
      • addedInput schema / properties / caudal_50pa_m3h / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / superficie_envolvente_m2 / description
        Added value: +"Superficie total de la envolvente térmica interior en metros cuadrados (m²)."
      • addedInput schema / properties / superficie_envolvente_m2 / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / volumen_neto_m3 / description
        Added value: +"Volumen interno neto del espacio calefactado en metros cúbicos (m³)."
      • addedInput schema / properties / volumen_neto_m3 / exclusiveMinimum
        Added value: +0
    • Changedregistrar_ensayo_flujometria_termica_in_situ8 fields changed
      • addedInput schema / properties / duracion_ensayo_horas / description
        Added value: +"Duración total del registro continuo en horas (mínimo 72 h según ISO 9869-1)."
      • addedInput schema / properties / duracion_ensayo_horas / minimum
        Added value: +24
      • changedInput schema / properties / elemento_analizado / default
        Previous value: -"Fachada principal"New value: +"Muro de fachada exterior"
      • addedInput schema / properties / elemento_analizado / description
        Added value: +"Descripción del cerramiento ensayado (ej. 'Muro de fachada de ladrillo visto')."
      • addedInput schema / properties / flujo_medio_w_m2 / description
        Added value: +"Densidad de flujo de calor media medida a través del cerramiento en vatios por metro cuadrado (W/m²)."
      • addedInput schema / properties / flujo_medio_w_m2 / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / temp_exterior_media_c / description
        Added value: +"Temperatura media del aire exterior durante el ensayo en grados Celsius (°C)."
      • addedInput schema / properties / temp_interior_media_c / description
        Added value: +"Temperatura media del aire interior durante el ensayo en grados Celsius (°C)."
    • Changedregistrar_visita_presencial10 fields changed
      • addedInput schema / properties / fecha_visita / description
        Added value: +"Fecha de la visita presencial en formato YYYY-MM-DD (ej. '2026-10-17')."
      • removedInput schema / properties / observaciones_tecnicas / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • changedInput schema / properties / observaciones_tecnicas / default
        Previous value: -nullNew value: +""
      • addedInput schema / properties / observaciones_tecnicas / description
        Added value: +"Observaciones técnicas adicionales recogidas durante la inspección."
      • addedInput schema / properties / observaciones_tecnicas / type
        Added value: +"string"
      • removedInput schema / properties / pruebas_realizadas / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / pruebas_realizadas / default
        Removed value: -null
      • addedInput schema / properties / pruebas_realizadas / description
        Added value: +"Descripción de las pruebas y comprobaciones in situ realizadas (ej. 'Inspección visual de cerramientos, medición láser, toma de datos de caldera')."
      • addedInput schema / properties / pruebas_realizadas / type
        Added value: +"string"
      • changedInput schema / required
        Previous value: -[
        -  "fecha_visita"
        -]New value: +[
        +  "fecha_visita",
        +  "pruebas_realizadas"
        +]
    • Changedverificar_conexion_ce3x1 field changed
      • addedInput schema / properties / directorio_ce3x / description
        Added value: +"Ruta absoluta al directorio de instalación de CE3X v3.2. Si es None, autodetecta en 'C:\\Program Files (x86)\\CE3Xv3.2'."
  2. 27 tool updatesv1.5.1
    • First observedanalizar_ficha_equipo_clima
    • First observedanalizar_modelo_bim_ifc
    • First observedanalizar_plano_arquitectura_pdf
    • First observedauditar_carpeta_visita
    • First observedcalcular_calificacion_energetica
    • First observedcalcular_demanda_acs_cte_he4
    • First observedcalcular_parametros_terciario_local_comercial
    • First observedcalcular_produccion_fotovoltaica_pvgis
    • First observedcalcular_puentes_termicos
    • First observedcalcular_sombras_hueco
    • First observedcalcular_sombras_obstaculo_edificio_enfrente
    • First observedcalcular_transmitancia_ventana_iso10077
    • First observedcertificar_desde_carpeta_visita
    • First observedconfigurar_perfil_tecnico_colegiado
    • First observedconsultar_catastro
    • First observedcontrastar_consumo_facturas_reales
    • First observeddeterminar_zona_climatica
    • First observedemitir_dictamen_subvenciones_nextgen
    • First observedestimar_envolvente_por_defecto
    • First observedgenerar_certificado_completo
    • First observedgestionar_cache_ce3x
    • First observedorganizar_carpeta_visita
    • First observedproponer_medidas_mejora_rd390
    • First observedregistrar_ensayo_estanqueidad_blower_door
    • First observedregistrar_ensayo_flujometria_termica_in_situ
    • First observedregistrar_visita_presencial
    • First observedverificar_conexion_ce3x

TDQS

A4.1/5.0

Scored across 27 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but a few thermal calculation tools (e.g., estimar_envolvente_por_defecto vs. registrar_ensayo_flujometria_termica_in_situ) and certificate generation tools (calcular_calificacion_energetica vs. generar_certificado_completo vs. certificar_desde_carpeta_visita) could cause some initial confusion despite cross-references.

Naming Consistency5/5

All tool names use Spanish snake_case with a consistent verb_noun pattern (e.g., consultar_catastro, calcular_calificacion_energetica, registrar_ensayo...). Minor variation in 'certificar_desde_carpeta_visita' does not break consistency.

Tool Count3/5

27 tools is on the heavy side; while the domain is complex and each tool is specialized, several could be consolidated (e.g., shading calculations, BIM/PDF analysis, certificate generation paths). This may increase selection burden.

Completeness5/5

The toolset covers the full CE3X certification lifecycle: data capture (Catastro, BIM, PDF, equipment), thermal and regulatory calculations (climate, envelope, bridges, shading, PV, ACS, tertiary), document generation, workflow management, and cache maintenance. No obvious critical gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.
    4
    1
    234,032 PyPI
    91,276
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-powered analysis and prediction of household energy consumption through machine learning models, providing historical consumption breakdowns, price queries from Spanish electricity markets, and personalized energy optimization recommendations.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI assistants to create, edit, and simulate EnergyPlus building energy models via natural language. Supports schema exploration, model editing, simulation execution, and documentation search.
    39
    4
    MIT