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

Métricas de Uso OAuth

Monitoreo de Seguridad DIY

Uso de Herramientas de Clientes MCP

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
- SSE:
- 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
- Haz un fork del repositorio en tu cuenta de GitHub
- Clona tu fork:
git clone https://github.com/your-username/mcp-oauth-sample.git - Instala las dependencias:
pnpm install - Configura el entorno: Sigue nuestra Guía de Configuración
- Crea una rama:
git checkout -b feature/your-feature-name - Haz tus cambios y prueba a fondo
- Haz commit: Usa el formato de Commits Convencionales
- 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
- 💬 Discusiones: Únete a conversaciones en Discusiones de GitHub
- 💼 LinkedIn: Síguenos en LinkedIn
- 🐦 X (Twitter): Sigue @raxit_ai para actualizaciones
- 🦋 Bluesky: Conéctate en Bluesky
¡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
- Problemas: Problemas de GitHub
- Documentación: docs/
Construido con ❤️ por raxIT AI
Basado en run-llama/mcp-nextjs con mejoras para aprender autorización MCP.