Skip to main content
Glama

Google Calendar MCP Server

by bezael
RAILWAY_DEPLOY.md5.76 kB
# 🚂 Despliegue en Railway Esta guía te ayudará a desplegar el servidor MCP Calendar como API REST en Railway. ## 📋 Requisitos Previos 1. Cuenta en [Railway](https://railway.app/) 2. Repositorio Git (GitHub, GitLab, o Bitbucket) 3. Credenciales de Google Calendar configuradas ## 🚀 Pasos para Desplegar ### 1. Preparar el Repositorio Asegúrate de que tu código esté en un repositorio Git y que todos los cambios estén commiteados: ```bash git add . git commit -m "feat: agregar servidor HTTP para Railway" git push origin main ``` ### 2. Crear Proyecto en Railway 1. Ve a [Railway Dashboard](https://railway.app/dashboard) 2. Click en **"New Project"** 3. Selecciona **"Deploy from GitHub repo"** (o tu proveedor Git) 4. Conecta tu repositorio y selecciona el proyecto `mcp-calendar` ### 3. Configurar Variables de Entorno En el dashboard de Railway, ve a tu proyecto y luego a **Variables**: #### Opción A: OAuth2 (Recomendado para uso personal) Agrega las siguientes variables: ``` GOOGLE_CLIENT_ID=tu-client-id.apps.googleusercontent.com GOOGLE_CLIENT_SECRET=tu-client-secret GOOGLE_REFRESH_TOKEN=tu-refresh-token GOOGLE_REDIRECT_URI=http://localhost:3000/oauth2callback GOOGLE_CALENDAR_ID=primary LOG_LEVEL=info PORT=3000 ``` #### Opción B: Service Account (Recomendado para producción) Si prefieres usar Service Account, agrega: ``` GOOGLE_SERVICE_ACCOUNT_KEY={"type":"service_account","project_id":"...","private_key_id":"...","private_key":"...","client_email":"...","client_id":"...","auth_uri":"...","token_uri":"...","auth_provider_x509_cert_url":"...","client_x509_cert_url":"..."} GOOGLE_CALENDAR_ID=primary LOG_LEVEL=info PORT=3000 ``` **Nota:** El `GOOGLE_SERVICE_ACCOUNT_KEY` debe ser el JSON completo en una sola línea o como variable de entorno multilínea en Railway. ### 4. Configurar el Build Railway detectará automáticamente que es un proyecto Node.js y usará `railway.json` o `Procfile` para construir y ejecutar la aplicación. El proceso será: 1. `npm install` - Instalar dependencias 2. `npm run build` - Compilar TypeScript 3. `npm start` - Iniciar el servidor HTTP ### 5. Verificar el Despliegue Una vez desplegado, Railway te proporcionará una URL pública (ej: `https://tu-app.railway.app`). Puedes verificar que funciona con: ```bash curl https://tu-app.railway.app/health ``` Deberías recibir: ```json { "status": "ok", "service": "mcp-gcal-api" } ``` ## 📡 Endpoints Disponibles Una vez desplegado, tendrás acceso a los siguientes endpoints: ### Health Check ``` GET /health ``` ### Crear Evento ``` POST /api/events Content-Type: application/json { "summary": "Reunión importante", "start": "2025-12-01T10:00:00+01:00", "end": "2025-12-01T11:00:00+01:00", "description": "Descripción opcional", "location": "Oficina", "attendees": ["usuario@example.com"] } ``` ### Obtener Evento ``` GET /api/events/:eventId?calendarId=primary ``` ### Listar Eventos ``` GET /api/events?timeMin=2025-12-01T00:00:00Z&timeMax=2025-12-31T23:59:59Z&maxResults=50 ``` ### Actualizar Evento ``` PUT /api/events/:eventId Content-Type: application/json { "summary": "Nuevo título", "start": "2025-12-01T11:00:00+01:00" } ``` ### Eliminar Evento ``` DELETE /api/events/:eventId?calendarId=primary ``` ## 🔧 Configuración Avanzada ### Dominio Personalizado 1. En Railway, ve a tu servicio 2. Click en **Settings** > **Domains** 3. Agrega tu dominio personalizado ### Variables de Entorno por Entorno Railway permite tener diferentes variables de entorno para: - **Production**: Variables de producción - **Preview**: Variables para preview deployments (branches) ### Logs y Monitoreo - **Logs en tiempo real**: Ve a tu servicio en Railway y click en **Deployments** > **View Logs** - **Métricas**: Railway proporciona métricas básicas de CPU, memoria y red ## 🐛 Troubleshooting ### Error: "Cannot find module" Asegúrate de que `package.json` tenga todas las dependencias necesarias y que el build se complete correctamente. ### Error: "Port already in use" Railway asigna el puerto automáticamente a través de la variable `PORT`. No necesitas configurarlo manualmente. ### Error de Autenticación con Google 1. Verifica que todas las variables de entorno estén correctamente configuradas 2. Asegúrate de que el `refresh_token` no haya expirado 3. Si usas Service Account, verifica que el JSON esté completo y bien formateado ### El servidor no inicia Revisa los logs en Railway: 1. Ve a tu servicio 2. Click en **Deployments** 3. Selecciona el deployment más reciente 4. Revisa los logs para ver el error específico ## 📝 Notas Importantes - **Puerto**: Railway asigna el puerto automáticamente. Usa `process.env.PORT` (ya configurado en `server.ts`) - **HTTPS**: Railway proporciona HTTPS automáticamente - **Cold Starts**: El primer request después de inactividad puede tardar unos segundos - **Límites**: Railway tiene límites en el plan gratuito. Revisa [Railway Pricing](https://railway.app/pricing) ## 🔄 Actualizar el Despliegue Cada vez que hagas push a tu repositorio, Railway detectará los cambios y desplegará automáticamente una nueva versión. Para desplegar manualmente: 1. Ve a tu servicio en Railway 2. Click en **Deployments** 3. Click en **Redeploy** en el deployment que quieras ## 📚 Recursos Adicionales - [Railway Documentation](https://docs.railway.app/) - [Railway Discord](https://discord.gg/railway) - [Google Calendar API Docs](https://developers.google.com/calendar/api/v3/reference)

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/bezael/mcp-calendar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server