Balanz MCP
Servidor MCP de solo lectura que conecta mi cuenta de Balanz con ChatGPT para consultar y analizar la cartera dentro de una conversación, cruzándola con noticias. No existía un conector para esto.
Proyecto personal, no afiliado a Balanz. Las demos usan datos sintéticos o porcentajes.
Antes
Quería consultar mi cartera de inversiones desde ChatGPT y cruzarla con noticias sin copiar datos a mano. Balanz no ofrece un conector para hacerlo.
Qué había que resolver
Hacía falta una capa que traduzca preguntas en lenguaje natural a consultas tipadas contra los servicios que usa la web de Balanz, sin darle al modelo ninguna capacidad de operar sobre la cuenta.
Qué hace.
Las capacidades principales del sistema.
18 herramientas tipadas
Cartera, instrumentos y mercado expuestos como tools MCP con validación de entrada y salida.
Solo lectura por diseño
No existen herramientas para crear órdenes ni transferir fondos.
Caché con single-flight
Caché TTL/LRU en memoria: pedidos concurrentes iguales comparten una sola consulta.
Datos sin inventar
Valores de mercado en Decimal. Si la fuente no informa moneda o unidad, la respuesta lo dice en vez de suponerla.
Herramientas.
18 herramientas agrupadas en 8 familias. Todas son de solo lectura.
Cuenta y liquidez
lecturaPosiciones, tenencias agrupadas, disponibilidades por moneda y plazo, y resumen de cartera.
Actividad
lecturaÓrdenes, movimientos y cuenta corriente en un rango de fechas, sin mezclar orden con ejecución.
Flujo proyectado
lecturaRenta y amortización estimadas de bonos, con advertencias cuando el dato es parcial.
Mercado
lecturaDólar MEP y CCL, búsqueda en seis familias de instrumentos, detalle por ticker y series históricas e intradiarias.
Fondos
lecturaCatálogo, cuotaparte e historia, composición publicada y estadísticas.
Research
lecturaPublicaciones filtradas con resumen y enlace al PDF.
Ofertas
lecturaLicitaciones y proyectos inmobiliarios disponibles.
Horarios
lecturaHorarios de negociación y liquidación, sin necesidad de autenticarse.
Cómo está armado
- 01CHATGPTinterfaz conversacional
- 02OPENAI TUNNELacceso remoto
- 03SERVIDOR MCPFastMCP · STDIO · 18 tools
- 04CLIENTEauth · caché · paginación
- 05BALANZservicios de la web
Decisiones técnicas.
Qué se eligió y qué implica.
- 01
Separar el MCP del acceso remoto
El servidor sólo habla STDIO; la conexión con ChatGPT la resuelve un túnel aparte.
→ El adaptador queda chico y reutilizable en clientes locales. El uso remoto depende del túnel.
- 02
Preservar la incertidumbre de los datos
Los campos que la fuente no normaliza se devuelven marcados, con advertencias de cobertura parcial.
→ El modelo no recibe equivalencias que la fuente no informó.
- 03
Login serializado
Un único inicio de sesión a la vez, aunque varias tools corran en paralelo.
→ No hay autenticaciones simultáneas contra el mismo servicio.
La API responde JSON válido, pero no siempre dice qué significa cada dato.
- 01Cada familia de instrumentos devuelve formatos distintos: campos con alias, números que llegan como texto y campos que cambian de significado.
- 02Normalicé esos contratos sin romper los casos que ya funcionaban.
- 03Cuando la fuente no informa moneda, unidad o fecha, la respuesta lo marca en lugar de suponerlo.
Cómo usé IA
Definí el catálogo de herramientas y los requisitos, y guié la identificación de los endpoints desde la web. La implementación la generó IA bajo mi revisión.
Resultado
Lo uso desde ChatGPT. Corre en Docker sobre mi Mac mini y despliego los cambios en el momento.
- El repositorio incluye tests offline de modelos y caché.