Google Calendar MCP OAuth Proxy
Google Calendar MCP OAuth Proxy
Este Worker actúa como el límite de OAuth entre un cliente MCP como Codex y el MCP oficial de Calendar de Google.
Codex / MCP client
|
| OAuth to this Worker
v
Cloudflare OAuth Provider
|
| Google OAuth (client ID + client secret)
v
Google OAuth
|
| Google access token
v
Google Calendar MCP
https://calendarmcp.googleapis.com/mcp/v1El cliente nunca recibe el secreto de cliente OAuth de Google. Los datos confidenciales y tokens de refresh de Google se almacenan en las propiedades cifradas de la concesión OAuth gestionadas por el proveedor de OAuth de Cloudflare. El manejador protegido /mcp reemplaza el token Bearer local del cliente por el token de acceso de Google del usuario antes de reenviar el tráfico MCP al destino.
Ámbitos de Google Calendar
wrangler.jsonc define los ámbitos de Calendar de Google en GOOGLE_OAUTH_SCOPES:
https://www.googleapis.com/auth/calendar.calendarlist.readonly
https://www.googleapis.com/auth/calendar.events.freebusy
https://www.googleapis.com/auth/calendar.events.readonly
https://www.googleapis.com/auth/calendar.calendarsEl worker añade automáticamente email profile porque el callback usa el endpoint de información de usuario de Google para identificar al usuario autorizado.
La solicitud de autorización de Google también utiliza access_type=offline y prompt=consent para que Google devuelva un token de actualización.
Related MCP server: google-mcp-server
Secretos locales
Copia el archivo de ejemplo:
cp .dev.vars.example .dev.varsEstablece:
GOOGLE_CLIENT_ID=<Google OAuth web client ID>
GOOGLE_CLIENT_SECRET=<Google OAuth client secret>
COOKIE_ENCRYPTION_KEY=<strong random secret>
HOSTED_DOMAIN=<optional Google Workspace domain restriction>GOOGLE_OAUTH_SCOPES y GOOGLE_MCP_URL son variables de worker no secretas en wrangler.jsonc.
Cliente OAuth de Google Cloud
Usa un cliente de aplicación web de OAuth de Google.
El URI de redirección autorizado debe ser el nombre de host público de este Worker o túnel más /callback:
https://mcp-auth.example.com/callbackAñade los ámbitos de Calendar listados anteriormente a la configuración de consentimiento/acceso a datos de Google Auth Platform.
Ejecutar localmente
Instala las dependencias y genera los tipos del Worker:
npm install
npm run cf-typegenInicia Wrangler localmente en el puerto 5555:
npm run devEl endpoint local es:
http://localhost:5555/mcpOAuth requiere un callback HTTPS público, así que para pruebas locales de extremo a extremo usa un Cloudflare Tunnel.
Túnel con nombre estable
Un nombre de host estable es preferible porque el mismo callback debe registrarse en Google Cloud.
npx wrangler dev --tunnel-name=mcp-google-auth --tunnelConfigura el nombre de host del túnel con nombre para que apunte al servidor de desarrollo de Wrangler. Por ejemplo:
https://mcp-auth.example.com -> local Wrangler dev serverLuego registra:
https://mcp-auth.example.com/callbackcomo el URI de redirección de OAuth de Google.
La URL MCP expuesta a Codex es:
https://mcp-auth.example.com/mcpConfiguración de Codex
Como este Worker es el servidor de autorización OAuth que ve Codex, Codex no necesita el ID de cliente de Google ni el secreto de cliente de Google.
[mcp_servers.google_calendar_proxy]
enabled = true
url = "https://mcp-auth.example.com/mcp"
auth = "oauth"Luego autentícate:
codex mcp login google_calendar_proxyEl flujo esperado es:
Codex descubre los endpoints del OAuth de este Worker.
Codex se registra/autentica con este Worker.
El Worker envía el navegador a Google.
Google redirige a
/callbacken el Worker/túnel.El Worker intercambia el código de autorización de Google usando
GOOGLE_CLIENT_SECRET.Codex recibe un token OAuth emitido por el Worker.
Las llamadas a
/mcpse reenvían al MCP oficial de Calendar de Google usando el token de acceso de Google del usuario.
Comportamiento de emisión de tokens de refresh
El token de refresh de Google se retiene en las props cifradas de la concesión de OAuth. El proxy mantiene una caché LRU acotada y local al isolate con los tokens de acceso de Google, elimina las entradas cuando alcanzan la ventana de refresh y limita la caché a 100 usuarios. Si el token de acceso almacenado caduca, o si el MCP de Google devuelve 401, el Worker usa el token de refresh de Google junto con el secreto de cliente del lado del Worker para generar un nuevo token de acceso de Google y reintentar una vez.
La memoria caché en memoria es solo una optimización. Un nuevo isolate del Worker siempre puede actualizar desde las tiendas cifradas de la concesión.
Protocolos heredados
Las concesiones de OAuth creadas antes de permitir el token de refresh contienen solo el token de acceso original de Google y los metadatos del usuario. El proxy detecta estas concesiones y continúa usando su token de acceso existente mientras Google lo acepta. Cuando Google rechaza ese token, el Worker devuelve 401 invalid_token para que la conexión MCP pueda ser reautorizada en lugar de intentar actualizar con credenciales faltantes.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables authentication and authorization with Google's OAuth2 API, allowing users to securely authenticate and access Google services through natural language interactions.
- AlicenseNot gradedqualityDmaintenanceMCP Server for Google Services, with the ability to define your own scopes and bring your own oauth key.3MIT
- FlicenseNot gradedqualityDmaintenanceEnables seamless Google Calendar integration with MCP-compatible clients, allowing creation, viewing, updating, and deletion of calendar events via OAuth 2.0 authentication.
- AlicenseNot gradedqualityCmaintenanceEnables access to Google Workspace services (Calendar, Gmail, Drive, Tasks) via an MCP server deployed on Vercel.1,226MIT
Related MCP Connectors
Streamable HTTP MCP server for Google Calendar and Sheets with OAuth login.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Self-hosted federated MCP gateway: one OAuth 2.1 MCP server in front of N apps, user-level scopes.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/REVREBEL/cloudflare-mcp-google-auth'
If you have feedback or need assistance with the MCP directory API, please join our Discord server