Gmail AutoAuth MCP Server
Permite que los asistentes de IA gestionen Gmail mediante interacciones en lenguaje natural.
Documentación
Servidor MCP Gmail AutoAuth
Un servidor de Protocolo de Contexto de Modelo (MCP) para la integración de Gmail en Claude Desktop con soporte de autenticación automática. Este servidor permite a los asistentes de IA gestionar Gmail mediante interacciones en lenguaje natural.
Características
- Enviar correos electrónicos con asunto, contenido, archivos adjuntos y destinatarios
- Soporte completo para caracteres internacionales en asuntos y contenido de correos
- Leer mensajes de correo por ID con manejo avanzado de estructura MIME
- Ver información de archivos adjuntos (nombres, tipos, tamaños)
- Buscar correos con varios criterios (asunto, remitente, rango de fechas)
- Gestión integral de etiquetas con capacidad para crear, actualizar, eliminar y listar etiquetas
- Listar todas las etiquetas de Gmail disponibles (del sistema y definidas por el usuario)
- Listar correos en la bandeja de entrada, enviados o etiquetas personalizadas
- Marcar correos como leídos/no leídos
- Mover correos a diferentes etiquetas/carpetas
- Eliminar correos
- Operaciones por lotes para procesar eficientemente múltiples correos a la vez
- Integración completa con la API de Gmail
- Flujo de autenticación OAuth2 simple con apertura automática del navegador
- Soporte para credenciales de aplicaciones de escritorio y web
- Almacenamiento global de credenciales para mayor comodidad
Instalación y Autenticación
Instalación mediante Smithery
Para instalar Gmail AutoAuth para Claude Desktop automáticamente a través de Smithery:
npx -y @smithery/cli install @raghavared/gmail-mcp --client claude
Instalación Manual
-
Crear un proyecto en Google Cloud y obtener credenciales:
a. Crear un proyecto en Google Cloud:
- Ir a Consola de Google Cloud
- Crear un nuevo proyecto o seleccionar uno existente
- Habilitar la API de Gmail para tu proyecto
b. Crear credenciales OAuth 2.0:
- Ir a "APIs y Servicios" > "Credenciales"
- Hacer clic en "Crear credenciales" > "ID de cliente OAuth"
- Elegir "Aplicación de escritorio" o "Aplicación web" como tipo de aplicación
- Asignarle un nombre y hacer clic en "Crear"
- Para aplicaciones web, agregar
http://localhost:3000/v2/auth/google/callbacka las URI de redireccionamiento autorizadas - Descargar el archivo JSON con las claves OAuth de tu cliente
- Renombrar el archivo de claves a
token.json
-
Ejecutar la Autenticación:
Puedes autenticarte de dos maneras:
a. Autenticación Global (Recomendada):
# First time: Place token.json in your home directory's .gmail-mcp folder mkdir -p ~/.gmail-mcp mv token.json ~/.gmail-mcp/ # Run authentication from anywhere npx @raghavared/gmail-mcp authb. Autenticación Local:
# Place token.json in your current directory # The file will be automatically copied to global config npx @raghavared/gmail-mcp authEl proceso de autenticación:
- Buscará
token.jsonen el directorio actual o en~/.gmail-mcp/ - Si se encuentra en el directorio actual, lo copiará a
~/.gmail-mcp/ - Abrirá tu 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 pueden usarse desde cualquier directorio - Se admiten tanto credenciales de aplicación de escritorio como de aplicación web
- Para credenciales de aplicación web, asegúrate de agregar
http://localhost:3000/v2/auth/google/callbacka tus URI de redireccionamiento autorizadas
- Buscará
-
Configurar en Claude Desktop:
{
"mcpServers": {
"gmail": {
"command": "npx",
"args": [
"@raghavared/gmail-mcp"
]
}
}
}
Soporte para Docker
Si prefieres usar Docker:
- Autenticación:
docker run -i --rm \
--mount type=bind,source=/path/to/token.json,target=/token.json \
-v gmail-mcp:/gmail-server \
-e GMAIL_OAUTH_PATH=/token.json \
-e "GMAIL_CREDENTIALS_PATH=/gmail-server/credentials.json" \
-p 3000:3000 \
mcp/gmail auth
- Uso:
{
"mcpServers": {
"gmail": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"mcp-gmail:/gmail-server",
"-e",
"GMAIL_CREDENTIALS_PATH=/gmail-server/credentials.json",
"gmail-mcp"
]
}
}
}
Autenticación en Servidor en la Nube
Para entornos de servidor en la nube (como n8n), puedes especificar una URL de devolución de llamada personalizada durante la autenticación:
npx @raghavared/gmail-mcp auth {domain}/v2/auth/google/callback
Instrucciones de Configuración para Entornos en la Nube
-
Configurar Proxy Inverso:
- Configura tu contenedor de n8n para exponer un puerto para la autenticación
- Configura un proxy inverso para reenviar el tráfico desde tu dominio (por ejemplo,
domain.com) a este puerto
-
Configuración de DNS:
- Agrega un registro A en tu configuración de DNS para resolver tu dominio a la dirección IP de tu servidor en la nube
-
Configuración de la Plataforma Google Cloud:
- En tu Consola de Google Cloud, agrega la URL de devolución de llamada de tu dominio personalizado (por ejemplo,
https://domain.com/v2/auth/google/callback) a la lista de URI de redireccionamiento autorizadas
- En tu Consola de Google Cloud, agrega la URL de devolución de llamada de tu dominio personalizado (por ejemplo,
-
Ejecutar la Autenticación:
npx @raghavared/gmail-mcp auth https://domain.com/v2/auth/google/callback -
Configurar en tu aplicación:
{ "mcpServers": { "gmail": { "command": "npx", "args": [ "@raghavared/gmail-mcp" ] } } }
Este enfoque permite que los flujos de autenticación funcionen correctamente en entornos donde localhost no es accesible, como aplicaciones contenedorizadas o servidores en la nube.
Herramientas Disponibles
El servidor proporciona las siguientes herramientas que se pueden usar a través de Claude Desktop:
1. Enviar Correo (send_email)
Envía un nuevo correo electrónico de inmediato.
{
"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 (draft_email)
Crea un borrador de correo 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 (read_email)
Recupera el contenido de un correo específico por su ID.
{
"messageId": "182ab45cd67ef"
}
4. Buscar Correos (search_emails)
Busca correos usando la sintaxis de búsqueda de Gmail.
{
"query": "from:sender@example.com after:2024/01/01 has:attachment",
"maxResults": 10
}
5. Modificar Correo (modify_email)
Agrega o elimina etiquetas de los correos (mover a diferentes carpetas, archivar, etc.).
{
"messageId": "182ab45cd67ef",
"addLabelIds": ["IMPORTANT"],
"removeLabelIds": ["INBOX"]
}
6. Eliminar Correo (delete_email)
Elimina permanentemente un correo.
{
"messageId": "182ab45cd67ef"
}
7. Listar Etiquetas de Correo (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. Modificación por Lotes de Correos (batch_modify_emails)
Modifica etiquetas de múltiples correos en lotes eficientes.
{
"messageIds": ["182ab45cd67ef", "182ab45cd67eg", "182ab45cd67eh"],
"addLabelIds": ["IMPORTANT"],
"removeLabelIds": ["INBOX"],
"batchSize": 50
}
13. Eliminación por Lotes de Correos (batch_delete_emails)
Elimina permanentemente múltiples correos 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:
| Operador | Ejemplo | Descripción |
|---|---|---|
from: | from:john@example.com | Correos de un remitente específico |
to: | to:mary@example.com | Correos enviados a un destinatario específico |
subject: | subject:"meeting notes" | Correos con texto específico en el asunto |
has:attachment | has:attachment | Correos con archivos adjuntos |
after: | after:2024/01/01 | Correos recibidos después de una fecha |
before: | before:2024/02/01 | Correos recibidos antes de una fecha |
is: | is:unread | Correos con un estado específico |
label: | label:work | Correos con una etiqueta específica |
Puedes combinar múltiples operadores: from:john@example.com after:2024/01/01 has:attachment
Características Avanzadas
Extracción de Contenido de Correos
El servidor extrae inteligentemente el contenido de los correos de estructuras MIME complejas:
- Prioriza el contenido de texto plano cuando está disponible
- Recurre al contenido HTML si el texto plano no está disponible
- Maneja mensajes MIME de múltiples partes con partes anidadas
- Procesa información de archivos adjuntos (nombre, tipo, tamaño)
- Preserva los encabezados originales del correo (De, Para, Asunto, Fecha)
Soporte de Caracteres Internacionales
El servidor admite completamente caracteres no ASCII en asuntos y contenido de correos, incluyendo:
- Alfabetos turco, chino, japonés, coreano y otros no latinos
- Caracteres especiales y símbolos
- La codificación adecuada garantiza la visualización correcta en los clientes de correo
Gestión Integral de Etiquetas
El servidor proporciona un conjunto completo de herramientas para gestionar etiquetas de Gmail:
- Crear Etiquetas: Crear nuevas etiquetas con configuraciones de visibilidad personalizables
- Actualizar Etiquetas: Renombrar etiquetas o cambiar sus configuraciones de visibilidad
- Eliminar Etiquetas: Eliminar 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: Controlar cómo aparecen las etiquetas en las listas de mensajes y etiquetas
Las configuraciones de visibilidad de etiquetas incluyen:
messageListVisibility: Controla si la etiqueta aparece en la lista de mensajes (showohide)labelListVisibility: Controla cómo aparece la etiqueta en la lista de etiquetas (labelShow,labelShowIfUnreadolabelHide)
Estas funciones de gestión de etiquetas permiten una organización sofisticada de los correos 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 a la vez (tamaño de lote configurable)
- División automática de grandes conjuntos de correos para evitar límites de API
- Informes detallados de éxito/fallo para cada operación
- Manejo elegante de errores con reintentos individuales
- Perfecto para la gestión masiva de la bandeja de entrada y tareas de organización
Notas de Seguridad
- Las credenciales OAuth se almacenan de forma segura en tu entorno local (
~/.gmail-mcp/) - El servidor utiliza acceso sin conexión para mantener la autenticación persistente
- Nunca compartas ni confirmes tus credenciales en el control de versiones
- Revisa y revoca regularmente el acceso no utilizado en la configuración de tu cuenta de Google
- Las credenciales se almacenan globalmente pero solo son accesibles por el usuario actual
Solución de Problemas
-
Claves OAuth No Encontradas
- Asegúrate de que
token.jsonesté en tu directorio actual o en~/.gmail-mcp/ - Verifica los permisos de archivo
- Asegúrate de que
-
Formato de Credenciales Inválido
- Asegúrate de que tu archivo de claves OAuth contenga credenciales de
weboinstalled - Para aplicaciones web, verifica que la URI de redireccionamiento esté configurada correctamente
- Asegúrate de que tu archivo de claves OAuth contenga credenciales de
-
Puerto Ya en Uso
- Si el puerto 3000 ya está en uso, libéralo antes de ejecutar la autenticación
- Puedes encontrar y detener el proceso que usa ese puerto
-
Fallos en Operaciones por Lotes
- Si las operaciones por lotes fallan, reintentan automáticamente los elementos individuales
- Revisa los mensajes de error detallados para fallos específicos
- Considera reducir el tamaño del lote si encuentras limitaciones de velocidad
Contribuciones
¡Las contribuciones son bienvenidas! No dudes en enviar una Solicitud de Extracción (Pull Request).
Licencia
MIT
Soporte
Si encuentras algún problema o tienes preguntas, por favor reporta un problema en el repositorio de GitHub.