ce3x-mcp-server 1.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ce3x_mcp_server-1.3.0/LICENSE +21 -0
- ce3x_mcp_server-1.3.0/PKG-INFO +249 -0
- ce3x_mcp_server-1.3.0/README.md +215 -0
- ce3x_mcp_server-1.3.0/pyproject.toml +62 -0
- ce3x_mcp_server-1.3.0/setup.cfg +4 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/__init__.py +9 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/core/__init__.py +3 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/core/models.py +90 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/server.py +746 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/__init__.py +3 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/bim_parser.py +129 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/catastro.py +49 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/cex_codec.py +85 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/cte_climate.py +173 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/equipment_parser.py +81 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/improvement_engine.py +79 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/libraries.py +159 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/nextgen_report.py +96 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/pdf_compiler.py +56 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/plan_parser.py +95 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/pvgis_client.py +74 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/smart_folder_auditor.py +644 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/technician_profile.py +67 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/trials_and_tests.py +309 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp/services/xml_builder.py +96 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp_server.egg-info/PKG-INFO +249 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp_server.egg-info/SOURCES.txt +30 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp_server.egg-info/dependency_links.txt +1 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp_server.egg-info/entry_points.txt +3 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp_server.egg-info/requires.txt +15 -0
- ce3x_mcp_server-1.3.0/src/ce3x_mcp_server.egg-info/top_level.txt +1 -0
- ce3x_mcp_server-1.3.0/tests/test_ce3x_mcp.py +225 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Jose Manuel Caamaño González
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ce3x-mcp-server
|
|
3
|
+
Version: 1.3.0
|
|
4
|
+
Summary: Servidor MCP Oficial para Certificación de Eficiencia Energética de Edificios (CE3X / CTE DB-HE / RD 390/2021)
|
|
5
|
+
Author-email: Jose Manuel Caamaño González <jmc@example.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Keywords: mcp,model-context-protocol,ce3x,eficiencia-energetica,cte-db-he,contech,bim,certificacion-energetica,typst
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
11
|
+
Classifier: Topic :: Scientific/Engineering
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: fastmcp>=0.4.0
|
|
21
|
+
Requires-Dist: pydantic>=2.6.0
|
|
22
|
+
Requires-Dist: lxml>=5.1.0
|
|
23
|
+
Requires-Dist: requests>=2.31.0
|
|
24
|
+
Requires-Dist: pymupdf>=1.24.0
|
|
25
|
+
Requires-Dist: shapely>=2.0.0
|
|
26
|
+
Requires-Dist: rich>=13.7.0
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
29
|
+
Requires-Dist: black>=24.0.0; extra == "dev"
|
|
30
|
+
Requires-Dist: ruff>=0.3.0; extra == "dev"
|
|
31
|
+
Provides-Extra: bim
|
|
32
|
+
Requires-Dist: ifcopenshell>=0.7.0; extra == "bim"
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
|
|
35
|
+
# 🏢 CE3X-MCP-Server (Certificación Energética con IA & FastMCP)
|
|
36
|
+
|
|
37
|
+
| 🏗️ Perfil & ConTech | 📈 Repositorio & Enlaces |
|
|
38
|
+
| :--- | :--- |
|
|
39
|
+
|  <br>  <br>  <br>  <br>  <br>  <br>  <br>  | [](https://github.com/jmcaamanog/CE3X-MCP-Server/releases/latest) <br> [](https://github.com/jmcaamanog/CE3X-MCP-Server/stargazers) <br> [](./LICENSE) <br> [](https://www.linkedin.com/in/jmcaamanog/) <br> [](https://jmcaamanog.pages.dev) |
|
|
40
|
+
|
|
41
|
+
### Servidor MCP Oficial para Automatizar Certificados de Eficiencia Energética con IA (Claude, Gemini, Cursor)
|
|
42
|
+
*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.*
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## ⚡ Enlaces y Accesos Rápidos
|
|
47
|
+
|
|
48
|
+
| 🌟 Recurso | 🚀 Acción / Enlace | 📝 Descripción |
|
|
49
|
+
| :--- | :--- | :--- |
|
|
50
|
+
| **Estructura de Visita** | 📁 **[Ver Guía 5 Carpetas](./docs/ESTRUCTURA_CARPETA_VISITA.md)** | Arquitectura canónica para organizar fotos, planos, notas y certificados. |
|
|
51
|
+
| **Estudio de Conectores** | 🌐 **[Ver Estudio Integral de Conexiones](./docs/ESTUDIO_INTEGRAL_CONECTORES_CE3X_MCP.md)** | Mapeo pantalla a pantalla, botón a botón y ensayos de CE3X a conectores de IA. |
|
|
52
|
+
| **Documento de Análisis** | 📄 **[Ver Análisis CE3X & MCP](./docs/analisis_ce3x_mcp_framework.md)** | Análisis exhaustivo del software, manuales técnicos y arquitectura modular. |
|
|
53
|
+
| **Plantilla de Campo** | 📋 **[Ver Plantilla de Toma de Datos](./docs/PLANTILLA_TOMA_DATOS_CEE.md)** | Formulario estructurado para visitas de campo y dictado por voz. |
|
|
54
|
+
| **Guía para tu IA** | 🧠 **[Ver Instrucciones para la IA](./docs/GUIA_PROMPTS_Y_INSTRUCCIONES_IA.md)** | System prompts y protocolo de primer contacto para Claude, Gemini y Cursor. |
|
|
55
|
+
| **Historial de Versiones** | 📜 **[Ver Changelog](./CHANGELOG.md)** | Registro detallado de versiones y mejoras implementadas. |
|
|
56
|
+
| **Código de Conducta** | 🤝 **[Ver Código de Conducta](./CODE_OF_CONDUCT.md)** | El manual del buen rollo y convivencia comunitaria. |
|
|
57
|
+
| **Guía de Contribución** | 🛠️ **[Ver Cómo Contribuir](./CONTRIBUTING.md)** | Pautas para reportar bugs, proponer ideas y enviar Pull Requests. |
|
|
58
|
+
| **Seguridad** | 🛡️ **[Ver Política de Seguridad](./SECURITY.md)** | Divulgación responsable y reporte de vulnerabilidades. |
|
|
59
|
+
| **Repositorio GitHub** | 💻 **[GitHub jmcaamanog](https://github.com/jmcaamanog/CE3X-MCP-Server)** | Código fuente, issues y lanzamientos oficiales. |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 👥 Perfiles y Modos de Uso para Cualquier Profesional
|
|
64
|
+
|
|
65
|
+
| Perfil / Modo | Icono | Descripción del Flujo | Entrada Requerida | Entregables Generados |
|
|
66
|
+
| :--- | :---: | :--- | :--- | :--- |
|
|
67
|
+
| **Modo Express (Datos Mínimos)** | ⚡ | **Certificación ultrarrápida en segundos** interactuando por chat. La IA infiere automáticamente la envolvente y el clima normativo oficial. | Referencia Catastral (o municipio) + año + superficie + climatización básica. | Archivo `.cex`, XML oficial v3.0 homologado y **PDF oficial de 15 páginas**. |
|
|
68
|
+
| **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). |
|
|
69
|
+
| **Modo BIM & Auditoría NextGen** | 🏗️ | **Conexión directa con modelos BIM** y justificación automática de subvenciones públicas y deducciones IRPF. | Archivo BIM `.ifc` (Revit, Archicad, CYPE) o proyecto de rehabilitación. | Cubicación BIM con `IfcOpenShell`, cálculo solar satelital PVGIS, salto a letra A y **Dictamen NextGen (RD 853/2021)**. |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 🚀 Guía Rápida para Usuarios Noveles (Empieza en 3 Pasos)
|
|
74
|
+
|
|
75
|
+
> [!IMPORTANT] 📥
|
|
76
|
+
> ### 🎯 ¿No quieres lidiar con consolas, comandos ni archivos JSON?
|
|
77
|
+
> Sigue estos 3 pasos inmediatos para tener la herramienta funcionando en 1 minuto:
|
|
78
|
+
>
|
|
79
|
+
> 1. **Doble Clic al Instalador:** Haz doble clic sobre [`instalar_en_claude_desktop.bat`](./instalar_en_claude_desktop.bat) en la raíz del repositorio. Configurará Claude Desktop y Cursor automáticamente sin tocar nada de código.
|
|
80
|
+
> 2. **Abre Claude Desktop o Cursor:** El servidor `ce3x` aparecerá conectado y listo para usar con sus **22 herramientas oficiales**.
|
|
81
|
+
> 3. **Escribe en el chat:**
|
|
82
|
+
> > *"Certifica la vivienda de la carpeta `ejemplos/visita_vivienda_ejemplo`"*
|
|
83
|
+
> *(Verás cómo la IA organiza las fotos, planos y notas, y genera la carpeta `CERTIFICADO/` con los archivos oficiales).*
|
|
84
|
+
>
|
|
85
|
+
> ---
|
|
86
|
+
>
|
|
87
|
+
> 📦 **¿Prefieres usar PyPI / `uvx` directamente sin clonar nada?**
|
|
88
|
+
> Copia estas 4 líneas en tu archivo de configuración de Claude Desktop o Cursor:
|
|
89
|
+
> ```json
|
|
90
|
+
> "ce3x": {
|
|
91
|
+
> "command": "uvx",
|
|
92
|
+
> "args": ["ce3x-mcp"]
|
|
93
|
+
> }
|
|
94
|
+
> ```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 🔌 Configuración Inmediata en Clientes de IA
|
|
99
|
+
|
|
100
|
+
### 1. Claude Desktop (`claude_desktop_config.json`)
|
|
101
|
+
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:
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"mcpServers": {
|
|
106
|
+
"ce3x": {
|
|
107
|
+
"command": "uvx",
|
|
108
|
+
"args": [
|
|
109
|
+
"--from",
|
|
110
|
+
"git+https://github.com/jmcaamanog/CE3X-MCP-Server.git",
|
|
111
|
+
"ce3x-mcp"
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 2. Cursor IDE (`.cursor/mcp.json` o Settings > MCP)
|
|
119
|
+
En Cursor, ve a **Features > MCP Servers** o añade en tu archivo `.cursor/mcp.json`:
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"mcpServers": {
|
|
124
|
+
"ce3x": {
|
|
125
|
+
"command": "uvx",
|
|
126
|
+
"args": [
|
|
127
|
+
"--from",
|
|
128
|
+
"git+https://github.com/jmcaamanog/CE3X-MCP-Server.git",
|
|
129
|
+
"ce3x-mcp"
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 3. Antigravity IDE / Gemini (`~/.gemini/config/mcp_config.json`)
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"mcpServers": {
|
|
140
|
+
"ce3x": {
|
|
141
|
+
"command": "uvx",
|
|
142
|
+
"args": [
|
|
143
|
+
"--from",
|
|
144
|
+
"git+https://github.com/jmcaamanog/CE3X-MCP-Server.git",
|
|
145
|
+
"ce3x-mcp"
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### 4. Instalación Local para Desarrollo (Opcional con `pip`)
|
|
153
|
+
Si prefieres tener el repositorio clonado y trabajar en local:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
git clone https://github.com/jmcaamanog/CE3X-MCP-Server.git
|
|
157
|
+
cd CE3X-MCP-Server
|
|
158
|
+
python -m venv .venv
|
|
159
|
+
.venv\Scripts\activate
|
|
160
|
+
pip install -e .
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Y en tu archivo de configuración MCP indicas el intérprete local:
|
|
164
|
+
|
|
165
|
+
```json
|
|
166
|
+
{
|
|
167
|
+
"mcpServers": {
|
|
168
|
+
"ce3x": {
|
|
169
|
+
"command": "C:\\ruta\\al\\repositorio\\.venv\\Scripts\\python.exe",
|
|
170
|
+
"args": [
|
|
171
|
+
"-I",
|
|
172
|
+
"-m",
|
|
173
|
+
"ce3x_mcp.server"
|
|
174
|
+
],
|
|
175
|
+
"env": {
|
|
176
|
+
"PYTHONPATH": "C:\\ruta\\al\\repositorio\\src"
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 🌟 Características Principales (ConTech & AI Cert)
|
|
186
|
+
|
|
187
|
+
| Módulo | Icono | Funcionalidades Destacadas |
|
|
188
|
+
| :--- | :---: | :--- |
|
|
189
|
+
| **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. |
|
|
190
|
+
| **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). |
|
|
191
|
+
| **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. |
|
|
192
|
+
| **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. |
|
|
193
|
+
| **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. |
|
|
194
|
+
| **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. |
|
|
195
|
+
| **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**. |
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 🛠️ Catálogo Completo de 22 Herramientas MCP Disponibles
|
|
200
|
+
|
|
201
|
+
El servidor implementa el mapeo total y exhaustivo de CE3X v3.2, manuales técnicos y normativas oficiales:
|
|
202
|
+
|
|
203
|
+
### 🏛️ Datos Administrativos, Catastro y Clima
|
|
204
|
+
1. `consultar_catastro(referencia_catastral)`: Ingesta telemática en tiempo real desde la Sede Electrónica de Catastro.
|
|
205
|
+
2. `determinar_zona_climatica(provincia, municipio, altitud)`: Clima oficial de referencia CTE DB-HE con corrección por cota.
|
|
206
|
+
3. `registrar_visita_presencial(fecha_visita, pruebas, observaciones)`: Registro formal in situ para el Anexo IV obligatorio (RD 390/2021 Art. 8).
|
|
207
|
+
|
|
208
|
+
### 📐 Envolvente Térmica, BIM y Planos
|
|
209
|
+
4. `estimar_envolvente_por_defecto(ano_construccion, zona, superficie)`: Transmitancias U históricas (Pre-79, NBE-CT-79, CTE).
|
|
210
|
+
5. `analizar_modelo_bim_ifc(ifc_path)`: Cubicación paramétrica de muros, cubiertas y huecos desde modelos IFC (IfcOpenShell).
|
|
211
|
+
6. `analizar_plano_arquitectura_pdf(pdf_path)`: Extracción inteligente de superficies y carpinterías desde planos en PDF.
|
|
212
|
+
7. `calcular_puentes_termicos(ano, perimetro_forjado, perimetro_huecos, pilares)`: Transmitancias lineales psi (W/m·K) según DA DB-HE / 3.
|
|
213
|
+
|
|
214
|
+
### ⚙️ Instalaciones, Equipos y Renovables
|
|
215
|
+
8. `analizar_ficha_equipo_clima(texto_o_ficha)`: Lectura de bombas de calor, calderas, potencias y SCOP/COP.
|
|
216
|
+
9. `calcular_produccion_fotovoltaica_pvgis(lat, lon, kwp)`: Simulación satelital en tiempo real con datos de la Comisión Europea.
|
|
217
|
+
|
|
218
|
+
### 🧪 Ensayos Oficiales y Contraste de Consumos
|
|
219
|
+
10. `registrar_ensayo_estanqueidad_blower_door(volumen, superficie, caudal_50pa)`: Ensayo Blower Door (UNE-EN ISO 9972) con cálculo de n50 y q50.
|
|
220
|
+
11. `contrastar_consumo_facturas_reales(consumo_teorico, electricidad, gas, gasoleo)`: Contraste de facturación real vs modelo normativo.
|
|
221
|
+
|
|
222
|
+
### 💡 Rehabilitación y Subvenciones Públicas
|
|
223
|
+
12. `proponer_medidas_mejora_rd390(...)`: Generación de paquetes de envolvente, equipos e hibridación con fotovoltaica.
|
|
224
|
+
13. `emitir_dictamen_subvenciones_nextgen(...)`: Dictamen técnico oficial con tramos del 40%, 65%, 80% (RD 853/2021) e IRPF.
|
|
225
|
+
|
|
226
|
+
### 📐 Envolvente, Sombras y Terciario
|
|
227
|
+
14. `calcular_sombras_hueco(orientacion, ancho, alto, retranqueo, voladizo, toldo)`: Factor solar estacional F_sh para huecos según CTE DB-HE.
|
|
228
|
+
15. `calcular_sombras_obstaculo_edificio_enfrente(distancia, altura, orientacion)`: Ángulo alfa y factor de sombra por edificio enfrente / obstáculo remoto.
|
|
229
|
+
16. `calcular_parametros_terciario_local_comercial(tipo, m2, luminarias)`: Potencia de iluminación W/m², VEEI según DB-HE 3 y caudal RITE.
|
|
230
|
+
17. `configurar_perfil_tecnico_colegiado(nombre, nif, titulacion, colegio)`: Registro persistente de la firma y credenciales del técnico.
|
|
231
|
+
|
|
232
|
+
### 📂 Gestión Integral de Carpeta de Visita y Entregables
|
|
233
|
+
18. `organizar_carpeta_visita(ruta_carpeta)`: Auto-organizador inteligente en 5 carpetas (INFORMACION, PLANOS, FOTOS, INSTALACIONES, CERTIFICADO).
|
|
234
|
+
19. `auditar_carpeta_visita(ruta_carpeta)`: Escaneo autónomo multimodal de la visita y generación de preguntas quirúrgicas.
|
|
235
|
+
20. `certificar_desde_carpeta_visita(ruta_carpeta, ...)`: Ciclo completo que genera todos los entregables en `CERTIFICADO/`.
|
|
236
|
+
21. `calcular_calificacion_energetica(proyecto)`: Motor de cálculo simplificado de demandas, consumos y emisiones.
|
|
237
|
+
22. `generar_certificado_completo(...)`: Pipeline integral que emite el `.cex` nativo, XML oficial v3.0 y PDF de 15 páginas.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
## 👨💻 Autor y Dirección Técnica
|
|
244
|
+
|
|
245
|
+
**Jose Manuel Caamaño González** | Arquitecto Técnico & BIM Manager
|
|
246
|
+
Digital Product Lead | ConTech & Digital Twin SaaS | Data Analytics (SQL, Power BI)
|
|
247
|
+
|
|
248
|
+
Hecho con código y café desde A Coruña. ☕
|
|
249
|
+
[LinkedIn](https://www.linkedin.com/in/jmcaamanog/) · [Web](https://jmcaamanog.pages.dev)
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# 🏢 CE3X-MCP-Server (Certificación Energética con IA & FastMCP)
|
|
2
|
+
|
|
3
|
+
| 🏗️ Perfil & ConTech | 📈 Repositorio & Enlaces |
|
|
4
|
+
| :--- | :--- |
|
|
5
|
+
|  <br>  <br>  <br>  <br>  <br>  <br>  <br>  | [](https://github.com/jmcaamanog/CE3X-MCP-Server/releases/latest) <br> [](https://github.com/jmcaamanog/CE3X-MCP-Server/stargazers) <br> [](./LICENSE) <br> [](https://www.linkedin.com/in/jmcaamanog/) <br> [](https://jmcaamanog.pages.dev) |
|
|
6
|
+
|
|
7
|
+
### Servidor MCP Oficial para Automatizar Certificados de Eficiencia Energética con IA (Claude, Gemini, Cursor)
|
|
8
|
+
*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.*
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## ⚡ Enlaces y Accesos Rápidos
|
|
13
|
+
|
|
14
|
+
| 🌟 Recurso | 🚀 Acción / Enlace | 📝 Descripción |
|
|
15
|
+
| :--- | :--- | :--- |
|
|
16
|
+
| **Estructura de Visita** | 📁 **[Ver Guía 5 Carpetas](./docs/ESTRUCTURA_CARPETA_VISITA.md)** | Arquitectura canónica para organizar fotos, planos, notas y certificados. |
|
|
17
|
+
| **Estudio de Conectores** | 🌐 **[Ver Estudio Integral de Conexiones](./docs/ESTUDIO_INTEGRAL_CONECTORES_CE3X_MCP.md)** | Mapeo pantalla a pantalla, botón a botón y ensayos de CE3X a conectores de IA. |
|
|
18
|
+
| **Documento de Análisis** | 📄 **[Ver Análisis CE3X & MCP](./docs/analisis_ce3x_mcp_framework.md)** | Análisis exhaustivo del software, manuales técnicos y arquitectura modular. |
|
|
19
|
+
| **Plantilla de Campo** | 📋 **[Ver Plantilla de Toma de Datos](./docs/PLANTILLA_TOMA_DATOS_CEE.md)** | Formulario estructurado para visitas de campo y dictado por voz. |
|
|
20
|
+
| **Guía para tu IA** | 🧠 **[Ver Instrucciones para la IA](./docs/GUIA_PROMPTS_Y_INSTRUCCIONES_IA.md)** | System prompts y protocolo de primer contacto para Claude, Gemini y Cursor. |
|
|
21
|
+
| **Historial de Versiones** | 📜 **[Ver Changelog](./CHANGELOG.md)** | Registro detallado de versiones y mejoras implementadas. |
|
|
22
|
+
| **Código de Conducta** | 🤝 **[Ver Código de Conducta](./CODE_OF_CONDUCT.md)** | El manual del buen rollo y convivencia comunitaria. |
|
|
23
|
+
| **Guía de Contribución** | 🛠️ **[Ver Cómo Contribuir](./CONTRIBUTING.md)** | Pautas para reportar bugs, proponer ideas y enviar Pull Requests. |
|
|
24
|
+
| **Seguridad** | 🛡️ **[Ver Política de Seguridad](./SECURITY.md)** | Divulgación responsable y reporte de vulnerabilidades. |
|
|
25
|
+
| **Repositorio GitHub** | 💻 **[GitHub jmcaamanog](https://github.com/jmcaamanog/CE3X-MCP-Server)** | Código fuente, issues y lanzamientos oficiales. |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 👥 Perfiles y Modos de Uso para Cualquier Profesional
|
|
30
|
+
|
|
31
|
+
| Perfil / Modo | Icono | Descripción del Flujo | Entrada Requerida | Entregables Generados |
|
|
32
|
+
| :--- | :---: | :--- | :--- | :--- |
|
|
33
|
+
| **Modo Express (Datos Mínimos)** | ⚡ | **Certificación ultrarrápida en segundos** interactuando por chat. La IA infiere automáticamente la envolvente y el clima normativo oficial. | Referencia Catastral (o municipio) + año + superficie + climatización básica. | Archivo `.cex`, XML oficial v3.0 homologado y **PDF oficial de 15 páginas**. |
|
|
34
|
+
| **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). |
|
|
35
|
+
| **Modo BIM & Auditoría NextGen** | 🏗️ | **Conexión directa con modelos BIM** y justificación automática de subvenciones públicas y deducciones IRPF. | Archivo BIM `.ifc` (Revit, Archicad, CYPE) o proyecto de rehabilitación. | Cubicación BIM con `IfcOpenShell`, cálculo solar satelital PVGIS, salto a letra A y **Dictamen NextGen (RD 853/2021)**. |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 🚀 Guía Rápida para Usuarios Noveles (Empieza en 3 Pasos)
|
|
40
|
+
|
|
41
|
+
> [!IMPORTANT] 📥
|
|
42
|
+
> ### 🎯 ¿No quieres lidiar con consolas, comandos ni archivos JSON?
|
|
43
|
+
> Sigue estos 3 pasos inmediatos para tener la herramienta funcionando en 1 minuto:
|
|
44
|
+
>
|
|
45
|
+
> 1. **Doble Clic al Instalador:** Haz doble clic sobre [`instalar_en_claude_desktop.bat`](./instalar_en_claude_desktop.bat) en la raíz del repositorio. Configurará Claude Desktop y Cursor automáticamente sin tocar nada de código.
|
|
46
|
+
> 2. **Abre Claude Desktop o Cursor:** El servidor `ce3x` aparecerá conectado y listo para usar con sus **22 herramientas oficiales**.
|
|
47
|
+
> 3. **Escribe en el chat:**
|
|
48
|
+
> > *"Certifica la vivienda de la carpeta `ejemplos/visita_vivienda_ejemplo`"*
|
|
49
|
+
> *(Verás cómo la IA organiza las fotos, planos y notas, y genera la carpeta `CERTIFICADO/` con los archivos oficiales).*
|
|
50
|
+
>
|
|
51
|
+
> ---
|
|
52
|
+
>
|
|
53
|
+
> 📦 **¿Prefieres usar PyPI / `uvx` directamente sin clonar nada?**
|
|
54
|
+
> Copia estas 4 líneas en tu archivo de configuración de Claude Desktop o Cursor:
|
|
55
|
+
> ```json
|
|
56
|
+
> "ce3x": {
|
|
57
|
+
> "command": "uvx",
|
|
58
|
+
> "args": ["ce3x-mcp"]
|
|
59
|
+
> }
|
|
60
|
+
> ```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 🔌 Configuración Inmediata en Clientes de IA
|
|
65
|
+
|
|
66
|
+
### 1. Claude Desktop (`claude_desktop_config.json`)
|
|
67
|
+
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:
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"mcpServers": {
|
|
72
|
+
"ce3x": {
|
|
73
|
+
"command": "uvx",
|
|
74
|
+
"args": [
|
|
75
|
+
"--from",
|
|
76
|
+
"git+https://github.com/jmcaamanog/CE3X-MCP-Server.git",
|
|
77
|
+
"ce3x-mcp"
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 2. Cursor IDE (`.cursor/mcp.json` o Settings > MCP)
|
|
85
|
+
En Cursor, ve a **Features > MCP Servers** o añade en tu archivo `.cursor/mcp.json`:
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"mcpServers": {
|
|
90
|
+
"ce3x": {
|
|
91
|
+
"command": "uvx",
|
|
92
|
+
"args": [
|
|
93
|
+
"--from",
|
|
94
|
+
"git+https://github.com/jmcaamanog/CE3X-MCP-Server.git",
|
|
95
|
+
"ce3x-mcp"
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 3. Antigravity IDE / Gemini (`~/.gemini/config/mcp_config.json`)
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"mcpServers": {
|
|
106
|
+
"ce3x": {
|
|
107
|
+
"command": "uvx",
|
|
108
|
+
"args": [
|
|
109
|
+
"--from",
|
|
110
|
+
"git+https://github.com/jmcaamanog/CE3X-MCP-Server.git",
|
|
111
|
+
"ce3x-mcp"
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 4. Instalación Local para Desarrollo (Opcional con `pip`)
|
|
119
|
+
Si prefieres tener el repositorio clonado y trabajar en local:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
git clone https://github.com/jmcaamanog/CE3X-MCP-Server.git
|
|
123
|
+
cd CE3X-MCP-Server
|
|
124
|
+
python -m venv .venv
|
|
125
|
+
.venv\Scripts\activate
|
|
126
|
+
pip install -e .
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Y en tu archivo de configuración MCP indicas el intérprete local:
|
|
130
|
+
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"mcpServers": {
|
|
134
|
+
"ce3x": {
|
|
135
|
+
"command": "C:\\ruta\\al\\repositorio\\.venv\\Scripts\\python.exe",
|
|
136
|
+
"args": [
|
|
137
|
+
"-I",
|
|
138
|
+
"-m",
|
|
139
|
+
"ce3x_mcp.server"
|
|
140
|
+
],
|
|
141
|
+
"env": {
|
|
142
|
+
"PYTHONPATH": "C:\\ruta\\al\\repositorio\\src"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## 🌟 Características Principales (ConTech & AI Cert)
|
|
152
|
+
|
|
153
|
+
| Módulo | Icono | Funcionalidades Destacadas |
|
|
154
|
+
| :--- | :---: | :--- |
|
|
155
|
+
| **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. |
|
|
156
|
+
| **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). |
|
|
157
|
+
| **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. |
|
|
158
|
+
| **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. |
|
|
159
|
+
| **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. |
|
|
160
|
+
| **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. |
|
|
161
|
+
| **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**. |
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 🛠️ Catálogo Completo de 22 Herramientas MCP Disponibles
|
|
166
|
+
|
|
167
|
+
El servidor implementa el mapeo total y exhaustivo de CE3X v3.2, manuales técnicos y normativas oficiales:
|
|
168
|
+
|
|
169
|
+
### 🏛️ Datos Administrativos, Catastro y Clima
|
|
170
|
+
1. `consultar_catastro(referencia_catastral)`: Ingesta telemática en tiempo real desde la Sede Electrónica de Catastro.
|
|
171
|
+
2. `determinar_zona_climatica(provincia, municipio, altitud)`: Clima oficial de referencia CTE DB-HE con corrección por cota.
|
|
172
|
+
3. `registrar_visita_presencial(fecha_visita, pruebas, observaciones)`: Registro formal in situ para el Anexo IV obligatorio (RD 390/2021 Art. 8).
|
|
173
|
+
|
|
174
|
+
### 📐 Envolvente Térmica, BIM y Planos
|
|
175
|
+
4. `estimar_envolvente_por_defecto(ano_construccion, zona, superficie)`: Transmitancias U históricas (Pre-79, NBE-CT-79, CTE).
|
|
176
|
+
5. `analizar_modelo_bim_ifc(ifc_path)`: Cubicación paramétrica de muros, cubiertas y huecos desde modelos IFC (IfcOpenShell).
|
|
177
|
+
6. `analizar_plano_arquitectura_pdf(pdf_path)`: Extracción inteligente de superficies y carpinterías desde planos en PDF.
|
|
178
|
+
7. `calcular_puentes_termicos(ano, perimetro_forjado, perimetro_huecos, pilares)`: Transmitancias lineales psi (W/m·K) según DA DB-HE / 3.
|
|
179
|
+
|
|
180
|
+
### ⚙️ Instalaciones, Equipos y Renovables
|
|
181
|
+
8. `analizar_ficha_equipo_clima(texto_o_ficha)`: Lectura de bombas de calor, calderas, potencias y SCOP/COP.
|
|
182
|
+
9. `calcular_produccion_fotovoltaica_pvgis(lat, lon, kwp)`: Simulación satelital en tiempo real con datos de la Comisión Europea.
|
|
183
|
+
|
|
184
|
+
### 🧪 Ensayos Oficiales y Contraste de Consumos
|
|
185
|
+
10. `registrar_ensayo_estanqueidad_blower_door(volumen, superficie, caudal_50pa)`: Ensayo Blower Door (UNE-EN ISO 9972) con cálculo de n50 y q50.
|
|
186
|
+
11. `contrastar_consumo_facturas_reales(consumo_teorico, electricidad, gas, gasoleo)`: Contraste de facturación real vs modelo normativo.
|
|
187
|
+
|
|
188
|
+
### 💡 Rehabilitación y Subvenciones Públicas
|
|
189
|
+
12. `proponer_medidas_mejora_rd390(...)`: Generación de paquetes de envolvente, equipos e hibridación con fotovoltaica.
|
|
190
|
+
13. `emitir_dictamen_subvenciones_nextgen(...)`: Dictamen técnico oficial con tramos del 40%, 65%, 80% (RD 853/2021) e IRPF.
|
|
191
|
+
|
|
192
|
+
### 📐 Envolvente, Sombras y Terciario
|
|
193
|
+
14. `calcular_sombras_hueco(orientacion, ancho, alto, retranqueo, voladizo, toldo)`: Factor solar estacional F_sh para huecos según CTE DB-HE.
|
|
194
|
+
15. `calcular_sombras_obstaculo_edificio_enfrente(distancia, altura, orientacion)`: Ángulo alfa y factor de sombra por edificio enfrente / obstáculo remoto.
|
|
195
|
+
16. `calcular_parametros_terciario_local_comercial(tipo, m2, luminarias)`: Potencia de iluminación W/m², VEEI según DB-HE 3 y caudal RITE.
|
|
196
|
+
17. `configurar_perfil_tecnico_colegiado(nombre, nif, titulacion, colegio)`: Registro persistente de la firma y credenciales del técnico.
|
|
197
|
+
|
|
198
|
+
### 📂 Gestión Integral de Carpeta de Visita y Entregables
|
|
199
|
+
18. `organizar_carpeta_visita(ruta_carpeta)`: Auto-organizador inteligente en 5 carpetas (INFORMACION, PLANOS, FOTOS, INSTALACIONES, CERTIFICADO).
|
|
200
|
+
19. `auditar_carpeta_visita(ruta_carpeta)`: Escaneo autónomo multimodal de la visita y generación de preguntas quirúrgicas.
|
|
201
|
+
20. `certificar_desde_carpeta_visita(ruta_carpeta, ...)`: Ciclo completo que genera todos los entregables en `CERTIFICADO/`.
|
|
202
|
+
21. `calcular_calificacion_energetica(proyecto)`: Motor de cálculo simplificado de demandas, consumos y emisiones.
|
|
203
|
+
22. `generar_certificado_completo(...)`: Pipeline integral que emite el `.cex` nativo, XML oficial v3.0 y PDF de 15 páginas.
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
## 👨💻 Autor y Dirección Técnica
|
|
210
|
+
|
|
211
|
+
**Jose Manuel Caamaño González** | Arquitecto Técnico & BIM Manager
|
|
212
|
+
Digital Product Lead | ConTech & Digital Twin SaaS | Data Analytics (SQL, Power BI)
|
|
213
|
+
|
|
214
|
+
Hecho con código y café desde A Coruña. ☕
|
|
215
|
+
[LinkedIn](https://www.linkedin.com/in/jmcaamanog/) · [Web](https://jmcaamanog.pages.dev)
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "ce3x-mcp-server"
|
|
7
|
+
version = "1.3.0"
|
|
8
|
+
description = "Servidor MCP Oficial para Certificación de Eficiencia Energética de Edificios (CE3X / CTE DB-HE / RD 390/2021)"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = { text = "MIT" }
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "Jose Manuel Caamaño González", email = "jmc@example.com" }
|
|
14
|
+
]
|
|
15
|
+
keywords = [
|
|
16
|
+
"mcp",
|
|
17
|
+
"model-context-protocol",
|
|
18
|
+
"ce3x",
|
|
19
|
+
"eficiencia-energetica",
|
|
20
|
+
"cte-db-he",
|
|
21
|
+
"contech",
|
|
22
|
+
"bim",
|
|
23
|
+
"certificacion-energetica",
|
|
24
|
+
"typst"
|
|
25
|
+
]
|
|
26
|
+
classifiers = [
|
|
27
|
+
"Development Status :: 4 - Beta",
|
|
28
|
+
"Intended Audience :: Developers",
|
|
29
|
+
"Intended Audience :: End Users/Desktop",
|
|
30
|
+
"Topic :: Scientific/Engineering",
|
|
31
|
+
"License :: OSI Approved :: MIT License",
|
|
32
|
+
"Programming Language :: Python :: 3",
|
|
33
|
+
"Programming Language :: Python :: 3.10",
|
|
34
|
+
"Programming Language :: Python :: 3.11",
|
|
35
|
+
"Programming Language :: Python :: 3.12",
|
|
36
|
+
]
|
|
37
|
+
dependencies = [
|
|
38
|
+
"fastmcp>=0.4.0",
|
|
39
|
+
"pydantic>=2.6.0",
|
|
40
|
+
"lxml>=5.1.0",
|
|
41
|
+
"requests>=2.31.0",
|
|
42
|
+
"pymupdf>=1.24.0",
|
|
43
|
+
"shapely>=2.0.0",
|
|
44
|
+
"rich>=13.7.0"
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
[project.optional-dependencies]
|
|
48
|
+
dev = [
|
|
49
|
+
"pytest>=8.0.0",
|
|
50
|
+
"black>=24.0.0",
|
|
51
|
+
"ruff>=0.3.0"
|
|
52
|
+
]
|
|
53
|
+
bim = [
|
|
54
|
+
"ifcopenshell>=0.7.0"
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
[project.scripts]
|
|
58
|
+
ce3x-mcp = "ce3x_mcp.server:main"
|
|
59
|
+
ce3x-mcp-server = "ce3x_mcp.server:main"
|
|
60
|
+
|
|
61
|
+
[tool.setuptools.packages.find]
|
|
62
|
+
where = ["src"]
|