MCP server para Presto (RIB) — automatizacion COM local (Presto.App.25) + BC3 (FIEBDC-3). NeoNexAI.
Project description
presto-mcp-server
MCP server que conecta Claude con Presto (software de presupuestos y mediciones de RIB Software) — versión 2025.
Por NeoNexAI Agency (para Cota Zero y clientes de consultoría IA).
Dos vías complementarias:
- COM en vivo (
Presto.App.25) — controla la obra abierta en Presto: leer/escribir conceptos, precios y cualquier campo, e invocar opciones internas del programa. Requiere Presto instalado y ejecutándose en el mismo equipo. - BC3 (FIEBDC-3) — lee y analiza ficheros de presupuesto sin abrir Presto (multiplataforma; ideal para auditoría rápida).
Presto de escritorio no tiene API REST (eso es solo Presto ServerCloud). La integración local correcta es COM, que la documentación oficial de RIB soporta para VBScript, VB.NET y Python (
win32com) — que es lo que usa este server.
Requisitos
- Windows (la vía COM es Windows-only).
- Presto 2025 instalado en el equipo (para la vía COM). Si tu versión no es la
25, fija el ProgID con la variable
PRESTO_PROGID(p. ej.Presto.App.26). - Python ≥ 3.10.
- La vía BC3 funciona sin Presto (solo necesita los ficheros
.bc3).
Instalación en el PC del cliente (Claude Code)
Requiere tener Python y, recomendado, uv
(pip install uv). Luego, en una terminal:
claude mcp add presto -s user -- uvx --from git+https://github.com/NeoNexAI/presto-mcp-server presto-mcp
-s user→ disponible en todos los proyectos de ese PC.uvxinstala y ejecuta sin dejar nada que mantener; al actualizar el repo, vuelve a tomar la última versión.
Alternativa con pip (si no quieres uv):
pip install git+https://github.com/NeoNexAI/presto-mcp-server
claude mcp add presto -s user -- python -m presto_mcp
Claude Desktop — bloque equivalente en su mcp.json:
{
"mcpServers": {
"presto": {
"command": "uvx",
"args": ["--from", "git+https://github.com/NeoNexAI/presto-mcp-server", "presto-mcp"],
"env": { "PRESTO_PROGID": "Presto.App.25" }
}
}
}
Para la vía COM: abre Presto (y la obra, si la operación la necesita) antes de
usar las herramientas. Comprueba la conexión con presto_status.
Herramientas
Conexión y obra
| Tool | Qué hace |
|---|---|
presto_status |
Comprueba la conexión COM y devuelve el ProgID activo |
presto_open_obra |
Abre una obra .Presto en la instancia en ejecución |
presto_close_obra |
Cierra la obra abierta |
Genéricas — cobertura del 100% del modelo de datos
| Tool | Qué hace |
|---|---|
presto_read_records |
Lee cualquier tabla/campos filtrando por máscara |
presto_get_field |
Lee un campo de un registro por su código |
presto_set_field |
Escribe un campo (transaccional, deshacible) |
presto_execute_option |
Ejecuta cualquier opción interna de Presto (DLG_*) con JSON |
Curadas — conceptos y precios
| Tool | Qué hace |
|---|---|
presto_get_concepto |
Código, unidad, resumen y precios de un concepto |
presto_search_conceptos |
Busca conceptos por resumen o código |
presto_get_precios |
Precios en todos los esquemas (presupuesto, certificación, real, objetivo, planificado) |
presto_set_precio |
Fija el precio de un concepto en un esquema |
BC3 (FIEBDC-3) — sin Presto
| Tool | Qué hace |
|---|---|
presto_bc3_resumen |
Resumen de un fichero BC3 (conceptos, capítulos, emisor) |
presto_bc3_buscar |
Busca conceptos por texto en un BC3 |
presto_bc3_concepto |
Concepto del BC3 con texto y descomposición |
presto_bc3_anomalias |
Precios a 0/ausentes, sin resumen, partidas sin descomposición |
Modelo de datos de Presto (referencia rápida)
La automatización trabaja sobre tablas.campo. Los nombres exactos se ven en
Presto con Ver: Lista de campos. Los más usados:
- Tabla
Conceptos:Conceptos.Código(clave única),Conceptos.Resumen,Conceptos.Ud, y preciosConceptos.PrPres(presupuesto),PrCert(certificación),PrReal,PrObj(objetivo),PrPlan(planificado). - Filtrado por máscara con comodines de Presto:
"E04*","*hormigón*","*".
Operaciones masivas (multiplicar precios, reducir niveles, generar objetivo,
exportar/importar formatos…) → presto_execute_option con el código del diálogo.
Desarrollo
python -m py_compile src/presto_mcp/*.py # comprobar sintaxis
python tests/test_bc3.py # tests del parser BC3 (sin Presto)
Estado de validación: el parser BC3 está verificado (6/6 tests) y el
servidor MCP carga y registra las 15 tools. La vía COM solo puede probarse
e2e en un equipo con Presto 2025 abierto → se valida en sesión presencial con
el cliente. Si algún nombre de campo difiere en una instalación concreta, se ajusta
con Ver: Lista de campos (las tools genéricas aceptan cualquier tabla.campo).
Licencia
MIT · NeoNexAI Agency
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file presto_mcp_server-2.0.0.tar.gz.
File metadata
- Download URL: presto_mcp_server-2.0.0.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbcc934383b67be018cdf50074775087346e623d8d137bc7f0c1b977b7323976
|
|
| MD5 |
b9e02144e182c83af73e450f914d205c
|
|
| BLAKE2b-256 |
e384a496406b0abafe5337b2dca2528ab524a1c263ef09c896791d16cc5c1d18
|
File details
Details for the file presto_mcp_server-2.0.0-py3-none-any.whl.
File metadata
- Download URL: presto_mcp_server-2.0.0-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97dc22824c04a9e6dc211ad0ddc955663201f94a42fd81041c6f50c38138ef78
|
|
| MD5 |
c8186c3237a44ca43c20bc3992e76f72
|
|
| BLAKE2b-256 |
9b319013fc2d8945ef1494e8918c51e4c986ecb7b9955936552bfa2538ea0260
|