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 opcional
  • search_emails: Búsqueda avanzada de correos electrónicos con sintaxis de consulta de Gmail
  • send_email: Envía nuevos correos electrónicos con soporte para CC y CCO
  • modify_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 fechas
  • create_event: Crea nuevos eventos de calendario con asistentes
  • update_event: Actualiza eventos de calendario existentes
  • delete_event: Elimina eventos de calendario

Requisitos previos

  1. Node.js: Instala Node.js versión 14 o superior
  2. 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:
      1. Ve a "APIs y servicios" > "Biblioteca"
      2. Busca y habilita "Gmail API"
      3. Busca y habilita "Google Calendar API"
    • Configura las credenciales de OAuth 2.0:
      1. Ve a "APIs y servicios" > "Credenciales"
      2. Haz clic en "Crear credenciales" > "ID de cliente de OAuth"
      3. Elige "Aplicación web"
      4. Establece "URI de redireccionamiento autorizados" para incluir: http://localhost:4100/code
      5. Anota el ID de cliente y el secreto de cliente

Instrucciones de configuración

  1. Clonar e instalar:

    git clone https://github.com/epaproditus/google-workspace-mcp-server.git
    cd google-workspace-mcp-server
    npm install
    
  2. Crear credenciales de OAuth: Crea un archivo credentials.json en 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"
        }
    }
    
  3. Obtener token de actualización:

    node get-refresh-token.js
    

    Esto:

    • Abrirá tu navegador para la autenticación de OAuth de Google
    • Solicitará los siguientes permisos:
      • https://www.googleapis.com/auth/gmail.modify
      • https://www.googleapis.com/auth/calendar
      • https://www.googleapis.com/auth/gmail.send
    • Guardará las credenciales en token.json
    • Mostrará el token de actualización en la consola
  4. 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"
          }
        }
      }
    }
    
  5. Compilar y ejecutar:

    npm run build
    

Ejemplos de uso

Operaciones de Gmail

  1. Listar correos electrónicos recientes:

    {
      "maxResults": 5,
      "query": "is:unread"
    }
    
  2. Buscar correos electrónicos:

    {
      "query": "from:example@gmail.com has:attachment",
      "maxResults": 10
    }
    
  3. Enviar correo electrónico:

    {
      "to": "recipient@example.com",
      "subject": "Hello",
      "body": "Message content",
      "cc": "cc@example.com",
      "bcc": "bcc@example.com"
    }
    
  4. Modificar correo electrónico:

    {
      "id": "message_id",
      "addLabels": ["UNREAD"],
      "removeLabels": ["INBOX"]
    }
    

Operaciones de Calendar

  1. Listar eventos:

    {
      "maxResults": 10,
      "timeMin": "2024-01-01T00:00:00Z",
      "timeMax": "2024-12-31T23:59:59Z"
    }
    
  2. 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"]
    }
    
  3. Actualizar evento:

    {
      "eventId": "event_id",
      "summary": "Updated Meeting Title",
      "location": "Virtual",
      "start": "2024-01-24T11:00:00Z",
      "end": "2024-01-24T12:00:00Z"
    }
    
  4. Eliminar evento:

    {
      "eventId": "event_id"
    }
    

Solución de problemas

  1. 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
  2. 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.