Gmail AutoAuth MCP Server

MIT License
54,598
139
  • Linux
  • Apple

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Enables AI assistants to manage Gmail through natural language interactions, including sending emails, reading messages, searching emails, managing labels, and handling attachments via the Gmail API with OAuth2 authentication.

  • Requires Google Cloud Project setup to obtain OAuth credentials for Gmail API access. Users must create a project in Google Cloud Console and enable the Gmail API.

Servidor MCP de autenticación automática de Gmail

Un servidor de Protocolo de Contexto de Modelo (MCP) para la integración de Gmail en Claude Desktop con compatibilidad con autenticación automática. Este servidor permite a los asistentes de IA gestionar Gmail mediante interacciones de lenguaje natural.

Características

  • Enviar correos electrónicos con asunto, contenido, archivos adjuntos y destinatarios
  • Soporte completo para caracteres internacionales en líneas de asunto y contenido de correo electrónico
  • Leer mensajes de correo electrónico por ID con manejo avanzado de estructura MIME
  • Ver información de archivos adjuntos de correo electrónico (nombres de archivo, tipos, tamaños)
  • Buscar correos electrónicos con varios criterios (asunto, remitente, rango de fechas)
  • Gestión integral de etiquetas con capacidad para crear, actualizar, eliminar y enumerar etiquetas
  • Enumere todas las etiquetas de Gmail disponibles (del sistema y definidas por el usuario)
  • Lista de correos electrónicos en la bandeja de entrada, enviados o etiquetas personalizadas
  • Marcar correos electrónicos como leídos/no leídos
  • Mover correos electrónicos a diferentes etiquetas/carpetas
  • Eliminar correos electrónicos
  • Operaciones por lotes para procesar eficientemente varios correos electrónicos a la vez
  • Integración completa con la API de Gmail
  • Flujo de autenticación OAuth2 simple con inicio automático del navegador
  • Compatibilidad con credenciales de aplicaciones web y de escritorio
  • Almacenamiento global de credenciales para mayor comodidad

Instalación y autenticación

Instalación mediante herrería

Para instalar Gmail AutoAuth para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @gongrzhe/server-gmail-autoauth-mcp --client claude

Instalación manual

  1. Crea un proyecto de Google Cloud y obtén las credenciales:a. Crear un proyecto de Google Cloud:

    b. Crear credenciales OAuth 2.0:

    • Vaya a "API y servicios" > "Credenciales".
    • Haga clic en "Crear credenciales" > "ID de cliente OAuth".
    • Elija "Aplicación de escritorio" o "Aplicación web" como tipo de aplicación
    • Dale un nombre y haz clic en "Crear"
    • Para la aplicación web, agregue http://localhost:3000/oauth2callback a las URI de redireccionamiento autorizadas
    • Descargue el archivo JSON de las claves OAuth de su cliente
    • Cambie el nombre del archivo de clave a gcp-oauth.keys.json
  2. Ejecutar autenticación:Puedes autenticarte de dos maneras:a. Autenticación global (recomendada):
    # First time: Place gcp-oauth.keys.json in your home directory's .gmail-mcp folder mkdir -p ~/.gmail-mcp mv gcp-oauth.keys.json ~/.gmail-mcp/ # Run authentication from anywhere npx @gongrzhe/server-gmail-autoauth-mcp auth
    b. Autenticación local:
    # Place gcp-oauth.keys.json in your current directory # The file will be automatically copied to global config npx @gongrzhe/server-gmail-autoauth-mcp auth
    El proceso de autenticación:
    • Busque gcp-oauth.keys.json en el directorio actual o ~/.gmail-mcp/
    • Si se encuentra en el directorio actual, cópielo a ~/.gmail-mcp/
    • Abra su navegador predeterminado para la autenticación de Google
    • Guardar las credenciales como ~/.gmail-mcp/credentials.json

    Nota :

    • Después de una autenticación exitosa, las credenciales se almacenan globalmente en ~/.gmail-mcp/ y se pueden usar desde cualquier directorio.
    • Se admiten credenciales tanto de aplicaciones de escritorio como de aplicaciones web
    • Para las credenciales de la aplicación web, asegúrese de agregar http://localhost:3000/oauth2callback a sus URI de redireccionamiento autorizados
  3. Configurar en Claude Desktop:
{ "mcpServers": { "gmail": { "command": "npx", "args": [ "@gongrzhe/server-gmail-autoauth-mcp" ] } } }

Soporte de Docker

Si prefieres usar Docker:

  1. Autenticación:
docker run -i --rm \ --mount type=bind,source=/path/to/gcp-oauth.keys.json,target=/gcp-oauth.keys.json \ -v mcp-gmail:/gmail-server \ -e GMAIL_OAUTH_PATH=/gcp-oauth.keys.json \ -e "GMAIL_CREDENTIALS_PATH=/gmail-server/credentials.json" \ -p 3000:3000 \ mcp/gmail auth
  1. Uso:
{ "mcpServers": { "gmail": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "mcp-gmail:/gmail-server", "-e", "GMAIL_CREDENTIALS_PATH=/gmail-server/credentials.json", "mcp/gmail" ] } } }

