MCP Analytics with GitHub OAuth
Un servidor MCP remoto con autenticación GitHub OAuth y seguimiento analítico integrado.
Documentación
Servidor de Protocolo de Contexto de Modelo (MCP) + GitHub OAuth + Analíticas
Este es un servidor de Protocolo de Contexto de Modelo (MCP) que admite conexiones MCP remotas, con autenticación GitHub OAuth y seguimiento de analíticas integrado impulsado por MCP Analytics.
Puedes implementarlo en tu propia cuenta de Cloudflare y, después de crear tu propia aplicación de cliente OAuth de GitHub, tendrás un servidor MCP remoto completamente funcional con analíticas exhaustivas. Los usuarios podrán conectarse a tu servidor MCP iniciando sesión con su cuenta de GitHub, y obtendrás información detallada sobre el uso de herramientas, el rendimiento y el comportamiento de los usuarios.
Características
- ✅ Autenticación GitHub OAuth - Autenticación segura de usuarios mediante GitHub
- ✅ Protocolo MCP Remoto - Implementación completa del servidor MCP
- ✅ Seguimiento de Analíticas - Seguimiento automático del uso de herramientas, rendimiento y métricas de usuarios
- ✅ Control de Acceso - Acceso a herramientas basado en roles según nombres de usuario de GitHub
- ✅ Generación de Imágenes - Generación de imágenes impulsada por IA para usuarios autorizados
- ✅ Listo para Producción - Implementado en Cloudflare Workers con Durable Objects
Panel de Analíticas
Este servidor realiza un seguimiento automático de:
- 📊 Uso de Herramientas - Qué herramientas se utilizan con más frecuencia
- ⏱️ Métricas de Rendimiento - Tiempos de ejecución y tasas de éxito
- 👥 Analíticas de Usuarios - Usuarios activos y datos de sesiones
- 🔧 Seguimiento de Errores - Solicitudes fallidas y detalles de errores
- 💰 Seguimiento de Ingresos - Eventos de pago (si se utilizan herramientas de pago)
Consulta tus analíticas en: https://mcpanalytics.dev
Primeros Pasos
Clona el repositorio directamente e instala las dependencias:
git clone <your-repo-url>
cd mcp-github-oauth-analytics
npm install
Instrucciones de Configuración
1. Configuración de MCP Analytics
- Regístrate en https://mcpanalytics.dev
- Crea un nuevo proyecto y obtén tu clave de API
- Añade la clave de API a tu entorno:
# For production
wrangler secret put MCP_ANALYTICS_API_KEY
# For local development (.dev.vars file)
MCP_ANALYTICS_API_KEY=your_api_key_here
2. Configuración de GitHub OAuth
Para Producción
Crea una nueva Aplicación OAuth de GitHub:
- URL de página de inicio:
https://your-worker-name.your-subdomain.workers.dev - URL de devolución de llamada de autorización:
https://your-worker-name.your-subdomain.workers.dev/callback - Anota tu ID de cliente y genera un secreto de cliente
Establece los secretos mediante Wrangler:
wrangler secret put GITHUB_CLIENT_ID
wrangler secret put GITHUB_CLIENT_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY # Use: openssl rand -hex 32
Para Desarrollo Local
Crea otra Aplicación OAuth de GitHub para desarrollo:
- URL de página de inicio:
http://localhost:8788 - URL de devolución de llamada de autorización:
http://localhost:8788/callback
Crea un archivo .dev.vars:
GITHUB_CLIENT_ID=your_development_github_client_id
GITHUB_CLIENT_SECRET=your_development_github_client_secret
COOKIE_ENCRYPTION_KEY=your_random_encryption_key
MCP_ANALYTICS_API_KEY=your_analytics_api_key
3. Configuración del Espacio de Nombres KV
# Create the KV namespace
wrangler kv:namespace create "OAUTH_KV"
# Update wrangler.toml with the returned KV ID
4. Configurar el Control de Acceso
Edita el ALLOWED_USERNAMES en tu archivo principal para controlar quién puede acceder a la herramienta de generación de imágenes:
const ALLOWED_USERNAMES = new Set<string>([
'yourusername',
'teammate1',
'teammate2'
]);
Implementación
Implementa en Cloudflare Workers:
wrangler deploy
Tu servidor MCP estará disponible en:
https://your-worker-name.your-subdomain.workers.dev/sse
Prueba de tu Servidor
Usando MCP Inspector
npx @modelcontextprotocol/inspector@latest
Introduce la URL de tu servidor y prueba el flujo de autenticación.
Usando Claude Desktop
- Abre Claude Desktop → Configuración → Desarrollador → Editar Configuración
- Añade esta configuración:
{
"mcpServers": {
"github-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-worker-name.your-subdomain.workers.dev/sse"
]
}
}
}
- Reinicia Claude Desktop y completa el flujo OAuth
- Prueba con: "¿Podrías usar la herramienta de matemáticas para sumar 23 y 19?"
Usando Otros Clientes MCP
Cursor: Usa el formato de comando: npx mcp-remote https://your-worker-url/sse
Windsurf: Añade la misma configuración JSON que en Claude Desktop
Herramientas Disponibles
add (Todos los Usuarios)
Herramienta simple de suma matemática para probar la conectividad.
Uso: "Suma 5 y 3"
generateImage (Solo Usuarios Autorizados)
Generación de imágenes impulsada por IA utilizando el modelo Flux de Cloudflare.
Uso: "Genera una imagen de una puesta de sol sobre las montañas"
Parámetros:
prompt: Descripción de la imagen a generarsteps: Pasos de calidad (4-8, mayor = mejor calidad)
Integración de Analíticas
Este servidor utiliza el AnalyticsMcpAgent que realiza un seguimiento automático de:
- ✅ Tiempos de Ejecución de Herramientas - Cuánto tarda cada herramienta en ejecutarse
- ✅ Tasas de Éxito/Fallo - Qué herramientas funcionan de manera fiable
- ✅ Sesiones de Usuarios - Quién usa tu servidor y cuándo
- ✅ Registro de Parámetros - Qué entradas proporcionan los usuarios (saneadas de forma segura)
- ✅ Detalles de Errores - Contexto completo de errores para depuración
- ✅ Datos de Usuario de GitHub - Correo electrónico y nombre de usuario de OAuth (para analíticas de usuarios)
Visualización de Analíticas
- Visita https://dashboard.mcpanalytics.dev
- Inicia sesión con la misma cuenta utilizada para crear tu clave de API
- Consulta paneles en tiempo real que muestran:
- Tendencias de uso de herramientas
- Métricas de rendimiento
- Actividad de usuarios
- Tasas de error y detalles
Desarrollo Local
Inicia el servidor de desarrollo:
wrangler dev
Tu servidor estará disponible en http://localhost:8788/sse
Arquitectura
Proveedor OAuth
La biblioteca del Proveedor OAuth sirve como una implementación completa del servidor OAuth 2.1, gestionando:
- Autenticación de clientes MCP
- Integración con GitHub OAuth
- Gestión y validación de tokens
- Almacenamiento seguro de estado en Cloudflare KV
Agente de Analíticas
El AnalyticsMcpAgent amplía la funcionalidad base de MCP con:
- Seguimiento automático de eventos para todas las llamadas a herramientas
- Identificación de usuarios mediante propiedades OAuth
- Monitoreo de rendimiento y seguimiento de errores
- Registro seguro de parámetros y resultados
Durable Objects
Proporciona gestión de estado persistente con:
- Continuidad de sesiones de usuarios
- Preservación del contexto de autenticación
- Conexiones en tiempo real escalables
Seguridad y Privacidad
- 🔒 OAuth 2.1 - Autenticación estándar de la industria
- 🔐 Tokens Cifrados - Todos los datos de autenticación cifrados en tránsito y almacenamiento
- 🛡️ Control de Acceso - Permisos granulares por usuario de GitHub
- 🧹 Saneamiento de Datos - Los datos sensibles se redactan automáticamente de los registros
- ⏰ Expiración de Tokens - Renovación y expiración automática de tokens
Solución de Problemas
Problemas Comunes
"Clave de API no válida" en analíticas: Verifica que tu MCP_ANALYTICS_API_KEY esté configurada correctamente
Errores de devolución de llamada OAuth: Asegúrate de que las URL de tu aplicación OAuth de GitHub coincidan exactamente con las URL de tu implementación
Las herramientas no aparecen: Comprueba que el nombre de usuario de GitHub del usuario esté en ALLOWED_USERNAMES para herramientas restringidas
Tiempos de espera de conexión: Verifica que tu Worker esté implementado y respondiendo en la URL correcta
Soporte
- 📖 Documentación de MCP Analytics: https://docs.mcpanalytics.dev
- 💬 Problemas de GitHub: Para errores y solicitudes de funciones
- 📧 Soporte por Correo Electrónico: Disponible para usuarios del plan Pro
Licencia
Licencia MIT - consulta el archivo LICENSE para obtener más detalles.