Negociación Dual de Eras MCP (2026/2025)
- Estado: Aceptada
- Responsables: Comité de Arquitectura del Protocolo, Equipo de Interoperabilidad
- Fecha: 2026-09-05
- Referencia Técnica: Puente del Ecosistema MCP y Compatibilidad Intergeneracional
Contexto y Definición del Problema
El ecosistema de Model Context Protocol (MCP) ha evolucionado a través de dos especificaciones divergentes:- Especificación Legada (2025-11-25): Utiliza esquemas estrictos de petición-respuesta en JSON-RPC sin soporte para streaming de eventos en tiempo real. Los clientes antiguos rechazan respuestas que contengan campos no reconocidos en el nivel superior.
- Especificación Moderna (2026-07-28): Introduce streaming bidireccional, notificaciones mediante
subscriptions/listen, negociación dinámica de capacidades y plantillas de recursos parametrizadas (resources/templates/list).
Factores Determinantes
- Interoperabilidad Universal: Compatibilidad inmediata tanto con clientes MCP históricos (2025) como modernos (2026) sin requerir variables de configuración manuales.
- Eficiencia Basada en Eventos: Habilitar notificaciones automáticas para clientes con soporte de
subscriptions/listen. - Transcodificación sin Pérdida: Conversión bidireccional limpia entre mensajes JSON-RPC 2.0 y flujos binarios gRPC/Protobuf nativos de LIOP.
Opciones Evaluadas
- Exigir Exclusivamente la Especificación 2026-07-28: Rechaza clientes heredados y obliga a actualizar el software anfitrión, lo que fragmenta la base de usuarios.
- Despliegue con Doble Puerto: Levantar dos demonios de pasarela independientes en puertos distintos (ej.
:15018para 2026 y:15019para 2025), lo que duplica el consumo de memoria y complica la orquestación en Docker. - Negociación Adaptativa In-Situ con Purgado Síncrono: Una única pasarela inspecciona
params.protocolVersiondurante el apretón de manos inicial (initialize), registra la era del cliente en memoria de sesión y ejecutaadaptResponseForLegacyClient()para depurar campos modernos en conexiones de 2025.
Decisión Adoptada
Opción Seleccionada: Opción 3 — Pasarela unificada con adaptación dinámica y depuración síncrona de respuestas para clientes legados.Consecuencias Positivas
- Compatibilidad Amplia: Permite la conexión transparente de versiones estables de Claude Desktop, orquestadores modernos de subagentes y sistemas de automatización industrial.
- Eliminación del Sondeo: Los clientes de la era 2026 se suscriben a eventos de la malla mediante
subscriptions/listen, lo que suprime el tráfico periódico innecesario. - Resolución Elástica de Parámetros: El motor transcodificador procesa estructuras anidadas (
params.arguments) y planas (params.payload), lo que previene la pérdida de argumentos entre clientes dispares.
Consecuencias Negativas y Mitigaciones
- Lógica de Filtrado en Serialización: El pipeline de respuesta debe mantener transformadores de compatibilidad.
Mitigación: Se implementa en funciones aisladas (adaptResponseForLegacyClient), verificadas mediante suites de pruebas automáticas frente a ambas especificaciones oficiales.
Verificación y Cumplimiento
- Implementado en
sdks/typescript/src/gateway/mcp-bridge.ts. - Certificado en la suite
vitest.audit.config.ts(Suite 5: Dual-Era MCP Handshake Compliance & Transcoding).