Autenticación del servidor en la nube

Para entornos de servidores en la nube (como n8n), puede especificar una URL de devolución de llamada personalizada durante la autenticación:

npx @gongrzhe/server-gmail-autoauth-mcp auth https://gmail.gongrzhe.com/oauth2callback

Instrucciones de configuración para el entorno de nube

  1. Configurar proxy inverso:
    • Configure su contenedor n8n para exponer un puerto para la autenticación
    • Configure un proxy inverso para reenviar el tráfico desde su dominio (por ejemplo, gmail.gongrzhe.com ) a este puerto
  2. Configuración de DNS:
    • Agregue un registro A en su configuración de DNS para resolver su dominio a la dirección IP de su servidor en la nube
  3. Configuración de Google Cloud Platform:
    • En Google Cloud Console, agregue su URL de devolución de llamada de dominio personalizado (por ejemplo, https://gmail.gongrzhe.com/oauth2callback ) a la lista de URI de redireccionamiento autorizados.
  4. Ejecutar autenticación:
    npx @gongrzhe/server-gmail-autoauth-mcp auth https://gmail.gongrzhe.com/oauth2callback
  5. Configura en tu aplicación:
    { "mcpServers": { "gmail": { "command": "npx", "args": [ "@gongrzhe/server-gmail-autoauth-mcp" ] } } }

Este enfoque permite que los flujos de autenticación funcionen correctamente en entornos donde no se puede acceder al host local, como aplicaciones en contenedores o servidores en la nube.

Herramientas disponibles

El servidor proporciona las siguientes herramientas que se pueden utilizar a través de Claude Desktop:

1. Enviar correo electrónico ( send_email )

Envía un nuevo correo electrónico inmediatamente.

{ "to": ["recipient@example.com"], "subject": "Meeting Tomorrow", "body": "Hi,\n\nJust a reminder about our meeting tomorrow at 10 AM.\n\nBest regards", "cc": ["cc@example.com"], "bcc": ["bcc@example.com"] }

2. Borrador de correo electrónico ( draft_email )

Crea un borrador de correo electrónico sin enviarlo.

{ "to": ["recipient@example.com"], "subject": "Draft Report", "body": "Here's the draft report for your review.", "cc": ["manager@example.com"] }

3. Leer correo electrónico ( read_email )

Recupera el contenido de un correo electrónico específico por su ID.

{ "messageId": "182ab45cd67ef" }

4. Buscar correos electrónicos ( search_emails )

Busca correos electrónicos utilizando la sintaxis de búsqueda de Gmail.

{ "query": "from:sender@example.com after:2024/01/01 has:attachment", "maxResults": 10 }

5. Modificar el correo electrónico ( modify_email )

Agrega o elimina etiquetas de los correos electrónicos (mover a diferentes carpetas, archivar, etc.).

{ "messageId": "182ab45cd67ef", "addLabelIds": ["IMPORTANT"], "removeLabelIds": ["INBOX"] }

6. Eliminar correo electrónico ( delete_email )

Elimina permanentemente un correo electrónico.

{ "messageId": "182ab45cd67ef" }

7. Lista de etiquetas de correo electrónico ( list_email_labels )

Recupera todas las etiquetas de Gmail disponibles.

{}

8. Crear etiqueta ( create_label )

Crea una nueva etiqueta de Gmail.

{ "name": "Important Projects", "messageListVisibility": "show", "labelListVisibility": "labelShow" }

9. Actualizar etiqueta ( update_label )

Actualiza una etiqueta de Gmail existente.

{ "id": "Label_1234567890", "name": "Urgent Projects", "messageListVisibility": "show", "labelListVisibility": "labelShow" }

10. Eliminar etiqueta ( delete_label )

Elimina una etiqueta de Gmail.

{ "id": "Label_1234567890" }

11. Obtener o crear etiqueta ( get_or_create_label )

Obtiene una etiqueta existente por nombre o la crea si no existe.

{ "name": "Project XYZ", "messageListVisibility": "show", "labelListVisibility": "labelShow" }

12. Modificar correos electrónicos por lotes ( batch_modify_emails )

Modifica las etiquetas de múltiples correos electrónicos en lotes eficientes.

{ "messageIds": ["182ab45cd67ef", "182ab45cd67eg", "182ab45cd67eh"], "addLabelIds": ["IMPORTANT"], "removeLabelIds": ["INBOX"], "batchSize": 50 }

13. Eliminar correos electrónicos por lotes ( batch_delete_emails )

Elimina permanentemente varios correos electrónicos en lotes eficientes.

{ "messageIds": ["182ab45cd67ef", "182ab45cd67eg", "182ab45cd67eh"], "batchSize": 50 }

Sintaxis de búsqueda avanzada

La herramienta search_emails admite los potentes operadores de búsqueda de Gmail:

OperadorEjemploDescripción
from:from:john@example.comCorreos electrónicos de un remitente específico
to:to:mary@example.comCorreos electrónicos enviados a un destinatario específico
subject:subject:"meeting notes"Correos electrónicos con texto específico en el asunto
has:attachmenthas:attachmentCorreos electrónicos con archivos adjuntos
after:after:2024/01/01Correos electrónicos recibidos después de una fecha
before:before:2024/02/01Correos electrónicos recibidos antes de una fecha
is:is:unreadCorreos electrónicos con un estado específico
label:label:workCorreos electrónicos con una etiqueta específica

Puedes combinar varios operadores: from:john@example.com after:2024/01/01 has:attachment

Funciones avanzadas

Extracción de contenido de correo electrónico

El servidor extrae de forma inteligente el contenido del correo electrónico de estructuras MIME complejas:

  • Prioriza el contenido de texto simple cuando está disponible
  • Vuelve al contenido HTML si no hay texto sin formato disponible
  • Maneja mensajes MIME de varias partes con partes anidadas
  • Procesa información de archivos adjuntos (nombre de archivo, tipo, tamaño)
  • Conserva los encabezados de correo electrónico originales (De, Para, Asunto, Fecha)

Soporte de personajes internacionales

El servidor admite totalmente caracteres no ASCII en los asuntos y el contenido de los correos electrónicos, incluidos:

  • Turco, chino, japonés, coreano y otros alfabetos no latinos
  • Caracteres y símbolos especiales
  • La codificación adecuada garantiza una visualización correcta en los clientes de correo electrónico.

Gestión integral de etiquetas

El servidor proporciona un conjunto completo de herramientas para administrar las etiquetas de Gmail:

  • Crear etiquetas : crea nuevas etiquetas con configuraciones de visibilidad personalizables
  • Actualizar etiquetas : cambie el nombre de las etiquetas o cambie su configuración de visibilidad
  • Eliminar etiquetas : elimina las etiquetas creadas por el usuario (las etiquetas del sistema están protegidas)
  • Buscar o crear : obtener una etiqueta por nombre o crearla automáticamente si no se encuentra
  • Listar todas las etiquetas : Ver todas las etiquetas del sistema y del usuario con información detallada
  • Opciones de visibilidad de etiquetas : controla cómo aparecen las etiquetas en los mensajes y las listas de etiquetas

Las configuraciones de visibilidad de la etiqueta incluyen:

  • messageListVisibility : controla si la etiqueta aparece en la lista de mensajes ( show u hide )
  • labelListVisibility : controla cómo aparece la etiqueta en la lista de etiquetas ( labelShow , labelShowIfUnread o labelHide )

Estas funciones de administración de etiquetas permiten una organización sofisticada de correos electrónicos directamente a través de Claude, sin necesidad de cambiar a la interfaz de Gmail.

Operaciones por lotes

El servidor incluye capacidades eficientes de procesamiento por lotes:

  • Procesar hasta 50 correos electrónicos a la vez (tamaño de lote configurable)
  • Fragmentación automática de grandes conjuntos de correos electrónicos para evitar los límites de la API
  • Informes detallados de éxito/fracaso de cada operación
  • Manejo elegante de errores con reintentos individuales
  • Perfecto para la gestión masiva de bandejas de entrada y tareas de organización.

Notas de seguridad

  • Las credenciales de OAuth se almacenan de forma segura en su entorno local ( ~/.gmail-mcp/ )
  • El servidor utiliza acceso sin conexión para mantener una autenticación persistente
  • Nunca comparta ni comprometa sus credenciales con el control de versiones
  • Revise y revoque periódicamente el acceso no utilizado en la configuración de su cuenta de Google
  • Las credenciales se almacenan globalmente, pero solo el usuario actual puede acceder a ellas.

Solución de problemas

  1. Claves OAuth no encontradas
    • Asegúrese de que gcp-oauth.keys.json esté en su directorio actual o en ~/.gmail-mcp/
    • Comprobar permisos de archivos
  2. Formato de credenciales no válidas
    • Asegúrese de que su archivo de claves OAuth contenga credenciales web o installed
    • Para aplicaciones web, verifique que la URI de redireccionamiento esté configurada correctamente
  3. Puerto ya en uso
    • Si el puerto 3000 ya está en uso, libérelo antes de ejecutar la autenticación
    • Puedes encontrar y detener el proceso usando ese puerto
  4. Fallas en las operaciones por lotes
    • Si las operaciones por lotes fallan, se vuelven a intentar automáticamente los elementos individuales.
    • Consulte los mensajes de error detallados para detectar fallas específicas
    • Considere reducir el tamaño del lote si encuentra una limitación de velocidad

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Licencia

Instituto Tecnológico de Massachusetts (MIT)

Apoyo

Si encuentra algún problema o tiene preguntas, envíe un problema en el repositorio de GitHub.

ID: bq78z91y4a