Uses Google Cloud Console for service account creation and Google Drive API authentication to enable secure multi-account Drive access
Allows reading and exporting Google Docs content as plain text through the Google Drive integration
Provides read-only access to Google Drive with multi-account support, enabling file listing, searching, content extraction, and management of Google Workspace documents across multiple Drive accounts
Enables access to Google Sheets data with CSV export functionality through the Google Drive integration
Provides access to Google Slides presentations through the Google Drive integration
Google Drive MCP Server
Servidor MCP (Model Context Protocol) para gestión de múltiples cuentas de Google Drive con acceso de solo lectura.
🎯 Características
✅ Multi-cuenta: Gestiona múltiples cuentas de Google Drive simultáneamente
✅ Autenticación segura: Service Account con permisos de solo lectura
✅ Operaciones de archivos: Listar, buscar y obtener contenido
✅ Soporta Google Workspace: Docs, Sheets, Slides
✅ Archivos de texto: TXT, Markdown
✅ Logging estructurado: Winston con múltiples niveles
✅ Validación robusta: Zod schemas para configuración
✅ API key opcional: Autenticación de requests MCP
📁 Estructura del Proyecto
🚀 Instalación Local
⚙️ Configuración
1. Service Account de Google
Crear proyecto en Google Cloud Console
Habilitar Google Drive API
Crear Service Account y descargar JSON
Compartir carpetas/archivos de Drive con el email del Service Account
Guardar JSON en
credentials/
2. Archivo de Configuración
El servidor usa drives-config.json
para gestionar cuentas:
Nota: El archivo se crea automáticamente vacío si no existe. Usa la herramienta add_drive
para agregar cuentas.
3. Variables de Entorno (Opcional)
🛠️ Herramientas MCP
Gestión de Drives
list_drives
Lista todas las cuentas de Google Drive configuradas.
Parámetros: Ninguno
Respuesta:
add_drive
Agrega una nueva cuenta de Google Drive a la configuración.
Parámetros:
driveId
(string, requerido): ID único (ej: 'personal', 'work')name
(string, requerido): Nombre descriptivodescription
(string, opcional): Descripción de la cuentaserviceAccountPath
(string, requerido): Ruta al archivo JSON de Service Account
Ejemplo:
remove_drive
Elimina una cuenta de Drive de la configuración.
Parámetros:
driveId
(string, requerido): ID del Drive a eliminar
Operaciones de Archivos
list_files
Lista archivos de Google Drive con filtros opcionales.
Parámetros:
driveId
(string, opcional): ID del Drive (usa el primero si se omite)folderId
(string, opcional): ID de carpeta específicamodifiedAfter
(string, opcional): Fecha ISO 8601modifiedBefore
(string, opcional): Fecha ISO 8601mimeType
(string, opcional): Tipo MIME específicopageSize
(number, opcional): Límite de resultados (default: 100)
Respuesta:
get_file_content
Obtiene el contenido de un archivo de Google Drive.
Soporta:
Google Docs → exporta como texto plano
Google Sheets → exporta como CSV
Archivos de texto (.txt, .md) → descarga directa
Parámetros:
fileId
(string, requerido): ID del archivodriveId
(string, opcional): ID del Drive
Respuesta:
search_files
Busca archivos por nombre en un Drive específico.
Parámetros:
driveId
(string, requerido): ID del Drive donde buscarquery
(string, requerido): Texto a buscar en nombres de archivo
Respuesta:
🔒 Seguridad
Solo lectura: Service Account con scope
drive.readonly
Autenticación opcional: Soporta API key via
MCP_API_KEY
Validación robusta: Esquemas Zod para todos los inputs
Logging seguro: No expone credenciales en logs
📊 Logging
El servidor genera logs estructurados en JSON:
Consola: Formato colorizado para desarrollo
error.log: Solo errores críticos
combined.log: Todos los niveles
Configurar nivel via LOG_LEVEL
env variable.
🐳 Docker
🧪 Desarrollo
📝 Tipos MIME Soportados
Google Workspace
application/vnd.google-apps.document
- Google Docsapplication/vnd.google-apps.spreadsheet
- Google Sheetsapplication/vnd.google-apps.presentation
- Google Slides
Archivos de Texto
text/plain
- Texto planotext/markdown
- Markdown
Formatos de Exportación
text/plain
- Docs exportadostext/csv
- Sheets exportados
🤝 Contribuir
Fork el repositorio
Crea una rama para tu feature (
git checkout -b feature/amazing-feature
)Commit tus cambios (
git commit -m 'Add amazing feature'
)Push a la rama (
git push origin feature/amazing-feature
)Abre un Pull Request
📄 Licencia
Este proyecto está bajo licencia MIT.
🆘 Troubleshooting
Error: "Service account file not found"
Verifica que el archivo JSON existe en la ruta especificada
Usa rutas absolutas o relativas correctas
Error: "Unauthorized: Invalid API key"
Verifica que
MCP_API_KEY
esté configurado correctamenteEl API key debe enviarse en
_meta.apiKey
del request
No se pueden leer archivos
Verifica que el Service Account tenga acceso (compartido con su email)
Confirma que el scope sea
drive.readonly
Revisa permisos de la carpeta/archivo en Drive
Logs no aparecen
Configura
LOG_LEVEL=debug
para ver más detallesVerifica permisos de escritura en la carpeta del proyecto
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Enables read-only access to multiple Google Drive accounts simultaneously through secure service account authentication. Supports listing, searching, and extracting content from Google Workspace documents, spreadsheets, and text files.