Constructora Colombia MCP Server
README.md
# Constructora Colombia — MCP Server para OpenClaw
Sistema de cotizaciones inteligente para construcción colombiana.
**OpenClaw** es el cerebro (recibe mensajes por Telegram, razona, decide).
**Python MCP Server** es la herramienta (busca en Excel, calcula, extrae datos).
## Arquitectura
```
Usuario → Telegram
↓
OpenClaw Gateway ← canal Telegram nativo
↓ (razona, elige herramienta)
MCP Server (Python)
↓ (datos crudos)
OpenClaw analiza y responde
↓
Usuario ← Telegram
```
- **OpenClaw**: IA que conversa con el usuario, decide qué tool usar e interpreta resultados
- **MCP Server**: 5 herramientas Python que consultan el Excel de construcción
- **Excel**: Fuente única de precios (1165 actividades, 21 recursos salariales, 18 capítulos)
## Herramientas MCP
| Herramienta | Qué hace |
|-------------|----------|
| `buscar_actividades` | Búsqueda inteligente por similitud (rapidfuzz) |
| `cotizar` | Calcula cotización completa con detección de dimensiones |
| `interpretar` | Extrae intención, actividad y dimensiones del texto |
| `listar_categorias` | Lista los 18 capítulos de construcción disponibles |
| `obtener_detalle_actividad` | Desglose completo de recursos y precios unitarios |
## Uso con OpenCode (CLI)
```bash
cd /opt/constructora
opencode
```
OpenCode leerá `AGENTS.md` automáticamente y cargará las 5 herramientas MCP desde `opencode.json`. Puedes empezar a preguntar en lenguaje natural.
## Uso con OpenClaw Gateway (Telegram)
```bash
# 1. Configurar y ejecutar setup
TELEGRAM_BOT_TOKEN="123:abc" TELEGRAM_USER_ID="123456" bash deploy/setup.sh
# 2. Iniciar Gateway
openclaw gateway
```
## Instalación en Ubuntu
```bash
# 1. Clonar el repositorio
git clone <tu-repo> /opt/constructora
cd /opt/constructora
# 2. Ejecutar setup
TELEGRAM_BOT_TOKEN="123:abc" TELEGRAM_USER_ID="123456" bash deploy/setup.sh
```
El `setup.sh`:
- Instala dependencias Python
- Configura `openclaw.json` con tu token de Telegram
- Crea servicio systemd opcional para el MCP Server
- Verifica que el MCP Server funciona
## Configuración manual de OpenClaw
Después de ejecutar `setup.sh`, tu `openclaw.json` se ve así:
```json
{
"mcpServers": {
"constructora-colombia": {
"command": "python3",
"args": ["-m", "app.mcp_server"],
"env": { "PYTHONPATH": "/opt/constructora" }
}
},
"channels": {
"telegram": {
"enabled": true,
"botToken": "TU_TOKEN",
"dmPolicy": "allowlist",
"allowFrom": ["TU_USER_ID"]
}
}
}
```
## Uso en Telegram
Ejemplos de mensajes que entiende el sistema:
| Mensaje | Comportamiento |
|---------|----------------|
| "Necesito cotización para poner cerámica en una habitación de 6x8" | Cotiza 48m2 de enchape |
| "Ponme baldosa barata" | Busca opciones de baldosa económica |
| "Cuanto vale pintar una pared de 10m2" | Cotiza pintura vinílica |
| "Panyete para 30m2" | Cotiza revoques |
| "Qué categorías hay?" | Lista capítulos disponibles |
| "Muéstrame actividades de PISOS" | Lista actividades de pisos |
| "Dame detalle de Enchape en cerámica" | Muestra APU completo |
## Desarrollo local (FastAPI)
Opcionalmente puedes correr la API HTTP para debug:
```bash
pip install -r requirements.txt
python -m app.main
# → http://localhost:8000/docs
```
## Estructura del proyecto
```
constructora/
├── app/
│ ├── main.py FastAPI (debug) + entry point MCP
│ ├── mcp_server.py MCP Server con 5 herramientas
│ ├── config.py Configuración
│ ├── database/
│ │ ├── excel_reader.py Lector de Excel (pandas + openpyxl)
│ │ └── models.py Modelos de datos
│ ├── tools/
│ │ ├── search.py Búsqueda fuzzy (rapidfuzz)
│ │ └── calculator.py Cálculo de cantidades
│ ├── api/
│ │ ├── routes.py Endpoints REST
│ │ └── schemas.py Pydantic schemas
│ └── utils/
│ └── text_parser.py NLP: intención + dimensiones
├── data/
│ └── dataconstru.xlsx Base de datos de construcción
├── deploy/
│ └── setup.sh Script de instalación para Ubuntu
├── openclaw.json Configuración para OpenClaw
├── requirements.txt
└── README.md
```
## Próximas etapas
- [ ] Embeddings semánticos (sentence-transformers + ChromaDB)
- [ ] Búsqueda híbrida (fuzzy + vectorial)
- [ ] RAG con precios web Colombia
- [ ] PDFs profesionales (reportlab)
- [ ] APU detallados con desglose de materiales
- [ ] Historial de clientes y memoria conversacional
## Licencia
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues