Construye y Despliega un Servidor SSE MCP con OAuth en Rust

Descubre cómo construir un servidor MCP con SSE y OAuth 2.1 usando Rust, Axum y Shuttle para IA empresarial segura y multiusuario.

2 sept 2025 • 7 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Los agentes de IA ya forman parte del flujo de trabajo moderno y, con servidores MCP basados en herramientas especializadas e integraciones, multiplican su valor. Para plataformas alojadas, un servidor MCP permite que tus usuarios interactúen con tus servicios mediante lenguaje natural. Imagina una plataforma de gestión de proyectos: en lugar de navegar por múltiples pantallas, el usuario autoriza el servidor MCP y crea tareas, actualiza estados o genera reportes con comandos conversacionales desde su cliente de IA favorito. En Q2BSTUDIO impulsamos este tipo de soluciones de software a medida y aplicaciones a medida con foco en inteligencia artificial, ciberseguridad y despliegues cloud escalables.

Este artículo explica cómo construir un servidor MCP con transporte SSE protegido con OAuth 2, compatible con clientes MCP como Cursor, Claude Desktop o Windsurf. Verás los patrones de autenticación, la integración con Rust y Axum, el uso de rmcp y la puesta en producción con Shuttle, además de buenas prácticas de seguridad y multiusuario para ia para empresas y agentes IA.

MCP ofrece dos tipos de transporte: STDIO y SSE. El primero corre como subproceso local y usa stdin/stdout. El segundo expone endpoints HTTP con Server Sent Events, ideal para servicios alojados y autenticación robusta con OAuth 2. En este tutorial nos centramos en un enfoque cloud con SSE y OAuth, perfecto para integrar con backends existentes y controlar el acceso de forma segura.

Para que los clientes MCP autoricen a sus agentes, el servidor debe implementar OAuth 2.1 y el estándar de descubrimiento RFC 8414. El flujo completo consta de cinco fases: 1 Descubrimiento de metadatos, 2 Registro del cliente, 3 Autorización con consentimiento del usuario, 4 Intercambio de código por tokens y 5 Acceso autenticado a los endpoints SSE protegidos.

Fase de descubrimiento: el cliente MCP consulta /.well-known/oauth-authorization-server para obtener el documento de metadatos con issuer, registration_endpoint, authorization_endpoint, token_endpoint, scopes y opcionalmente jwks_uri. Es imprescindible implementar este endpoint para que el cliente pueda iniciar la autenticación.

Fase de registro: el cliente MCP se registra enviando su información al registration_endpoint. El servidor valida y almacena los datos, devolviendo client_id y client_secret. Es recomendable generar secretos fuertes y definir un vencimiento para rotación periódica.

Fase de autorización: cuando el usuario pulsa en iniciar sesión desde su cliente MCP, se le redirige al authorization_endpoint para revisar los permisos solicitados y aprobar o denegar. Si aprueba, el servidor genera un authorization code y redirige al cliente con ese código y el state original. Con PKCE S256, el servidor almacena el code_challenge y posteriormente verificará el code_verifier.

Intercambio de tokens: el cliente MCP utiliza el authorization code para solicitar al token_endpoint un access_token y un refresh_token. El access_token identifica al cliente y al usuario en el servidor MCP; el refresh_token sirve para renovar el acceso sin volver a pedir consentimiento. Es buena práctica aplicar rotación de refresh tokens.

Acceso autenticado: el cliente MCP conecta a los endpoints SSE protegidos, por ejemplo /mcp/sse, incluyendo el access_token en la cabecera Authorization con esquema Bearer. El servidor valida el token en cada conexión y asocia el client_id y el usuario para ejecutar operaciones seguras.

Renovación de token: cuando el access_token expira, el cliente MCP envía un grant type refresh_token al token_endpoint para obtener uno nuevo. El mismo endpoint debe aceptar tanto authorization_code como refresh_token para cubrir el ciclo completo.

Implementación en Rust con Axum y rmcp: utilizarás la crate rmcp para construir el servidor MCP con transporte SSE y soporte de autenticación, Axum para el enrutado HTTP y Shuttle para el despliegue cloud. La base de datos recomendada es PostgreSQL con SQLx. Para depurar el protocolo, el MCP Inspector facilita probar cada fase del flujo OAuth y la conexión SSE.

Configuración de secretos: define BASE_URL y una clave JWT robusta para firmar y validar tokens. Mantén estos valores fuera del control de versiones y usa almacenes de secretos en producción. Con Shuttle, puedes separar archivos de secretos para desarrollo y despliegue.

