MCP OAuth Sample

Una implementación de servidor MCP OAuth de ejemplo usando Next.js, que proporciona autenticación OAuth 2.1 con Google y PostgreSQL.

Documentación

MCP OAuth Sample en Vercel y Analytics

Una implementación de servidor MCP (Model Context Protocol) OAuth 2.1 lista para producción, construida con Next.js 15, que proporciona autenticación segura y analíticas para clientes MCP.

Descripción General

Este proyecto fue construido usando run-llama/mcp-nextjs como implementación de referencia y mejorado significativamente para ser totalmente compatible con la Especificación de Autorización MCP o aquí.

Mejoras Clave

✅ Cumplimiento OAuth 2.1 - Implementación completa de la especificación de autorización MCP
✅ Tokens de Refresco OAuth - Renovación automática de tokens para una experiencia de usuario fluida
✅ Panel de Analíticas DIY - Analíticas en tiempo real con monitoreo de seguridad
✅ Seguridad Mejorada - Detección y monitoreo integral de amenazas

Inicio Rápido

# Install dependencies
pnpm install

# Setup environment variables (see docs/setup.md)
cp .env.example .env

# Setup database
pnpm prisma generate
pnpm prisma db push

# Start development server
pnpm dev

Capturas de Pantalla

Panel de Control

Dashboard

Métricas de Uso OAuth

OAuth Usage

Monitoreo de Seguridad DIY

Security Monitoring

Uso de Herramientas de Clientes MCP

MCP Integration

Características

  • Servidor OAuth 2.1 Completo con soporte PKCE y tokens de refresco
  • Flujo de Autorización MCP compatible con la última especificación MCP
  • Panel de Analíticas con monitoreo de seguridad en tiempo real
  • Autenticación de Google integrada mediante NextAuth.js
  • Registro Dinámico de Clientes para la incorporación fluida de clientes MCP
  • Monitoreo de Seguridad con detección de amenazas y alertas
  • Base de Datos PostgreSQL con limpieza automatizada y gestión de TTL

Documentación

📚 Ver Documentación Completa - Sitio interactivo Material para MkDocs

Desarrollo Local de Documentación

# Serve documentation locally with hot reload
./docs-serve.sh

# Or on Windows
docs-serve.bat

# Manual setup
pip install -r requirements.txt
mkdocs serve

Cumplimiento de la Especificación MCP

Hemos intentado implementar todos los requisitos obligatorios especificados en la Especificación de Autorización MCP.

Qué Hace Esto Diferente

  • Puntos de Descubrimiento - Implementación adecuada de RFC 8414 y RFC 9728
  • Soporte de Parámetros de Recurso - Implementación de Indicadores de Recurso RFC 8707
  • Validación de Audiencia de Tokens - Aplicación estricta de límites de seguridad
  • Flujo de Tokens de Refresco - Renovación de tokens compatible con OAuth 2.1
  • Encabezados WWW-Authenticate - Manejo adecuado de respuestas 401
  • Registro Dinámico de Clientes - Soporte RFC 7591 para clientes MCP

Enlaces Rápidos

  • Demo en Vivo: mcp-oauth-sample.vercel.app (El panel de analíticas requiere lista de permitidos de direcciones Gmail)
  • Panel de Analíticas: /analytics (admite múltiples direcciones Gmail)
  • Puntos Finales MCP:
    • SSE: /mcp/sse
    • HTTP: /mcp/mcp
  • Descubrimiento OAuth: /.well-known/oauth-authorization-server

Integración de Clientes MCP

Para Claude Desktop/Web

{
  "mcpServers": {
    "raxIT-oauth": {
      "url": "https://your-domain.com/mcp/sse",
      "transport": "sse"
    }
  }
}

Para Cursor

{
  "mcpServers": {
    "raxIT-oauth": {
      "url": "https://your-domain.com/mcp/mcp", 
      "transport": "http-stream"
    }
  }
}

Contribuciones

¡Damos una cálida bienvenida a las contribuciones de la comunidad! Este proyecto es de código abierto y animamos a los desarrolladores a ayudar a mejorarlo aún más.

Formas de Contribuir

🐛 Reportar Errores - ¿Encontraste un problema? Abre un informe de error
✨ Solicitar Funciones - ¿Tienes una idea? Envía una solicitud de función
📝 Mejorar Documentación - Ayuda a que nuestros documentos sean más claros y completos
🔧 Enviar Código - Corrige errores, agrega funciones o mejora el rendimiento
🧪 Agregar Pruebas - Ayúdanos a aumentar la cobertura y confiabilidad de las pruebas
🎨 Mejorar UI/UX - Haz que el panel de analíticas sea aún mejor

Cómo Empezar

  1. Haz un fork del repositorio en tu cuenta de GitHub
  2. Clona tu fork: git clone https://github.com/your-username/mcp-oauth-sample.git
  3. Instala las dependencias: pnpm install
  4. Configura el entorno: Sigue nuestra Guía de Configuración
  5. Crea una rama: git checkout -b feature/your-feature-name
  6. Haz tus cambios y prueba a fondo
  7. Haz commit: Usa el formato de Commits Convencionales
  8. Haz push y crea una Solicitud de Extracción

Guías de Desarrollo

  • Estilo de Código: Sigue los patrones existentes y usa ESLint/Prettier
  • Pruebas: Agrega pruebas para nuevas funciones y asegúrate de que las pruebas existentes pasen
  • Documentación: Actualiza los documentos relevantes para cualquier cambio
  • Seguridad: Sigue las mejores prácticas de seguridad, especialmente para flujos OAuth
  • Rendimiento: Considera el impacto en analíticas y monitoreo

Comunidad

¡Todos los contribuyentes son bienvenidos! Ya sea corrigiendo errores tipográficos, agregando funciones importantes o ayudando con la documentación - cada contribución cuenta. 🙏

Licencia

Este proyecto está licenciado bajo la Licencia Apache 2.0 - consulta el archivo LICENCIA para más detalles.

Soporte


Construido con ❤️ por raxIT AI

Basado en run-llama/mcp-nextjs con mejoras para aprender autorización MCP.