Google Drive MCP
# Google Drive MCP
Servidor MCP en Python para gestionar documentos de **Google Drive** (cuenta Gmail / Google Workspace) desde Cursor.
## Tools
| Tool | Descripción |
|------|-------------|
| `list_files` | Lista archivos/carpetas (raíz o por `folder_id`) |
| `search_files` | Busca por nombre en todo Drive |
| `get_file_info` | Metadatos y enlace web |
| `download_file` | Descarga texto o exporta Docs/Sheets/Slides |
| `upload_text_file` | Sube un archivo de texto |
| `update_text_file` | Actualiza contenido de un archivo |
| `create_folder` | Crea una carpeta |
| `delete_file` | Mueve a la papelera |
Permiso por defecto: lectura **y** escritura (`drive`). Para solo lectura, cambia el scope en `src/drive_mcp/auth.py` a `drive.readonly` y elimina el `token.json` para volver a autorizar.
## 1. Google Cloud
1. Abre [Google Cloud Console](https://console.cloud.google.com/).
2. Crea un proyecto (o usa uno existente).
3. Activa **Google Drive API** (APIs & Services → Library).
4. Configura la pantalla de consentimiento OAuth (External o Internal).
5. Crea credenciales: **APIs & Services → Credentials → Create credentials → OAuth client ID**.
- Application type: **Desktop app**
6. Descarga el JSON y guárdalo en la raíz del proyecto como `credentials.json`.
Si la app está en modo *Testing*, añade tu Gmail en **Test users**.
## 2. Instalación
```bash
cd MCP-PROJECT
python -m venv .venv
source .venv/bin/activate
pip install -e .
```
## 3. Primer login (opcional, recomendado)
```bash
python -c "from drive_mcp.auth import get_credentials; get_credentials()"
```
Se abre el navegador, autorizas con tu Gmail y se crea `token.json`.
## 4. Cursor (`mcp.json`)
```json
{
"mcpServers": {
"google-drive": {
"command": "/home/vpinto/Documents/Cooper/Repo2/MCP-PROJECT/.venv/bin/python",
"args": ["-m", "drive_mcp.server"],
"cwd": "/home/vpinto/Documents/Cooper/Repo2/MCP-PROJECT",
"env": {
"GOOGLE_CREDENTIALS_PATH": "/home/vpinto/Documents/Cooper/Repo2/MCP-PROJECT/credentials.json",
"GOOGLE_TOKEN_PATH": "/home/vpinto/Documents/Cooper/Repo2/MCP-PROJECT/token.json"
}
}
}
}
```
Ajusta las rutas si tu proyecto está en otra ubicación.
## Variables de entorno
| Variable | Descripción |
|----------|-------------|
| `GOOGLE_CREDENTIALS_PATH` | Ruta a `credentials.json` (OAuth client) |
| `GOOGLE_TOKEN_PATH` | Ruta donde se guarda `token.json` |
## Notas
- `credentials.json` y `token.json` **no** se suben a git.
- La descarga por MCP está limitada a ~2 MiB y a contenido texto (o export de Docs).
- El borrado envía a papelera; no elimina de forma permanente.
TDQS
Scored across 9 tools
Most tools have clearly distinct purposes (upload, update, download, move, delete, create folder). The only potential overlap is between list_files and search_files, but list_files is folder-scoped with optional filters while search_files is a global name search, which is a meaningful distinction.
All tool names follow the same verb_noun pattern with consistent snake_case naming: list_files, search_files, get_file_info, download_file, upload_text_file, update_text_file, create_folder, move_file, delete_file. The convention is uniform across the entire set.
With 9 tools, the set is well-scoped for a Google Drive server. Each tool addresses a core operation (list, search, get info, download, upload, update, create folder, move, delete) without unnecessary redundancy, striking a good balance between coverage and simplicity.
The toolset covers the essential file and folder lifecycle: create, read, update (content), delete, move, and search. Minor gaps exist such as no rename or copy tool, and no permission/sharing operations, but these are not critical for basic Drive management and can be worked around.