Metadatos OAuth: el endpoint de metadatos debe anunciar issuer, registration_endpoint, authorization_endpoint, token_endpoint, scopes_supported y los campos adicionales para response_types_supported code y code_challenge_methods_supported S256. Así, los clientes MCP sabrán que tu servidor soporta Authorization Code con PKCE.

Registro de clientes: valida redirect_uris, genera client_id y client_secret, almacena todo en la base de datos y devuelve la respuesta con información de expiración y scope. Esto permite que múltiples clientes MCP se conecten a tu plataforma de software a medida con aislamiento por cliente.

Autorización con consentimiento: muestra una pantalla simple donde el usuario confirma los permisos solicitados. Al aceptar, genera un authorization code, almacénalo con client_id, redirect_uri y code_challenge, y redirige a la URI de retorno añadiendo el code y el state. En una app real, protege esta pantalla con la autenticación de tu plataforma.

Token endpoint con dos grants: authorization_code y refresh_token. Verifica código, PKCE y redenciones únicas, luego emite access_token JWT con claims sub client_id, iat, exp y scope, y refresh_token. Para refresh, valida el token de actualización y aplica rotación generando uno nuevo e invalidando el anterior.

Middleware JWT: en cada petición protegida, extrae el Bearer token, verifica firma y expiración, comprueba que el client_id exista en base de datos y adjúntalo al contexto de la solicitud para que los controladores y herramientas MCP identifiquen al cliente que ejecuta la acción.

Diseño del servicio MCP: implementa una estructura de servicio con el pool de base de datos, el enrutador de herramientas y un almacenamiento seguro del client_id. Dado que initialize del protocolo no recibe self mutable, utiliza interior mutability con Arc y Mutex para guardar el client_id tras la validación de la conexión SSE y reutilizarlo en las llamadas posteriores.

ServerHandler esencial: implementa get_info para anunciar versión del protocolo, capacidades y una breve descripción de tu servidor MCP, e implementa initialize para capturar el client_id desde las extensiones de la petición inicial y dejar la sesión autenticada durante toda la vida del stream SSE.

Herramientas MCP de ejemplo: crea herramientas como crear, listar, obtener, actualizar y eliminar todos. Cada operación debe filtrar por client_id para garantizar el aislamiento multicliente. Define los parámetros esperados y devuelve resultados bien formateados que el agente de IA pueda interpretar con JSON-RPC 2.0.

Integración del servidor SSE: configura un SseServer con rutas como sse_path en /mcp/sse y post_path en /mcp/message, aplica el middleware de validación JWT a esas rutas y registra tu servicio con with_service. Combina el router SSE protegido con las rutas públicas de OAuth en tu aplicación Axum y activa CORS si necesitas orígenes cruzados.

Despliegue y pruebas: con Shuttle puedes lanzar a producción con un solo comando de despliegue. Usa el MCP Inspector para validar metadatos, registro, autorización, obtención de tokens y, finalmente, establecer la conexión SSE con el header Authorization correcto. En clientes MCP como Cursor, configura la URL del servidor SSE y pulsa en iniciar sesión para completar el flujo.

Seguridad y buenas prácticas: aplica PKCE S256, rotación de refresh tokens, expiraciones razonables, validación de redirect_uris y protección de la UI de consentimiento tras login. Añade auditoría a eventos críticos, cifrado en tránsito y almacenamiento seguro de claves. No olvides contemplar pruebas de ciberseguridad y pentesting periódicas, fundamentales para proteger aplicaciones a medida y software a medida en escenarios multiusuario.

Q2BSTUDIO puede ayudarte a diseñar, implementar y escalar servidores MCP con agentes IA, integraciones seguras y despliegues en la nube. Somos especialistas en inteligencia artificial e ia para empresas, automatización de procesos, servicios cloud aws y azure, servicios inteligencia de negocio y power bi, y ciberseguridad integral para que tus soluciones alcancen producción con garantías. Si tu proyecto requiere arquitectura robusta y despliegue elástico, descubre nuestros servicios cloud aws y azure. Si buscas llevar tus productos al siguiente nivel con modelos de lenguaje y copilotos, visita nuestra página de inteligencia artificial.

Conclusión: con Rust, rmcp, Axum y Shuttle, puedes crear un servidor MCP SSE con OAuth 2 que ofrezca comunicación en tiempo real y control de acceso sólido. Este stack acelera desde prototipo hasta producción sin compromisos, aportando rendimiento, seguridad y una experiencia de desarrollo fluida. Centraliza identidades, monitoriza tus servicios y evoluciona tus herramientas para nuevos casos de negocio. La combinación de agentes IA con servicios cloud y seguridad by design te permitirá crear productos escalables, diferenciadores y listos para el mercado.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.