← Integraciones de IA
01 · MCP PROPIO · USO PERSONAL

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.

ROL
Diseño y dirección. Código generado con IA, revisado por mí.
EQUIPO
Personal
ESTADO
En uso · self-hosted
TOOLS
18 · solo lectura
Python 3.12FastMCPHTTPX asyncPydantic v2DockerOpenAI Tunnel
Demo · Balanz MCP

Proyecto personal, no afiliado a Balanz. Las demos usan datos sintéticos o porcentajes.

01 · CONTEXTO

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.

02 · PROBLEMA

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.

Herramientas.
18 herramientas agrupadas en 8 familias. Todas son de solo lectura.

FIG_01 · ARQUITECTURA SIMPLIFICADABalanz MCP

Cómo está armado

  1. 01CHATGPTinterfaz conversacional
  2. 02OPENAI TUNNELacceso remoto
  3. 03SERVIDOR MCPFastMCP · STDIO · 18 tools
  4. 04CLIENTEauth · caché · paginación
  5. 05BALANZservicios de la web

Decisiones técnicas.
Qué se eligió y qué implica.

  1. 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.

  2. 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ó.

  3. 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.

DESAFÍO PRINCIPAL

La API responde JSON válido, pero no siempre dice qué significa cada dato.

  1. 01Cada familia de instrumentos devuelve formatos distintos: campos con alias, números que llegan como texto y campos que cambian de significado.
  2. 02Normalicé esos contratos sin romper los casos que ya funcionaban.
  3. 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é.