CE3X-MCP-Server
This MCP server turns an AI assistant into a Spanish energy-certification (CE3X v3.2) technical expert, automating the whole CEE workflow from data capture to official deliverables.
Catastro & climate data: query the Spanish Cadastre (OVC) from a cadastral reference, and determine the CTE DB-HE climatic zone from province/municipality/altitude.
Envelope & thermal modelling: estimate default U-values by construction year, calculate linear thermal bridges (DA DB-HE/3), window Uw (UNE-EN ISO 10077-1), and seasonal shading factors (overhangs, awnings, facing buildings).
BIM & drawings ingestion: extract spaces, walls and openings from IFC models (IfcOpenShell) and read floor-plan PDFs (PyMuPDF).
Systems & renewables: parse equipment datasheets (SCOP/COP/SEER), compute PV production via the EU PVGIS satellite API, and size ACS demand per CTE DB-HE 4.
On-site testing: register Blower Door airtightness (n50/q50, ISO 9972) and in-situ heat-flux measurements (ISO 9869-1), plus the mandatory site visit record (RD 390/2021 Anexo IV).
Real-consumption benchmarking: compare actual electricity/gas/diesel bills against the theoretical model.
Terciary/commercial: compute lighting power, VEEI and RITE ventilation rates.
Rating & deliverables: calculate energy rating (A–G), then generate the native
.cex, the official XML v3.0 (RelaxNG-validated) and the 15-page Typst PDF certificate.Retrofit & subsidies: propose RD 390/2021 improvement packages (SATE, aerothermal, PV) and issue NextGen (RD 853/2021) / IRPF deduction reports.
Visit-folder automation: organise, audit and fully certify an on-site folder (INFORMACION/PLANOS/FOTOS/INSTALACIONES/CERTIFICADO).
Setup & ops: verify the local CE3X installation, store the certifier's professional profile, and manage the SQLite cache (~230x speed-up) for Catastro/PVGIS calls.
Integrates with Typst to compile official energy certificate PDFs (15 pages) using xml2cert, generating homologated documents from XML data.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CE3X-MCP-ServerGenera el certificado de eficiencia energética CE3X de esta vivienda"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🏢 CE3X-MCP-Server (Certificación Energética con IA)
🏗️ Perfil & ConTech | 📈 Repositorio & Enlaces |
|
|
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 | Arquitectura canónica para organizar fotos, planos, notas y certificados. | |
Estudio de Conectores | Mapeo pantalla a pantalla, botón a botón y ensayos de CE3X a conectores de IA. | |
Documento de Análisis | Análisis exhaustivo del software, manuales técnicos y arquitectura modular. | |
Plantilla de Campo | Formulario estructurado para visitas de campo y dictado por voz. | |
Guía para tu IA | System prompts y protocolo de primer contacto para Claude, Gemini y Cursor. | |
Historial de Versiones | Registro detallado de versiones y mejoras implementadas. | |
Código de Conducta | El manual del buen rollo y convivencia comunitaria. | |
Guía de Contribución | Pautas para reportar bugs, proponer ideas y enviar Pull Requests. | |
Instalador 1-Clic | Script autoejecutable para configurar Claude Desktop y Cursor. | |
Skills para Claude/GPT/Gemini | Manual operativo para que cualquier IA razone como un Arquitecto Técnico. | |
Paquete PyPI Oficial | Distribución oficial en el Python Package Index ( | |
Glama MCP Registry | Directorio oficial de servidores MCP e Inspector web interactivo. | |
Notas de Release v1.0 | Manifiesto de capacidades, paquetes wheel y distribución oficial. | |
Seguridad | Divulgación responsable y reporte de vulnerabilidades. | |
Repositorio GitHub | 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 |
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 | Cubicación BIM con |
🚀 Guía Rápida para Usuarios Noveles (Empieza en 3 Pasos)
📥
🎯 ¿No quieres lidiar con consolas, comandos ni archivos JSON?
Sigue estos 3 pasos inmediatos para tener la herramienta funcionando en 1 minuto:
Doble Clic al Instalador: Haz doble clic sobre
instalar_en_claude_desktop.baten la raíz del repositorio. Configurará Claude Desktop y Cursor automáticamente sin tocar nada de código.Abre Claude Desktop o Cursor: El servidor
ce3xaparecerá conectado y listo para usar con sus 27 herramientas oficiales.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 carpetaCERTIFICADO/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 ( |
🛠️ 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
verificar_conexion_ce3x(directorio_ce3x): Verificación y testeo en vivo de la instalación de CE3X v3.2, comprobandoCE3Xv3.2.exe, compilador Typstxml2cert.exe, validador RelaxNGxmlcheck.exe, base de datos de escalas oficiales (Escala/Localidades.xml) para las 32 zonas climáticas, motores climáticosCalculos/BDClimay entornos de ejecución Java.
🏛️ Datos Administrativos, Catastro y Clima
consultar_catastro(referencia_catastral): Ingesta telemática en tiempo real desde la Sede Electrónica de Catastro.determinar_zona_climatica(provincia, municipio, altitud): Clima oficial de referencia CTE DB-HE con corrección por cota.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
estimar_envolvente_por_defecto(ano_construccion, zona, superficie): Transmitancias U históricas (Pre-79, NBE-CT-79, CTE).analizar_modelo_bim_ifc(ifc_path): Cubicación paramétrica de muros, cubiertas y huecos desde modelos IFC (IfcOpenShell).analizar_plano_arquitectura_pdf(pdf_path): Extracción inteligente de superficies y carpinterías desde planos en PDF.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
analizar_ficha_equipo_clima(texto_o_ficha): Lectura de bombas de calor, calderas, potencias y SCOP/COP.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
registrar_ensayo_estanqueidad_blower_door(volumen, superficie, caudal_50pa): Ensayo Blower Door (UNE-EN ISO 9972) con cálculo de n50 y q50.contrastar_consumo_facturas_reales(consumo_teorico, electricidad, gas, gasoleo): Contraste de facturación real vs modelo normativo.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
proponer_medidas_mejora_rd390(...): Generación de paquetes de envolvente, equipos e hibridación con fotovoltaica.emitir_dictamen_subvenciones_nextgen(...): Dictamen técnico oficial con tramos del 40%, 65%, 80% (RD 853/2021) e IRPF.
📐 Envolvente, Sombras y Terciario
calcular_sombras_hueco(orientacion, ancho, alto, retranqueo, voladizo, toldo): Factor solar estacional F_sh para huecos según CTE DB-HE.calcular_sombras_obstaculo_edificio_enfrente(distancia, altura, orientacion): Ángulo alfa y factor de sombra por edificio enfrente / obstáculo remoto.calcular_parametros_terciario_local_comercial(tipo, m2, luminarias): Potencia de iluminación W/m², VEEI según DB-HE 3 y caudal RITE.configurar_perfil_tecnico_colegiado(nombre, nif, titulacion, colegio): Registro persistente de la firma y credenciales del técnico.
📐 Cálculos Normativos Especializados (ISO & CTE)
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$).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
organizar_carpeta_visita(ruta_carpeta): Auto-organizador inteligente en 5 carpetas (INFORMACION, PLANOS, FOTOS, INSTALACIONES, CERTIFICADO).auditar_carpeta_visita(ruta_carpeta): Escaneo autónomo multimodal de la visita y generación de preguntas quirúrgicas.certificar_desde_carpeta_visita(ruta_carpeta, ...): Ciclo completo que genera todos los entregables enCERTIFICADO/.calcular_calificacion_energetica(proyecto): Motor de cálculo simplificado de demandas, consumos y emisiones.generar_certificado_completo(...): Pipeline integral que emite el.cexnativo, XML oficial v3.0 y PDF de 15 páginas.
⚡ Rendimiento, Persistencia y Telemetría FastMCP
gestionar_cache_ce3x(accion, categoria): Gestión del subsistema de caché persistente SQLite local (~/.ce3x_mcp/cache.dben 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)
Available Tools
27 toolsanalizar_ficha_equipo_climaAnalizar Ficha Equipo ClimaARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| descripcion_o_ficha | Yes | 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'). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 IfcARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| ifc_path | Yes | Ruta absoluta o relativa al archivo de modelo BIM en formato IFC (.ifc, IFC2X3 o IFC4). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 PdfARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| pdf_path | Yes | Ruta absoluta o relativa al archivo PDF que contiene el plano arquitectónico de distribución. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 VisitaARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| ruta_carpeta | Yes | Ruta a la carpeta de visita técnica a auditar. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 EnergeticaARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo_acs | No | Tipo o vector energético del ACS: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', o None. | |
| tipologia | No | Tipología edificatoria: 'Bloque', 'Unifamiliar' o 'Terciario'. | Bloque |
| zona_climatica | No | Zona climática CTE DB-HE (ej. 'C1', 'D3', 'E1'). | C1 |
| superficie_util | Yes | Superficie útil habitable del edificio o vivienda en metros cuadrados (m²). | |
| ano_construccion | Yes | Año de construcción catastral del edificio. | |
| tipo_calefaccion | No | Tipo o vector energético de la calefacción: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'Biomasa', 'BombaCalor', o None. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 He4ARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| provincia | No | Provincia donde se ubica el edificio para fijar la temperatura de agua de red (ej. 'Madrid', 'A Coruña', 'Sevilla'). | A Coruña |
| tipo_edificio | No | Tipología de uso: 'ViviendaUnifamiliar', 'ViviendaBloque', 'Hotel_3_estrellas', 'Hospital', 'Residencia', 'Gimnasio'. | ViviendaBloque |
| numero_personas | No | Número de personas u ocupantes directos calculados o previstos. | |
| numero_dormitorios | No | Número de dormitorios de la vivienda (para residenciales privados). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ComercialARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo_actividad | Yes | Tipo de actividad del local o edificio terciario (ej. 'Comercial', 'Oficinas', 'Docente', 'Restauracion', 'Sanitario'). | |
| tipo_luminaria | No | Tecnología de iluminación principal: 'LED', 'Fluorescencia', 'Halogena', 'Incandescente'. | LED |
| superficie_util_m2 | Yes | Superficie útil del local comercial en metros cuadrados (m²). | |
| nivel_iluminacion_lux | No | Nivel medio de iluminancia mantenida en lux según exigencias de la actividad (CTE DB-HE3). Por defecto 500 lux. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 PvgisARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| latitud | Yes | Latitud geográfica en grados decimales (ej. 43.3623 para A Coruña, 40.4168 para Madrid). | |
| longitud | Yes | Longitud geográfica en grados decimales (ej. -8.4115 para A Coruña, -3.7038 para Madrid). | |
| azimut_grados | No | Orientación o azimut de los paneles: 0° Sur, 90° Oeste, -90° Este, 180° Norte. Por defecto 0.0° (Sur). | |
| potencia_pico_kw | No | Potencia pico de la instalación solar fotovoltaica en kilovatios (kWp). Por defecto 3.0 kWp. | |
| inclinacion_grados | No | Inclinación de los módulos solares respecto a la horizontal en grados (0 a 90°). Por defecto 35.0°. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 TermicosARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| ano_construccion | Yes | Año de construcción del edificio para asignar la transmitancia lineal de referencia según normativa histórica aplicable. | |
| longitud_pilares_m | No | Longitud total de pilares integrados en fachada exterior en metros (m). | |
| perimetro_huecos_m | No | Perímetro total de contornos de huecos y ventanas en metros (m). | |
| perimetro_forjado_m | No | Longitud total de frentes de forjado en fachada en metros (m). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 HuecoARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| orientacion | Yes | Orientación del hueco: 'Sur', 'Norte', 'Este', 'Oeste', 'Sureste', 'Suroeste', 'Noreste', 'Noroeste'. | |
| tiene_toldo | No | Indica si el hueco dispone de toldo u obstáculo móvil exterior de protección solar. | |
| alto_hueco_m | Yes | Alto de la ventana en metros (m). | |
| retranqueo_m | No | Profundidad del retranqueo de la ventana respecto al plano exterior de fachada en metros (m). | |
| ancho_hueco_m | Yes | Ancho de la ventana en metros (m). | |
| vuelo_voladizo_m | No | Saliente o vuelo del voladizo o alero superior en metros (m). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 EnfrenteARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| altura_edificio_m | Yes | Altura del edificio u obstáculo de enfrente en metros (m) medida por encima del centro del hueco evaluado. | |
| orientacion_fachada | Yes | Orientación de la fachada que recibe la sombra: 'Sur', 'Norte', 'Este', 'Oeste', 'Sureste', 'Suroeste', 'Noreste', 'Noroeste'. | |
| distancia_edificio_m | Yes | Distancia horizontal en metros (m) desde la fachada del edificio evaluado hasta el obstáculo o edificio de enfrente. | |
| descripcion_obstaculo | No | Descripción del obstáculo remoto (ej. 'Edificio de 6 plantas enfrente'). | Edificio colindante |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 Iso10077ARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| alto_m | Yes | Alto del hueco de ventana en metros (m). | |
| ancho_m | Yes | Ancho del hueco de ventana en metros (m). | |
| u_marco_w_m2k | Yes | 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). | |
| fraccion_marco | No | Fracción de superficie ocupada por el marco respecto al hueco total (0.10 a 0.50). Por defecto 0.20 (20%). | |
| u_vidrio_w_m2k | Yes | 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). | |
| tipo_intercalario | No | Tipo de espaciador o intercalario del doble acristalamiento: 'aluminio' o 'calido_warm_edge'. | aluminio |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo_acs | No | Vector de ACS: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', etc. | |
| ruta_carpeta | Yes | Ruta a la carpeta que contiene los archivos de la visita técnica. | |
| nombre_edificio | No | Nombre o denominación del edificio. | |
| tipo_calefaccion | No | Vector de calefacción: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', etc. | |
| orientacion_principal | No | Orientación predominante de la fachada principal: 'Sur', 'Norte', 'Este', 'Oeste', etc. | Sur |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Correo electrónico profesional de contacto. | ||
| telefono | No | Teléfono de contacto profesional. | |
| domicilio | No | Domicilio o dirección profesional del técnico. | |
| municipio | No | Municipio del domicilio profesional. | |
| provincia | No | Provincia del domicilio profesional. | |
| titulacion | Yes | Titulación académica habilitante (ej. 'Arquitecto Técnico', 'Ingeniero de Edificación', 'Arquitecto'). | |
| nif_tecnico | Yes | NIF o NIE del técnico certificador. | |
| razon_social | No | Razón social del estudio o empresa técnica (opcional). | |
| codigo_postal | No | Código postal profesional de 5 dígitos. | |
| nombre_tecnico | Yes | Nombre y apellidos completos del técnico certificador competente. | |
| numero_colegiado | Yes | Número de colegiado profesional. | |
| comunidad_autonoma | No | Comunidad Autónoma donde ejerce habitualmente la actividad. | Galicia |
| colegio_profesional | Yes | Nombre oficial del Colegio Profesional (ej. 'Colegio Oficial de la Arquitectura Técnica de A Coruña'). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 CatastroARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| referencia_catastral | Yes | Referencia Catastral oficial del inmueble (14 o 20 caracteres alfanuméricos, ej. '8014008NJ4081S0003RF'). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 RealesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| gasoleo_real_litros | No | Consumo real de gasóleo de calefacción de los últimos 12 meses en litros. | |
| gas_natural_real_kwh | No | Consumo real de gas natural de los últimos 12 meses en kWh. | |
| electricidad_real_kwh | No | Consumo eléctrico real facturado de los últimos 12 meses en kWh. | |
| consumo_teorico_kwh_ano | Yes | Consumo teórico anual total calculado por CE3X en kWh/año. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ClimaticaARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| altitud_m | No | Altitud del inmueble sobre el nivel del mar en metros (m). Por defecto 0.0. | |
| municipio | Yes | Nombre oficial del municipio correspondiente a la provincia. | |
| provincia | Yes | Nombre oficial de la provincia española (ej. 'Madrid', 'A Coruña', 'Sevilla', 'Barcelona'). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 NextgenARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo_acs | No | Sistema de ACS actual. | EfectoJoule |
| paquete_mejora | No | Paquete de mejora a evaluar: 1 (Envolvente SATE), 2 (Aerotermia) o 3 (Integral con Solar FV). | |
| zona_climatica | No | Zona climática CTE DB-HE. | C1 |
| superficie_util | Yes | Superficie útil habitable en m². | |
| ano_construccion | Yes | Año de construcción del inmueble. | |
| tipo_calefaccion | No | Sistema de calefacción actual. | EfectoJoule |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 DefectoARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| zona_climatica | No | Zona climática CTE DB-HE asignada (ej. 'A3', 'B4', 'C1', 'D3', 'E1'). | C1 |
| ano_construccion | Yes | Año de construcción del edificio según Catastro o escritura (ej. 1975, 1995, 2012). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo_acs | No | Sistema de agua caliente sanitaria instalado. | |
| direccion | Yes | Dirección completa del inmueble (calle, número, piso). | |
| municipio | Yes | Nombre oficial del municipio. | |
| provincia | Yes | Nombre oficial de la provincia española. | |
| tipologia | No | Tipología del edificio: 'Bloque', 'Unifamiliar' o 'Terciario'. | Bloque |
| codigo_postal | Yes | Código postal oficial de 5 dígitos (ej. '15001', '28001'). | |
| nombre_edificio | Yes | Nombre identificativo del edificio o vivienda (ej. 'Vivienda Unifamiliar Caamaño'). | |
| superficie_util | Yes | Superficie útil habitable del inmueble en metros cuadrados (m²). | |
| ano_construccion | Yes | Año de construcción del edificio según Catastro o proyecto. | |
| tipo_calefaccion | No | Sistema térmico de calefacción instalado. | |
| directorio_salida | No | Ruta al directorio donde se guardarán los archivos generados. Si es None, usa carpeta temporal. | |
| referencia_catastral | No | Referencia Catastral oficial del inmueble. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| accion | No | Acción a realizar en el subsistema de caché: 'estadisticas', 'purgar_expiradas' o 'vaciar_todo'. | estadisticas |
| categoria | No | Categoría específica de caché a gestionar ('catastro' o 'pvgis'). Opcional. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ruta_carpeta | Yes | Ruta absoluta o relativa a la carpeta raíz de la visita técnica. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 Rd390ARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo_acs | No | Sistema de ACS actual del edificio. | EfectoJoule |
| zona_climatica | No | Zona climática CTE DB-HE asignada. | C1 |
| superficie_util | Yes | Superficie útil del inmueble en m². | |
| ano_construccion | Yes | Año de construcción catastral del edificio. | |
| tipo_calefaccion | No | Sistema de calefacción actual del edificio. | EfectoJoule |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 DoorARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| caudal_50pa_m3h | Yes | Caudal de fuga de aire medido a 50 Pa de presión en metros cúbicos por hora (m³/h). | |
| volumen_neto_m3 | Yes | Volumen interno neto del espacio calefactado en metros cúbicos (m³). | |
| superficie_envolvente_m2 | Yes | Superficie total de la envolvente térmica interior en metros cuadrados (m²). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 SituARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| flujo_medio_w_m2 | Yes | Densidad de flujo de calor media medida a través del cerramiento en vatios por metro cuadrado (W/m²). | |
| elemento_analizado | No | Descripción del cerramiento ensayado (ej. 'Muro de fachada de ladrillo visto'). | Muro de fachada exterior |
| duracion_ensayo_horas | No | Duración total del registro continuo en horas (mínimo 72 h según ISO 9869-1). | |
| temp_exterior_media_c | Yes | Temperatura media del aire exterior durante el ensayo en grados Celsius (°C). | |
| temp_interior_media_c | Yes | Temperatura media del aire interior durante el ensayo en grados Celsius (°C). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fecha_visita | Yes | Fecha de la visita presencial en formato YYYY-MM-DD (ej. '2026-10-17'). | |
| pruebas_realizadas | Yes | 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'). | |
| observaciones_tecnicas | No | Observaciones técnicas adicionales recogidas durante la inspección. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 Ce3XARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| directorio_ce3x | No | Ruta absoluta al directorio de instalación de CE3X v3.2. Si es None, autodetecta en 'C:\Program Files (x86)\CE3Xv3.2'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
27 tool updates
- Changed
analizar_ficha_equipo_clima1 field changed- added
Input schema / properties / descripcion_o_ficha / descriptionAdded 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')."
- Changed
analizar_modelo_bim_ifc1 field changed- added
Input schema / properties / ifc_path / descriptionAdded value: +"Ruta absoluta o relativa al archivo de modelo BIM en formato IFC (.ifc, IFC2X3 o IFC4)."
- Changed
analizar_plano_arquitectura_pdf1 field changed- added
Input schema / properties / pdf_path / descriptionAdded value: +"Ruta absoluta o relativa al archivo PDF que contiene el plano arquitectónico de distribución."
- Changed
auditar_carpeta_visita1 field changed- added
Input schema / properties / ruta_carpeta / descriptionAdded value: +"Ruta a la carpeta de visita técnica a auditar."
- Changed
calcular_calificacion_energetica9 fields changed- added
Input schema / properties / ano_construccion / descriptionAdded value: +"Año de construcción catastral del edificio." - added
Input schema / properties / ano_construccion / maximumAdded value: +2050 - added
Input schema / properties / ano_construccion / minimumAdded value: +1800 - added
Input schema / properties / superficie_util / descriptionAdded value: +"Superficie útil habitable del edificio o vivienda en metros cuadrados (m²)." - added
Input schema / properties / superficie_util / exclusiveMinimumAdded value: +0 - added
Input schema / properties / tipo_acs / descriptionAdded value: +"Tipo o vector energético del ACS: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', o None." - added
Input schema / properties / tipo_calefaccion / descriptionAdded value: +"Tipo o vector energético de la calefacción: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'Biomasa', 'BombaCalor', o None." - added
Input schema / properties / tipologia / descriptionAdded value: +"Tipología edificatoria: 'Bloque', 'Unifamiliar' o 'Terciario'." - added
Input schema / properties / zona_climatica / descriptionAdded value: +"Zona climática CTE DB-HE (ej. 'C1', 'D3', 'E1')."
- Changed
calcular_demanda_acs_cte_he45 fields changed- added
Input schema / properties / numero_dormitorios / descriptionAdded value: +"Número de dormitorios de la vivienda (para residenciales privados)." - added
Input schema / properties / numero_dormitorios / minimumAdded value: +0 - added
Input schema / properties / numero_personas / descriptionAdded value: +"Número de personas u ocupantes directos calculados o previstos." - added
Input schema / properties / provincia / descriptionAdded value: +"Provincia donde se ubica el edificio para fijar la temperatura de agua de red (ej. 'Madrid', 'A Coruña', 'Sevilla')." - added
Input schema / properties / tipo_edificio / descriptionAdded value: +"Tipología de uso: 'ViviendaUnifamiliar', 'ViviendaBloque', 'Hotel_3_estrellas', 'Hospital', 'Residencia', 'Gimnasio'."
- Changed
calcular_parametros_terciario_local_comercial12 fields changed- removed
Input schema / properties / nivel_iluminacion_lux / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - changed
Input schema / properties / nivel_iluminacion_lux / defaultPrevious value: -nullNew value: +500 - added
Input schema / properties / nivel_iluminacion_lux / descriptionAdded value: +"Nivel medio de iluminancia mantenida en lux según exigencias de la actividad (CTE DB-HE3). Por defecto 500 lux." - added
Input schema / properties / nivel_iluminacion_lux / exclusiveMinimumAdded value: +0 - added
Input schema / properties / nivel_iluminacion_lux / typeAdded value: +"number" - removed
Input schema / properties / superficie_util_m2 / defaultRemoved value: -100 - added
Input schema / properties / superficie_util_m2 / descriptionAdded value: +"Superficie útil del local comercial en metros cuadrados (m²)." - added
Input schema / properties / superficie_util_m2 / exclusiveMinimumAdded value: +0 - removed
Input schema / properties / tipo_actividad / defaultRemoved value: -"Comercio" - added
Input schema / properties / tipo_actividad / descriptionAdded value: +"Tipo de actividad del local o edificio terciario (ej. 'Comercial', 'Oficinas', 'Docente', 'Restauracion', 'Sanitario')." - added
Input schema / properties / tipo_luminaria / descriptionAdded value: +"Tecnología de iluminación principal: 'LED', 'Fluorescencia', 'Halogena', 'Incandescente'." - added
Input schema / requiredAdded value: +[ + "tipo_actividad", + "superficie_util_m2" +]
- Changed
calcular_produccion_fotovoltaica_pvgis14 fields changed- added
Input schema / properties / azimut_grados / descriptionAdded value: +"Orientación o azimut de los paneles: 0° Sur, 90° Oeste, -90° Este, 180° Norte. Por defecto 0.0° (Sur)." - added
Input schema / properties / azimut_grados / maximumAdded value: +180 - added
Input schema / properties / azimut_grados / minimumAdded value: +-180 - added
Input schema / properties / inclinacion_grados / descriptionAdded value: +"Inclinación de los módulos solares respecto a la horizontal en grados (0 a 90°). Por defecto 35.0°." - added
Input schema / properties / inclinacion_grados / maximumAdded value: +90 - added
Input schema / properties / inclinacion_grados / minimumAdded value: +0 - added
Input schema / properties / latitud / descriptionAdded value: +"Latitud geográfica en grados decimales (ej. 43.3623 para A Coruña, 40.4168 para Madrid)." - added
Input schema / properties / latitud / maximumAdded value: +90 - added
Input schema / properties / latitud / minimumAdded value: +-90 - added
Input schema / properties / longitud / descriptionAdded value: +"Longitud geográfica en grados decimales (ej. -8.4115 para A Coruña, -3.7038 para Madrid)." - added
Input schema / properties / longitud / maximumAdded value: +180 - added
Input schema / properties / longitud / minimumAdded value: +-180 - added
Input schema / properties / potencia_pico_kw / descriptionAdded value: +"Potencia pico de la instalación solar fotovoltaica en kilovatios (kWp). Por defecto 3.0 kWp." - added
Input schema / properties / potencia_pico_kw / exclusiveMinimumAdded value: +0
- Changed
calcular_puentes_termicos12 fields changed- added
Input schema / properties / ano_construccion / descriptionAdded value: +"Año de construcción del edificio para asignar la transmitancia lineal de referencia según normativa histórica aplicable." - added
Input schema / properties / ano_construccion / maximumAdded value: +2050 - added
Input schema / properties / ano_construccion / minimumAdded value: +1800 - added
Input schema / properties / longitud_pilares_m / descriptionAdded value: +"Longitud total de pilares integrados en fachada exterior en metros (m)." - added
Input schema / properties / longitud_pilares_m / minimumAdded value: +0 - added
Input schema / properties / perimetro_forjado_m / defaultAdded value: +0 - added
Input schema / properties / perimetro_forjado_m / descriptionAdded value: +"Longitud total de frentes de forjado en fachada en metros (m)." - added
Input schema / properties / perimetro_forjado_m / minimumAdded value: +0 - added
Input schema / properties / perimetro_huecos_m / defaultAdded value: +0 - added
Input schema / properties / perimetro_huecos_m / descriptionAdded value: +"Perímetro total de contornos de huecos y ventanas en metros (m)." - added
Input schema / properties / perimetro_huecos_m / minimumAdded value: +0 - changed
Input schema / requiredPrevious value: -[ - "ano_construccion", - "perimetro_forjado_m", - "perimetro_huecos_m" -]New value: +[ + "ano_construccion" +]
- Changed
calcular_sombras_hueco14 fields changed- removed
Input schema / properties / alto_hueco_m / defaultRemoved value: -1.2 - added
Input schema / properties / alto_hueco_m / descriptionAdded value: +"Alto de la ventana en metros (m)." - added
Input schema / properties / alto_hueco_m / exclusiveMinimumAdded value: +0 - removed
Input schema / properties / ancho_hueco_m / defaultRemoved value: -1.2 - added
Input schema / properties / ancho_hueco_m / descriptionAdded value: +"Ancho de la ventana en metros (m)." - added
Input schema / properties / ancho_hueco_m / exclusiveMinimumAdded value: +0 - removed
Input schema / properties / orientacion / defaultRemoved value: -"Sur" - added
Input schema / properties / orientacion / descriptionAdded value: +"Orientación del hueco: 'Sur', 'Norte', 'Este', 'Oeste', 'Sureste', 'Suroeste', 'Noreste', 'Noroeste'." - added
Input schema / properties / retranqueo_m / descriptionAdded value: +"Profundidad del retranqueo de la ventana respecto al plano exterior de fachada en metros (m)." - added
Input schema / properties / retranqueo_m / minimumAdded value: +0 - added
Input schema / properties / tiene_toldo / descriptionAdded value: +"Indica si el hueco dispone de toldo u obstáculo móvil exterior de protección solar." - added
Input schema / properties / vuelo_voladizo_m / descriptionAdded value: +"Saliente o vuelo del voladizo o alero superior en metros (m)." - added
Input schema / properties / vuelo_voladizo_m / minimumAdded value: +0 - added
Input schema / requiredAdded value: +[ + "orientacion", + "ancho_hueco_m", + "alto_hueco_m" +]
- Changed
calcular_sombras_obstaculo_edificio_enfrente11 fields changed- added
Input schema / properties / altura_edificio_m / descriptionAdded value: +"Altura del edificio u obstáculo de enfrente en metros (m) medida por encima del centro del hueco evaluado." - added
Input schema / properties / altura_edificio_m / exclusiveMinimumAdded value: +0 - removed
Input schema / properties / descripcion_obstaculo / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - changed
Input schema / properties / descripcion_obstaculo / defaultPrevious value: -nullNew value: +"Edificio colindante" - added
Input schema / properties / descripcion_obstaculo / descriptionAdded value: +"Descripción del obstáculo remoto (ej. 'Edificio de 6 plantas enfrente')." - added
Input schema / properties / descripcion_obstaculo / typeAdded value: +"string" - added
Input schema / properties / distancia_edificio_m / descriptionAdded value: +"Distancia horizontal en metros (m) desde la fachada del edificio evaluado hasta el obstáculo o edificio de enfrente." - added
Input schema / properties / distancia_edificio_m / exclusiveMinimumAdded value: +0 - removed
Input schema / properties / orientacion_fachada / defaultRemoved value: -"Sur" - added
Input schema / properties / orientacion_fachada / descriptionAdded value: +"Orientación de la fachada que recibe la sombra: 'Sur', 'Norte', 'Este', 'Oeste', 'Sureste', 'Suroeste', 'Noreste', 'Noroeste'." - changed
Input schema / requiredPrevious value: -[ - "distancia_edificio_m", - "altura_edificio_m" -]New value: +[ + "distancia_edificio_m", + "altura_edificio_m", + "orientacion_fachada" +]
- Changed
calcular_transmitancia_ventana_iso1007714 fields changed- added
Input schema / properties / alto_m / descriptionAdded value: +"Alto del hueco de ventana en metros (m)." - added
Input schema / properties / alto_m / exclusiveMinimumAdded value: +0 - added
Input schema / properties / ancho_m / descriptionAdded value: +"Ancho del hueco de ventana en metros (m)." - added
Input schema / properties / ancho_m / exclusiveMinimumAdded value: +0 - changed
Input schema / properties / fraccion_marco / defaultPrevious value: -0.25New value: +0.2 - added
Input schema / properties / fraccion_marco / descriptionAdded value: +"Fracción de superficie ocupada por el marco respecto al hueco total (0.10 a 0.50). Por defecto 0.20 (20%)." - added
Input schema / properties / fraccion_marco / maximumAdded value: +0.6 - added
Input schema / properties / fraccion_marco / minimumAdded value: +0.05 - changed
Input schema / properties / tipo_intercalario / defaultPrevious value: -"termicamente_mejorado"New value: +"aluminio" - added
Input schema / properties / tipo_intercalario / descriptionAdded value: +"Tipo de espaciador o intercalario del doble acristalamiento: 'aluminio' o 'calido_warm_edge'." - added
Input schema / properties / u_marco_w_m2k / descriptionAdded 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)." - added
Input schema / properties / u_marco_w_m2k / exclusiveMinimumAdded value: +0 - added
Input schema / properties / u_vidrio_w_m2k / descriptionAdded 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)." - added
Input schema / properties / u_vidrio_w_m2k / exclusiveMinimumAdded value: +0
- Changed
certificar_desde_carpeta_visita5 fields changed- added
Input schema / properties / nombre_edificio / descriptionAdded value: +"Nombre o denominación del edificio." - added
Input schema / properties / orientacion_principal / descriptionAdded value: +"Orientación predominante de la fachada principal: 'Sur', 'Norte', 'Este', 'Oeste', etc." - added
Input schema / properties / ruta_carpeta / descriptionAdded value: +"Ruta a la carpeta que contiene los archivos de la visita técnica." - added
Input schema / properties / tipo_acs / descriptionAdded value: +"Vector de ACS: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', etc." - added
Input schema / properties / tipo_calefaccion / descriptionAdded value: +"Vector de calefacción: 'EfectoJoule', 'GasNatural', 'Gasoleo', 'BombaCalor', etc."
- Changed
configurar_perfil_tecnico_colegiado42 fields changed- removed
Input schema / properties / codigo_postal / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - changed
Input schema / properties / codigo_postal / defaultPrevious value: -nullNew value: +"" - added
Input schema / properties / codigo_postal / descriptionAdded value: +"Código postal profesional de 5 dígitos." - added
Input schema / properties / codigo_postal / typeAdded value: +"string" - removed
Input schema / properties / colegio_profesional / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / colegio_profesional / defaultRemoved value: -null - added
Input schema / properties / colegio_profesional / descriptionAdded value: +"Nombre oficial del Colegio Profesional (ej. 'Colegio Oficial de la Arquitectura Técnica de A Coruña')." - added
Input schema / properties / colegio_profesional / typeAdded value: +"string" - added
Input schema / properties / comunidad_autonoma / descriptionAdded value: +"Comunidad Autónoma donde ejerce habitualmente la actividad." - removed
Input schema / properties / domicilio / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - changed
Input schema / properties / domicilio / defaultPrevious value: -nullNew value: +"" - added
Input schema / properties / domicilio / descriptionAdded value: +"Domicilio o dirección profesional del técnico." - added
Input schema / properties / domicilio / typeAdded value: +"string" - removed
Input schema / properties / email / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - changed
Input schema / properties / email / defaultPrevious value: -nullNew value: +"" - added
Input schema / properties / email / descriptionAdded value: +"Correo electrónico profesional de contacto." - added
Input schema / properties / email / typeAdded value: +"string" - removed
Input schema / properties / municipio / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - changed
Input schema / properties / municipio / defaultPrevious value: -nullNew value: +"" - added
Input schema / properties / municipio / descriptionAdded value: +"Municipio del domicilio profesional." - added
Input schema / properties / municipio / typeAdded value: +"string" - added
Input schema / properties / nif_tecnico / descriptionAdded value: +"NIF o NIE del técnico certificador." - added
Input schema / properties / nombre_tecnico / descriptionAdded value: +"Nombre y apellidos completos del técnico certificador competente." - removed
Input schema / properties / numero_colegiado / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / numero_colegiado / defaultRemoved value: -null - added
Input schema / properties / numero_colegiado / descriptionAdded value: +"Número de colegiado profesional." - added
Input schema / properties / numero_colegiado / typeAdded value: +"string" - removed
Input schema / properties / provincia / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - changed
Input schema / properties / provincia / defaultPrevious value: -nullNew value: +"" - added
Input schema / properties / provincia / descriptionAdded value: +"Provincia del domicilio profesional." - added
Input schema / properties / provincia / typeAdded value: +"string" - removed
Input schema / properties / razon_social / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - changed
Input schema / properties / razon_social / defaultPrevious value: -nullNew value: +"" - added
Input schema / properties / razon_social / descriptionAdded value: +"Razón social del estudio o empresa técnica (opcional)." - added
Input schema / properties / razon_social / typeAdded value: +"string" - removed
Input schema / properties / telefono / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - changed
Input schema / properties / telefono / defaultPrevious value: -nullNew value: +"" - added
Input schema / properties / telefono / descriptionAdded value: +"Teléfono de contacto profesional." - added
Input schema / properties / telefono / typeAdded value: +"string" - removed
Input schema / properties / titulacion / defaultRemoved value: -"Arquitecto Técnico" - added
Input schema / properties / titulacion / descriptionAdded value: +"Titulación académica habilitante (ej. 'Arquitecto Técnico', 'Ingeniero de Edificación', 'Arquitecto')." - changed
Input schema / requiredPrevious value: -[ - "nombre_tecnico", - "nif_tecnico" -]New value: +[ + "nombre_tecnico", + "nif_tecnico", + "titulacion", + "colegio_profesional", + "numero_colegiado" +]
- Changed
consultar_catastro1 field changed- added
Input schema / properties / referencia_catastral / descriptionAdded value: +"Referencia Catastral oficial del inmueble (14 o 20 caracteres alfanuméricos, ej. '8014008NJ4081S0003RF')."
- Changed
contrastar_consumo_facturas_reales10 fields changed- added
Input schema / properties / consumo_teorico_kwh_ano / descriptionAdded value: +"Consumo teórico anual total calculado por CE3X en kWh/año." - added
Input schema / properties / consumo_teorico_kwh_ano / exclusiveMinimumAdded value: +0 - added
Input schema / properties / electricidad_real_kwh / defaultAdded value: +0 - added
Input schema / properties / electricidad_real_kwh / descriptionAdded value: +"Consumo eléctrico real facturado de los últimos 12 meses en kWh." - added
Input schema / properties / electricidad_real_kwh / minimumAdded value: +0 - added
Input schema / properties / gas_natural_real_kwh / descriptionAdded value: +"Consumo real de gas natural de los últimos 12 meses en kWh." - added
Input schema / properties / gas_natural_real_kwh / minimumAdded value: +0 - added
Input schema / properties / gasoleo_real_litros / descriptionAdded value: +"Consumo real de gasóleo de calefacción de los últimos 12 meses en litros." - added
Input schema / properties / gasoleo_real_litros / minimumAdded value: +0 - changed
Input schema / requiredPrevious value: -[ - "consumo_teorico_kwh_ano", - "electricidad_real_kwh" -]New value: +[ + "consumo_teorico_kwh_ano" +]
- Changed
determinar_zona_climatica5 fields changed- added
Input schema / properties / altitud_m / descriptionAdded value: +"Altitud del inmueble sobre el nivel del mar en metros (m). Por defecto 0.0." - added
Input schema / properties / altitud_m / maximumAdded value: +4000 - added
Input schema / properties / altitud_m / minimumAdded value: +-50 - added
Input schema / properties / municipio / descriptionAdded value: +"Nombre oficial del municipio correspondiente a la provincia." - added
Input schema / properties / provincia / descriptionAdded value: +"Nombre oficial de la provincia española (ej. 'Madrid', 'A Coruña', 'Sevilla', 'Barcelona')."
- Changed
emitir_dictamen_subvenciones_nextgen11 fields changed- added
Input schema / properties / ano_construccion / descriptionAdded value: +"Año de construcción del inmueble." - added
Input schema / properties / ano_construccion / maximumAdded value: +2050 - added
Input schema / properties / ano_construccion / minimumAdded value: +1800 - added
Input schema / properties / paquete_mejora / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "string" + } +] - added
Input schema / properties / paquete_mejora / descriptionAdded value: +"Paquete de mejora a evaluar: 1 (Envolvente SATE), 2 (Aerotermia) o 3 (Integral con Solar FV)." - removed
Input schema / properties / paquete_mejora / typeRemoved value: -"integer" - added
Input schema / properties / superficie_util / descriptionAdded value: +"Superficie útil habitable en m²." - added
Input schema / properties / superficie_util / exclusiveMinimumAdded value: +0 - added
Input schema / properties / tipo_acs / descriptionAdded value: +"Sistema de ACS actual." - added
Input schema / properties / tipo_calefaccion / descriptionAdded value: +"Sistema de calefacción actual." - added
Input schema / properties / zona_climatica / descriptionAdded value: +"Zona climática CTE DB-HE."
- Changed
estimar_envolvente_por_defecto4 fields changed- added
Input schema / properties / ano_construccion / descriptionAdded value: +"Año de construcción del edificio según Catastro o escritura (ej. 1975, 1995, 2012)." - added
Input schema / properties / ano_construccion / maximumAdded value: +2050 - added
Input schema / properties / ano_construccion / minimumAdded value: +1800 - added
Input schema / properties / zona_climatica / descriptionAdded value: +"Zona climática CTE DB-HE asignada (ej. 'A3', 'B4', 'C1', 'D3', 'E1')."
- Changed
generar_certificado_completo15 fields changed- added
Input schema / properties / ano_construccion / descriptionAdded value: +"Año de construcción del edificio según Catastro o proyecto." - added
Input schema / properties / ano_construccion / maximumAdded value: +2050 - added
Input schema / properties / ano_construccion / minimumAdded value: +1800 - added
Input schema / properties / codigo_postal / descriptionAdded value: +"Código postal oficial de 5 dígitos (ej. '15001', '28001')." - added
Input schema / properties / direccion / descriptionAdded value: +"Dirección completa del inmueble (calle, número, piso)." - added
Input schema / properties / directorio_salida / descriptionAdded value: +"Ruta al directorio donde se guardarán los archivos generados. Si es None, usa carpeta temporal." - added
Input schema / properties / municipio / descriptionAdded value: +"Nombre oficial del municipio." - added
Input schema / properties / nombre_edificio / descriptionAdded value: +"Nombre identificativo del edificio o vivienda (ej. 'Vivienda Unifamiliar Caamaño')." - added
Input schema / properties / provincia / descriptionAdded value: +"Nombre oficial de la provincia española." - added
Input schema / properties / referencia_catastral / descriptionAdded value: +"Referencia Catastral oficial del inmueble." - added
Input schema / properties / superficie_util / descriptionAdded value: +"Superficie útil habitable del inmueble en metros cuadrados (m²)." - added
Input schema / properties / superficie_util / exclusiveMinimumAdded value: +0 - added
Input schema / properties / tipo_acs / descriptionAdded value: +"Sistema de agua caliente sanitaria instalado." - added
Input schema / properties / tipo_calefaccion / descriptionAdded value: +"Sistema térmico de calefacción instalado." - added
Input schema / properties / tipologia / descriptionAdded value: +"Tipología del edificio: 'Bloque', 'Unifamiliar' o 'Terciario'."
- Changed
gestionar_cache_ce3x2 fields changed- added
Input schema / properties / accion / descriptionAdded value: +"Acción a realizar en el subsistema de caché: 'estadisticas', 'purgar_expiradas' o 'vaciar_todo'." - added
Input schema / properties / categoria / descriptionAdded value: +"Categoría específica de caché a gestionar ('catastro' o 'pvgis'). Opcional."
- Changed
organizar_carpeta_visita1 field changed- added
Input schema / properties / ruta_carpeta / descriptionAdded value: +"Ruta absoluta o relativa a la carpeta raíz de la visita técnica."
- Changed
proponer_medidas_mejora_rd3908 fields changed- added
Input schema / properties / ano_construccion / descriptionAdded value: +"Año de construcción catastral del edificio." - added
Input schema / properties / ano_construccion / maximumAdded value: +2050 - added
Input schema / properties / ano_construccion / minimumAdded value: +1800 - added
Input schema / properties / superficie_util / descriptionAdded value: +"Superficie útil del inmueble en m²." - added
Input schema / properties / superficie_util / exclusiveMinimumAdded value: +0 - added
Input schema / properties / tipo_acs / descriptionAdded value: +"Sistema de ACS actual del edificio." - added
Input schema / properties / tipo_calefaccion / descriptionAdded value: +"Sistema de calefacción actual del edificio." - added
Input schema / properties / zona_climatica / descriptionAdded value: +"Zona climática CTE DB-HE asignada."
- Changed
registrar_ensayo_estanqueidad_blower_door6 fields changed- added
Input schema / properties / caudal_50pa_m3h / descriptionAdded value: +"Caudal de fuga de aire medido a 50 Pa de presión en metros cúbicos por hora (m³/h)." - added
Input schema / properties / caudal_50pa_m3h / exclusiveMinimumAdded value: +0 - added
Input schema / properties / superficie_envolvente_m2 / descriptionAdded value: +"Superficie total de la envolvente térmica interior en metros cuadrados (m²)." - added
Input schema / properties / superficie_envolvente_m2 / exclusiveMinimumAdded value: +0 - added
Input schema / properties / volumen_neto_m3 / descriptionAdded value: +"Volumen interno neto del espacio calefactado en metros cúbicos (m³)." - added
Input schema / properties / volumen_neto_m3 / exclusiveMinimumAdded value: +0
- Changed
registrar_ensayo_flujometria_termica_in_situ8 fields changed- added
Input schema / properties / duracion_ensayo_horas / descriptionAdded value: +"Duración total del registro continuo en horas (mínimo 72 h según ISO 9869-1)." - added
Input schema / properties / duracion_ensayo_horas / minimumAdded value: +24 - changed
Input schema / properties / elemento_analizado / defaultPrevious value: -"Fachada principal"New value: +"Muro de fachada exterior" - added
Input schema / properties / elemento_analizado / descriptionAdded value: +"Descripción del cerramiento ensayado (ej. 'Muro de fachada de ladrillo visto')." - added
Input schema / properties / flujo_medio_w_m2 / descriptionAdded value: +"Densidad de flujo de calor media medida a través del cerramiento en vatios por metro cuadrado (W/m²)." - added
Input schema / properties / flujo_medio_w_m2 / exclusiveMinimumAdded value: +0 - added
Input schema / properties / temp_exterior_media_c / descriptionAdded value: +"Temperatura media del aire exterior durante el ensayo en grados Celsius (°C)." - added
Input schema / properties / temp_interior_media_c / descriptionAdded value: +"Temperatura media del aire interior durante el ensayo en grados Celsius (°C)."
- Changed
registrar_visita_presencial10 fields changed- added
Input schema / properties / fecha_visita / descriptionAdded value: +"Fecha de la visita presencial en formato YYYY-MM-DD (ej. '2026-10-17')." - removed
Input schema / properties / observaciones_tecnicas / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - changed
Input schema / properties / observaciones_tecnicas / defaultPrevious value: -nullNew value: +"" - added
Input schema / properties / observaciones_tecnicas / descriptionAdded value: +"Observaciones técnicas adicionales recogidas durante la inspección." - added
Input schema / properties / observaciones_tecnicas / typeAdded value: +"string" - removed
Input schema / properties / pruebas_realizadas / anyOfRemoved value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Input schema / properties / pruebas_realizadas / defaultRemoved value: -null - added
Input schema / properties / pruebas_realizadas / descriptionAdded 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')." - added
Input schema / properties / pruebas_realizadas / typeAdded value: +"string" - changed
Input schema / requiredPrevious value: -[ - "fecha_visita" -]New value: +[ + "fecha_visita", + "pruebas_realizadas" +]
- Changed
verificar_conexion_ce3x1 field changed- added
Input schema / properties / directorio_ce3x / descriptionAdded value: +"Ruta absoluta al directorio de instalación de CE3X v3.2. Si es None, autodetecta en 'C:\\Program Files (x86)\\CE3Xv3.2'."
27 tool updates
v1.5.1- First observed
analizar_ficha_equipo_clima - First observed
analizar_modelo_bim_ifc - First observed
analizar_plano_arquitectura_pdf - First observed
auditar_carpeta_visita - First observed
calcular_calificacion_energetica - First observed
calcular_demanda_acs_cte_he4 - First observed
calcular_parametros_terciario_local_comercial - First observed
calcular_produccion_fotovoltaica_pvgis - First observed
calcular_puentes_termicos - First observed
calcular_sombras_hueco - First observed
calcular_sombras_obstaculo_edificio_enfrente - First observed
calcular_transmitancia_ventana_iso10077 - First observed
certificar_desde_carpeta_visita - First observed
configurar_perfil_tecnico_colegiado - First observed
consultar_catastro - First observed
contrastar_consumo_facturas_reales - First observed
determinar_zona_climatica - First observed
emitir_dictamen_subvenciones_nextgen - First observed
estimar_envolvente_por_defecto - First observed
generar_certificado_completo - First observed
gestionar_cache_ce3x - First observed
organizar_carpeta_visita - First observed
proponer_medidas_mejora_rd390 - First observed
registrar_ensayo_estanqueidad_blower_door - First observed
registrar_ensayo_flujometria_termica_in_situ - First observed
registrar_visita_presencial - First observed
verificar_conexion_ce3x
TDQS
Scored across 27 tools
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.
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.
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.
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
Related MCP Connectors
AI Hub for AEC — 50+ 3D formats, clash detection, ACC integration via Autodesk Platform Services.
- FormistOAuthai.formist
AI agent that fills CBAM, GHG, CSRD/ESRS, EU Taxonomy, CDP and other sustainability forms.
AI takeoff for construction: turn PDF blueprints into structured, traceable quantities.
- KeyioOAuthcom.gokeyio
Run your rentals in Spain from your AI assistant: SES filings, VeriFactu invoices, rent, taxes.
Related MCP Servers
- AlicenseAqualityAmaintenanceNode.js server implementing Model Context Protocol (MCP) for filesystem operations.614584,188 npm91,276-
- AlicenseAqualityAmaintenanceThis server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.41234,032 PyPI91,276MIT
- FlicenseNot gradedqualityDmaintenanceEnables 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.-

idfkit-mcpofficial
AlicenseAqualityAmaintenanceEnables AI assistants to create, edit, and simulate EnergyPlus building energy models via natural language. Supports schema exploration, model editing, simulation execution, and documentation search.394MIT