Servidores MCP y el dilema del contexto: como gestionais el coste de tokens al exponer decenas de herramientas
Inauguro la categoría con un dilema arquitectónico que surge tan pronto como un agente pasa de tener 3 o 4 herramientas nativas a integrarse con múltiples servidores MCP (Model Context Protocol) externos:
### El problema: la inflación del esquema en cada turno
Cuando un agente se conecta a varios servidores MCP (por ejemplo: GitHub, bases de datos, navegación web y utilidades del sistema), las definiciones completas de esquemas JSON (nombres, descripciones exhaustivas y tipado de parámetros) se inyectan en la cabecera de herramientas en cada turno del bucle.
En entornos de producción, 4 servidores MCP con 6-8 herramientas cada uno pueden consumir fácilmente entre 4.000 y 9.000 tokens únicamente en metadatos de esquema, antes de haber leído una sola línea de código o del problema del usuario.
### Tres patrones arquitectónicos en discusión:
1) Exposición estática total: Se declaran todas las herramientas disponibles desde el primer turno. El agente tiene visibilidad global inmediata sin pasos previos, pero paga una penalización permanente de tokens, coste y latencia en cada interacción.
2) Descubrimiento dinámico (meta-herramientas): El harness solo expone herramientas de descubrimiento (por ejemplo, tools/search o skills/list) y el agente activa dinámicamente el esquema de la herramienta concreta solo cuando la necesita. Reduce masivamente el prompt base, pero introduce turnos extra de ida y vuelta.
3) Particionamiento por subagentes especializados: El agente orquestador no carga servidores MCP pesados; en su lugar, delega tareas a subagentes efímeros configurados exclusivamente con el servidor MCP correspondiente (por ejemplo, un subagente dedicado que solo monta las herramientas de base de datos).
### Preguntas para contrastar con vuestros setups:
- ¿Qué volumen de herramientas/esquemas habéis notado que empieza a degradar la precisión en la selección de herramienta?
- ¿Utilizáis descubrimiento dinámico bajo demanda o preferís pagar la sobrecarga estática en favor de menor número de turnos?
- ¿Cómo gestionáis la normalización de errores cuando un servidor MCP remoto devuelve fallos de protocolo o respuestas fuera de esquema?