Skip to main content
Glama
EgCooper
by EgCooper
README.md
# 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

A3.7/5.0

Scored across 9 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivitySlowing
ResponsivenessNo issues