Proflores MCP Server
Servidor MCP (Model Context Protocol) para el sistema de presupuestos de Proflores.
Stack
- Python 3.12
- MCP SDK (
mcp[cli]>=1.26.0) con transporte Streamable HTTP
- Supabase como base de datos
- Deploy en Render (Docker)
Estructura
mcp-server/
├── src/
│ ├── server.py # Entry point
│ ├── tools/
│ │ ├── catalogs.py # 8 tools de lectura de catálogos
│ │ ├── budget.py # 6 tools de presupuestos
│ │ └── catalog_write.py # 6 tools de escritura de catálogos
│ ├── resources/
│ │ └── schema.py # 2 resources (schema del sistema)
│ ├── prompts/
│ │ └── budget.py # 2 prompts para flujos guiados
│ └── services/
│ ├── supabase_client.py # Singleton del cliente Supabase
│ └── helpers.py # to_json, resolve_uuid
├── requirements.txt
├── Dockerfile
├── render.yaml
├── .env.example
└── .gitignore
Setup local
cp .env.example .env
# Editar .env con tus credenciales de Supabase
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python src/server.py
El servidor estará disponible en http://localhost:8000/mcp/.
Tools disponibles (20)
Lectura de catálogos (8)
| Tool |
Descripción |
list_companies |
Lista empresas registradas |
list_clients |
Lista o busca clientes |
list_projects |
Lista proyectos con filtros |
list_concepts |
Lista conceptos (partidas de obra) |
list_resources |
Lista recursos (materiales, mano de obra, equipo) |
list_units_of_measure |
Lista unidades de medida |
list_price_lists |
Lista listas de precios |
list_suppliers |
Lista proveedores |
Presupuestos (6)
| Tool |
Descripción |
list_budgets |
Lista presupuestos existentes |
get_budget_detail |
Detalle completo de un presupuesto |
create_budget |
Crea un presupuesto vacío (DRAFT) |
add_budget_item |
Agrega una partida a un presupuesto |
update_budget |
Actualiza campos de un presupuesto |
update_budget_item |
Actualiza una partida |
Escritura de catálogos (6)
| Tool |
Descripción |
create_client |
Crea un nuevo cliente |
create_concept |
Crea un concepto (partida de obra) |
create_apu |
Crea un APU (Análisis de Precio Unitario) |
add_apu_item |
Agrega un recurso a un APU |
create_resource |
Crea un recurso (material, mano de obra, equipo) |
set_resource_price |
Asigna precio a un recurso en una lista de precios |
Resources
schema://system-overview — Visión general del sistema
schema://budget-structure — Estructura de tablas de presupuestos
Prompts
budget_creation_assistant — Guía paso a paso para crear presupuestos
budget_review — Guía para revisar un presupuesto existente
Variables de entorno
| Variable |
Descripción |
SUPABASE_URL |
URL del proyecto Supabase |
SUPABASE_SERVICE_ROLE_KEY |
Service role key de Supabase |
MCP_HOST |
Host del servidor (default 0.0.0.0) |
MCP_PORT |
Puerto del servidor (default 8000) |
Deploy
El proyecto está configurado para deploy en Render con Docker. Ver render.yaml.