James Valencia
← Proyectos

2026 — presente

Servidor MCP para Reportia

Autor único — CtisEvolution

Impacto

Cualquier automatización sobre Reportia queda acotada a una superficie de 66 operaciones conocidas y auditables, en vez de una tool genérica que un agente podría usar mal — sin esfuerzo extra por parte de quien la usa.

TypeScriptNode.jsModel Context ProtocolZodVitest

El problema

Reportia, mi propio producto bajo CtisEvolution, expone una API HTTP para empresas, movimientos contables, comisiones, mapeos de cuentas y sincronización con SIIGO. Darle esa API a un agente de IA de la forma más directa — una tool genérica tipo http_request(url) — significa que el modelo puede apuntar el cliente a cualquier URL, incluida una IP interna. Es la puerta de entrada clásica a un SSRF inducido por el propio agente.

El enfoque

El servidor MCP expone 66 herramientas curadas, una por endpoint real de negocio, en vez de una superficie abierta. La autenticación soporta tres modos — cookie pre-emitida, Bearer token, login por email y contraseña — con precedencia cookie > bearer > sesión, porque la cookie ya matchea la identidad resuelta aguas arriba. Si REPORTIA_TOKEN y REPORTIA_COOKIE están seteados juntos, el servidor lanza un error de configuración a propósito, para que un token puesto por accidente no pise una sesión per-usuario ya válida. Hay un archivo de tests dedicado que verifica el orden en que se aplican los guards de seguridad — por ejemplo, que primero se resuelve la empresa y recién después se valida la confirmación de una operación destructiva — no solo que existan, para que un error de configuración devuelva un mensaje útil en vez de un rechazo genérico.

Resultado

Publicado en npm y en el MCP Registry oficial. Cualquier automatización sobre Reportia queda acotada a una superficie de 66 operaciones conocidas y auditables, en vez de una tool genérica que un agente podría usar mal — sin esfuerzo extra por parte de quien la usa.