Google Workspace MCP Server
Un servidor MCP para interactuar con servicios de Google Workspace como Gmail y Calendar.
Documentación
Servidor MCP de Google Workspace
Un servidor de Model Context Protocol (MCP) que proporciona herramientas para interactuar con las APIs de Gmail y Calendar. Este servidor te permite gestionar tus correos electrónicos y eventos de calendario de forma programática a través de la interfaz MCP.
Características
Herramientas de Gmail
list_emails: Lista los correos electrónicos recientes de tu bandeja de entrada con filtrado opcionalsearch_emails: Búsqueda avanzada de correos electrónicos con sintaxis de consulta de Gmailsend_email: Envía nuevos correos electrónicos con soporte para CC y CCOmodify_email: Modifica las etiquetas de los correos electrónicos (archivar, mover a papelera, marcar como leído/no leído)
Herramientas de Calendar
list_events: Lista los próximos eventos del calendario con filtrado por rango de fechascreate_event: Crea nuevos eventos de calendario con asistentesupdate_event: Actualiza eventos de calendario existentesdelete_event: Elimina eventos de calendario
Requisitos previos
- Node.js: Instala Node.js versión 14 o superior
- Configuración de Google Cloud Console:
- Ve a Google Cloud Console
- Crea un nuevo proyecto o selecciona uno existente
- Habilita la API de Gmail y la API de Google Calendar:
- Ve a "APIs y servicios" > "Biblioteca"
- Busca y habilita "Gmail API"
- Busca y habilita "Google Calendar API"
- Configura las credenciales de OAuth 2.0:
- Ve a "APIs y servicios" > "Credenciales"
- Haz clic en "Crear credenciales" > "ID de cliente de OAuth"
- Elige "Aplicación web"
- Establece "URI de redireccionamiento autorizados" para incluir:
http://localhost:4100/code - Anota el ID de cliente y el secreto de cliente
Instrucciones de configuración
-
Clonar e instalar:
git clone https://github.com/epaproditus/google-workspace-mcp-server.git cd google-workspace-mcp-server npm install -
Crear credenciales de OAuth: Crea un archivo
credentials.jsonen el directorio raíz:{ "web": { "client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET", "redirect_uris": ["http://localhost:4100/code"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token" } } -
Obtener token de actualización:
node get-refresh-token.jsEsto:
- Abrirá tu navegador para la autenticación de OAuth de Google
- Solicitará los siguientes permisos:
https://www.googleapis.com/auth/gmail.modifyhttps://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/gmail.send
- Guardará las credenciales en
token.json - Mostrará el token de actualización en la consola
-
Configurar los ajustes de MCP: Añade la configuración del servidor a tu archivo de ajustes de MCP:
- Para la extensión de Claude en VSCode:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Para la aplicación de escritorio de Claude:
~/Library/Application Support/Claude/claude_desktop_config.json
Añade esto al objeto
mcpServers:{ "mcpServers": { "google-workspace": { "command": "node", "args": ["/path/to/google-workspace-server/build/index.js"], "env": { "GOOGLE_CLIENT_ID": "your_client_id", "GOOGLE_CLIENT_SECRET": "your_client_secret", "GOOGLE_REFRESH_TOKEN": "your_refresh_token" } } } } - Para la extensión de Claude en VSCode:
-
Compilar y ejecutar:
npm run build
Ejemplos de uso
Operaciones de Gmail
-
Listar correos electrónicos recientes:
{ "maxResults": 5, "query": "is:unread" } -
Buscar correos electrónicos:
{ "query": "from:example@gmail.com has:attachment", "maxResults": 10 } -
Enviar correo electrónico:
{ "to": "recipient@example.com", "subject": "Hello", "body": "Message content", "cc": "cc@example.com", "bcc": "bcc@example.com" } -
Modificar correo electrónico:
{ "id": "message_id", "addLabels": ["UNREAD"], "removeLabels": ["INBOX"] }
Operaciones de Calendar
-
Listar eventos:
{ "maxResults": 10, "timeMin": "2024-01-01T00:00:00Z", "timeMax": "2024-12-31T23:59:59Z" } -
Crear evento:
{ "summary": "Team Meeting", "location": "Conference Room", "description": "Weekly sync-up", "start": "2024-01-24T10:00:00Z", "end": "2024-01-24T11:00:00Z", "attendees": ["colleague@example.com"] } -
Actualizar evento:
{ "eventId": "event_id", "summary": "Updated Meeting Title", "location": "Virtual", "start": "2024-01-24T11:00:00Z", "end": "2024-01-24T12:00:00Z" } -
Eliminar evento:
{ "eventId": "event_id" }
Solución de problemas
-
Problemas de autenticación:
- Asegúrate de que todos los alcances de OAuth requeridos estén concedidos
- Verifica que el ID de cliente y el secreto sean correctos
- Comprueba si el token de actualización es válido
-
Errores de API:
- Consulta Google Cloud Console para ver las cuotas y límites de la API
- Asegúrate de que las APIs estén habilitadas para tu proyecto
- Verifica que los parámetros de solicitud coincidan con el formato requerido
Licencia
Este proyecto está licenciado bajo la Licencia MIT.