Los desarrolladores que utilizan el Model Context Protocol (MCP) —un estándar para conectar modelos de IA con fuentes de datos externas— a menudo se enfrentan a un dilema al construir agentes personalizados. Para conectar un agente a un servicio como un bucket de S3, el desarrollador debe utilizar la autenticación OAuth. Sin embargo, muchos servidores MCP solo permiten URIs de redirección de una lista preaprobada de aplicaciones conocidas como Claude o VS Code. Si un servidor rechaza estas direcciones personalizadas, los desarrolladores se ven obligados a utilizar métodos inseguros; si acepta cualquier dirección proporcionada durante el registro anónimo, abre un agujero de phishing significativo.
Cuando un servidor de autorización acepta URIs de redirección arbitrarias, los atacantes pueden registrar un cliente falso con un nombre como "Claude" y establecer su propia URL maliciosa como punto de retorno. Un usuario que haga clic en un enlace para "reconectar el almacenamiento" vería una pantalla de consentimiento legítima en el dominio real, pero enviaría sin saberlo su código de autorización de un solo uso directamente al sitio del atacante. La evidencia de esta vulnerabilidad es generalizada: un estudio de mayo de 2026 encontró que casi el 96% de los servidores MCP probados aceptaban redirecciones arbitrarias de solicitantes anónimos. Casos del mundo real ya han resultado en perfiles de comerciantes y detalles bancarios comprometidos debido a tales fallos.
Para resolver esto, Stream Vessel introduce un diseño donde la confianza se determina por usuario en el momento del inicio de sesión, en lugar del registro inicial. Si bien el servidor todavía permite que cualquier URI se registre de forma anónima (para dar cabida a diversos clientes), solo ejecutará una redirección si el host está en una lista de permitidos global, una dirección de bucle invertido (como localhost) o una lista personal gestionada por el usuario específico que ha iniciado sesión. Para defenderse contra la ingeniería social —donde un usuario podría ser engañado para añadir manualmente el host de un atacante—, el sistema requiere que los usuarios escriban la dirección del host como texto plano antes de que se añada a su lista de confianza. Esto crea una fricción deliberada, respaldada por correos electrónicos de auditoría automatizados y un estado de permiso por defecto de "solo lectura" para las direcciones recién confiadas, asegurando que incluso si un usuario es engañado, el radio de impacto permanezca limitado.
Este diagrama explica el flujo lógico donde el servidor evalúa la URI de redirección frente a diferentes niveles de confianza (global, bucle invertido o personal) para decidir si procede con la autorización.

Esta imagen ilustra el mecanismo de seguridad donde los usuarios deben proporcionar una entrada de texto plano para autorizar un nuevo host, como se describe en el último párrafo.