MCP Server with Google OAuth & Analytics
Un servidor MCP remoto con autenticación OAuth de Google y seguimiento de análisis integrados.
Documentación
Model Context Protocol (MCP) Server + Google OAuth + Analytics
Este es un servidor Model Context Protocol (MCP) que admite conexiones MCP remotas, con Google OAuth integrado y seguimiento analítico integral.
Puedes implementarlo en tu propia cuenta de Cloudflare y, después de crear tu propia aplicación de cliente OAuth de Google Cloud, tendrás un servidor MCP remoto totalmente funcional con seguimiento analítico automático sobre el que puedes construir. Los usuarios podrán conectarse a tu servidor MCP iniciando sesión con su cuenta de Google, mientras tú obtienes información detallada sobre el uso de herramientas, el rendimiento y el comportamiento de los usuarios.
Puedes usar esto como ejemplo de referencia para integrar otros proveedores de OAuth con un servidor MCP implementado en Cloudflare, utilizando la biblioteca workers-oauth-provider y mcp-analytics para un seguimiento integral.
El servidor MCP (impulsado por Cloudflare Workers):
- Actúa como Servidor OAuth para tus clientes MCP
- Actúa como Cliente OAuth para tu servidor OAuth real (en este caso, Google)
- Realiza un seguimiento automático del uso de herramientas, las métricas de rendimiento y el comportamiento de los usuarios
Funciones de Analytics
Este servidor incluye seguimiento analítico automático mediante el SDK de mcp-analytics:
✅ Tiempo de ejecución de herramientas - Cuánto tarda cada herramienta en ejecutarse
✅ Estado de éxito/error - Qué herramientas tienen éxito o fallan
✅ Parámetros de entrada - Qué datos proporcionan los usuarios (los datos confidenciales se redactan automáticamente)
✅ Resultados de herramientas - Datos de salida de las ejecuciones de herramientas (saneados automáticamente)
✅ Detalles de errores - Información completa de errores cuando fallan las herramientas
✅ Información del usuario - Identificación automática del usuario a partir de las propiedades de OAuth
✅ Seguimiento de sesiones - Agrupa las llamadas a herramientas por sesión de usuario
✅ Metadatos del servidor - Nombre y versión del servidor detectados automáticamente
Primeros pasos
Clona el repositorio e instala las dependencias: npm install
Para producción
Crea una nueva aplicación OAuth de Google Cloud:
- Para la URL de la página de inicio, especifica
https://mcp-google-oauth.<your-subdomain>.workers.dev - Para la URL de devolución de llamada de autorización, especifica
https://mcp-google-oauth.<your-subdomain>.workers.dev/callback - Anota tu ID de cliente y genera un secreto de cliente.
- Configura los secretos mediante Wrangler
wrangler secret put GOOGLE_CLIENT_ID
wrangler secret put GOOGLE_CLIENT_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY # add any random string here e.g. openssl rand -hex 32
wrangler secret put HOSTED_DOMAIN # optional: use this when restrict google account domain
wrangler secret put MCP_ANALYTICS_API_KEY # your analytics API key from mcpanalytics.dev
Configura un espacio de nombres KV
- Crea el espacio de nombres KV:
wrangler kv:namespace create "OAUTH_KV" - Actualiza el archivo de Wrangler con el ID de KV
Implementa y prueba
Implementa el servidor MCP para que esté disponible en tu dominio workers.dev
wrangler deploy
Prueba el servidor remoto usando MCP Playground:
- Visita mcpsplayground.com
- Ingresa la URL de tu servidor:
https://mcp-google-oauth.<your-subdomain>.workers.dev/sse - Haz clic en "Conectar" y completa el flujo de autenticación de Google OAuth
- Una vez autenticado, verás tus herramientas disponibles en la interfaz del playground
- Prueba la herramienta "add" proporcionando dos números y observa los resultados con el seguimiento analítico automático
Alternativamente, también puedes probar usando el Inspector tradicional:
npx @modelcontextprotocol/inspector@latest
¡Ahora tienes un servidor MCP remoto implementado con análisis integral!
Control de acceso
Este servidor MCP utiliza Google Cloud OAuth para la autenticación. Todos los usuarios de Google autenticados pueden acceder a herramientas básicas como "add". Cuando restrinjas usuarios con dominio alojado, configura la variable de entorno HOSTED_DOMAIN.
Accede al servidor MCP remoto desde Claude Desktop
Abre Claude Desktop y navega a Configuración -> Desarrollador -> Editar configuración. Esto abre el archivo de configuración que controla a qué servidores MCP puede acceder Claude.
Reemplaza el contenido con la siguiente configuración. Una vez que reinicies Claude Desktop, se abrirá una ventana del navegador mostrando tu página de inicio de sesión de OAuth. Completa el flujo de autenticación para otorgar a Claude acceso a tu servidor MCP. Después de otorgar el acceso, las herramientas estarán disponibles para que las uses.
{
"mcpServers": {
"math": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp-google-oauth.<your-subdomain>.workers.dev/sse"
]
}
}
}
Una vez que las Herramientas (bajo 🔨) aparezcan en la interfaz, puedes pedirle a Claude que las use. Por ejemplo: "¿Podrías usar la herramienta de matemáticas para sumar 23 y 19?". Claude debería invocar la herramienta y mostrar el resultado generado por el servidor MCP, con todas las interacciones rastreadas automáticamente en tu panel de análisis.
Para desarrollo local
Si deseas iterar y probar tu servidor MCP, puedes hacerlo en desarrollo local. Esto requerirá que crees otra aplicación OAuth en Google Cloud:
- Para la URL de la página de inicio, especifica
http://localhost:8788 - Para la URL de devolución de llamada de autorización, especifica
http://localhost:8788/callback - Anota tu ID de cliente y genera un secreto de cliente.
- Crea un archivo
.dev.varsen la raíz de tu proyecto con:
GOOGLE_CLIENT_ID=your_development_google_cloud_oauth_client_id
GOOGLE_CLIENT_SECRET=your_development_google_cloud_oauth_client_secret
MCP_ANALYTICS_API_KEY=your_analytics_api_key
Desarrolla y prueba
Ejecuta el servidor localmente para que esté disponible en http://localhost:8788
wrangler dev
Para probar el servidor local, ingresa http://localhost:8788/sse en Inspector y haz clic en conectar. Una vez que sigas las indicaciones, podrás "Listar herramientas" con el seguimiento analítico habilitado.
Uso con Claude y otros clientes MCP
Al usar Claude para conectarte a tu servidor MCP remoto, es posible que veas algunos mensajes de error. Esto se debe a que Claude Desktop aún no admite servidores MCP remotos, por lo que a veces se confunde. Para verificar si el servidor MCP está conectado, pasa el cursor sobre el icono 🔨 en la esquina inferior derecha de la interfaz de Claude. Deberías ver tus herramientas disponibles allí.
Uso con Cursor y otros clientes MCP
Para conectar Cursor con tu servidor MCP, elige Type: "Comando" y en el campo Command, combina los campos de comando y argumentos en uno solo (por ejemplo, npx mcp-remote https://<your-worker-name>.<your-subdomain>.workers.dev/sse).
Ten en cuenta que, aunque Cursor admite servidores HTTP+SSE, no admite autenticación, por lo que aún necesitas usar mcp-remote (y usar un servidor STDIO, no uno HTTP).
Puedes conectar tu servidor MCP a otros clientes MCP como Windsurf abriendo el archivo de configuración del cliente, agregando el mismo JSON que se usó para la configuración de Claude y reiniciando el cliente MCP.
¿Cómo funciona?
Proveedor de OAuth
La biblioteca del proveedor de OAuth sirve como una implementación completa de servidor OAuth 2.1 para Cloudflare Workers. Maneja las complejidades del flujo de OAuth, incluida la emisión, validación y gestión de tokens. En este proyecto, desempeña un doble rol:
- Autenticar los clientes MCP que se conectan a tu servidor
- Gestionar la conexión con los servicios de OAuth de Google Cloud
- Almacenar de forma segura tokens y estado de autenticación en el almacenamiento KV
MCP Durable con Analytics
MCP Durable extiende la funcionalidad base de MCP con los objetos duraderos de Cloudflare y el seguimiento analítico, proporcionando:
- Gestión de estado persistente para tu servidor MCP
- Almacenamiento seguro del contexto de autenticación entre solicitudes
- Acceso a la información del usuario autenticado mediante
this.props - Soporte para disponibilidad condicional de herramientas según la identidad del usuario
- Seguimiento analítico automático de todo el uso de herramientas con contexto del usuario
- Métricas de rendimiento y monitoreo de errores
- Información integral sobre el comportamiento del usuario y la efectividad de las herramientas
MCP Remoto
La biblioteca MCP Remoto permite que tu servidor exponga herramientas que pueden ser invocadas por clientes MCP como el Inspector. Esta:
- Define el protocolo de comunicación entre los clientes y tu servidor
- Proporciona una forma estructurada de definir herramientas
- Maneja la serialización y deserialización de solicitudes y respuestas
- Mantiene la conexión de eventos enviados por el servidor (SSE) entre los clientes y tu servidor
Panel de Analytics
Visita mcpanalytics.dev para ver tu panel de análisis y obtener información sobre:
- Patrones de uso y popularidad de las herramientas
- Participación del usuario y análisis de sesiones
- Métricas de rendimiento y cuellos de botella
- Tasas de error y análisis de fallos
- Tendencias de éxito/error a lo largo del tiempo