CloudDesk MCP Server
Allows access to Google Drive and Google Photos through rclone-backed cloud accounts, providing MCP tools for listing, metadata, quota checks, folder creation, upload, download, copy, move, delete, and transfer job management. Google Photos operations are limited by its API and moves/deletes are blocked.
Integrates with rclone remotes as cloud accounts, enabling MCP tools to list, stat, check quota, create folders, upload, download, copy, move, delete, and manage transfer jobs across rclone-configured providers such as Google Drive, OneDrive, and Google Photos.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CloudDesk MCP Server copy my project folder from Drive to OneDrive"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CloudDesk
O2 Cloud desde el escritorio y desde tus agentes de IA, con la misma sesión y cola de transferencias.
Aplicación experimental para Linux: Rust/Tauri 2, React, React Native Web, Tailwind CSS 2 y un servicio Python. O2 utiliza un adaptador comunitario de su API interna; Drive, OneDrive y Google Fotos se conectan mediante rclone. Proyecto independiente, sin afiliación con los proveedores.

La captura muestra la interfaz real en modo demostración. Los indicadores de cuentas y los archivos son ficticios; no prueban acceso a Google o Microsoft.
Qué puedes hacer
Listar archivos y carpetas, consultar metadata y cuota, crear carpetas, subir, descargar, mover, renombrar y enviar a la papelera donde el proveedor lo permite.
Buscar dentro de la carpeta, alternar lista/cuadrícula y archivos/fotos, previsualizar imágenes y abrir otros formatos con el visor del escritorio.
Consultar bytes, porcentaje, velocidad media, duración y ETA orientativa.
Pausar y reanudar descargas con validación del origen y del soporte Range.
Copiar archivos/carpetas entre nubes; mover archivos verificando SHA-256 antes de enviar el original a la papelera. Requiere espacio y tráfico local.
Usar las mismas operaciones desde clientes compatibles con MCP stdio.
Related MCP server: RelayForge MCP
Instalación desde el código fuente
Entrega verificada en Linux x86_64, con Python >=3.12, uv, Node/npm, Rust/Cargo, curl, unzip, GTK 3, WebKitGTK 4.1 y un llavero Secret Service disponible en la sesión de escritorio. Instala los requisitos de Tauri según tu distribución: documentación oficial. Windows, macOS, ARM y una app móvil nativa quedan pendientes.
git clone https://github.com/calinrus-dev/clouddesk.git
cd clouddesk
./scripts/setup.sh
./scripts/start.shEl setup descarga rclone oficial y valida sus checksums, instala las dependencias
fijadas en los lockfiles, Chromium para el acceso interactivo y compila el
ejecutable Linux de desarrollo en bin/clouddesk. Conserva la carpeta del proyecto:
la aplicación necesita el puente Python, su .venv y rclone. Esta entrega de
fuente no incluye un instalador autónomo ni binarios precompilados.
Para explorar solo la interfaz:
npm ci
npm run devLa vista de navegador es una demostración con datos ficticios. Las operaciones con cuentas reales requieren Tauri.
Conectar las cuentas
O2: pulsa «Conectar O2» y completa el acceso en la página oficial que abre Chromium. La sesión se valida antes de guardarse en el llavero Secret Service. No se importan cookies del navegador de Codex ni se guarda un perfil persistente. Si caduca y no puede renovarse, vuelve a conectar desde la interfaz.
Drive y OneDrive: pulsa «Añadir otra nube» o ejecuta
./scripts/configure-clouds.sh. En rclone elige n, asigna un nombre y selecciona
drive o onedrive. Completa OAuth en el navegador y actualiza las cuentas.
La configuración se cifra y la contraseña aleatoria se guarda en el llavero;
no la cambies ni la quites desde el asistente. «Configurada» no garantiza que
el acceso OAuth siga vigente: el listado comprueba el acceso efectivo.
Google Fotos: necesita un client ID propio. Su API limita el acceso al contenido creado mediante la integración y no permite borrar fotos de la biblioteca. CloudDesk bloquea sus movimientos y borrados. Consulta las restricciones y configuración de rclone.
No introduzcas contraseñas, cookies ni tokens en conversaciones con agentes.
Agentes mediante MCP
Registra la ruta absoluta del servidor en cada cliente compatible:
codex mcp add clouddesk -- "/ruta/absoluta/clouddesk/scripts/mcp.sh"Para otros clientes adapta docs/mcp-clients.json.
Empieza por cloud_accounts: los identificadores son o2 y rclone:NOMBRE.
Las herramientas genéricas incluyen cloud_list, cloud_stat, cloud_quota,
cloud_mkdir, cloud_move, cloud_delete, cloud_upload, cloud_download,
cloud_copy, cloud_jobs, cloud_pause, cloud_resume y cloud_cancel.
Las transferencias devuelven un trabajo; consulta cloud_jobs para seguirlo.
También existen alias o2_*. El login se completa desde la interfaz.
La GUI y los agentes comparten el mismo servicio local. Configurar MCP permite al agente realizar las operaciones de archivos expuestas sobre tus cuentas: añádelo solo a clientes de confianza y usa sus controles de autorización. La aplicación no configura automáticamente todos tus agentes.
Estado y protecciones
Sesiones O2 y contraseñas: llavero Secret Service, sin fallback en texto plano.
Estado operativo: $XDG_STATE_HOME/clouddesk o ~/.local/state/clouddesk.
La configuración rclone está cifrada; historial, parciales y logs tienen
permisos privados. El historial contiene rutas y metadata: no lo publiques.
El servicio escucha en 127.0.0.1:47823, exige token del llavero y rechaza
peticiones con Origin. El frontend usa comandos Tauri y no recibe ese token.
Las cookies O2 no se transmiten a CDN externos. Esto no protege frente a
procesos maliciosos con acceso a tu sesión local o llavero desbloqueado.
Variable | Uso |
| Ruta del código para Tauri; el lanzador la configura. |
| Directorio de estado alternativo, idéntico para GUI y MCP. |
| Base del estado por defecto. |
| Raíces locales adicionales, separadas por |
Las raíces por defecto son Documents, Downloads, Pictures y Desktop
del usuario. Si tu distribución usa nombres localizados, añade sus rutas
absolutas en O2_DESKTOP_LOCAL_ROOTS antes de iniciar GUI y MCP.
No se sobrescriben destinos existentes ni se modifica la raíz remota.
Límites y validación
O2 usa una API no oficial que puede cambiar. Las subidas O2 y copias entre nubes solo admiten cancelación; no pausa ni reanudación tras reiniciar. Las subidas rclone se pausan mientras el proceso sigue activo. Cancelar no revierte elementos ya copiados y un fallo puede dejar una copia en destino. Ante una escritura fallida, consulta el listado antes de repetirla.
En la implementación original se validaron operaciones reales O2 con archivos sintéticos: listado, cuota, creación, subida, descarga y checksum, Range, renombrado, movimiento, papelera y sesión tras reiniciar. rclone se probó contra un remoto local. Drive, OneDrive y Fotos no se han validado con cuentas reales. La evidencia anterior está en docs/VALIDATION.json; las verificaciones de esta entrega, en docs/RELEASE-VALIDATION.md.
uv run ruff check bridge tests
uv run pytest -q
npm run build
cargo test --manifest-path src-tauri/Cargo.toml --all-targets -j 2Contribuir y créditos
Se agradecen pruebas reproducibles en otras distribuciones, validación de proveedores, mejoras de instalación y accesibilidad. Describe versión, operación, resultado esperado y obtenido; elimina rutas personales, tokens y datos de cuentas de cualquier captura o log. No publiques vulnerabilidades con secretos en issues.
Se reutiliza garanda21/o2cloud_gateway_webdav,
MIT, fijado al commit 995756d4f36e97981f27045fc631b509cf8612b9.
Se conserva su licencia. No se ejecuta su servidor WebDAV.
rclone también usa licencia MIT y se descarga por separado. Consulta
la investigación y arquitectura y las atribuciones.
Código propio de CloudDesk bajo licencia MIT.
Available Tools
24 toolscloud_accountsARead-onlyIdempotent
Lista las cuentas conectadas y sus capacidades; no muestra credenciales.
Inputs: no named parameters. Returns: result
cloud_cancelC
Cancela un proceso; no deshace los elementos ya copiados.
Inputs: job_id (required).
cloud_copyBDestructiveIdempotent
Inicia una copia entre nubes. move=True verifica SHA-256 antes de retirar un archivo del origen. Carpetas y Google Fotos admiten copia.
Inputs: source (required), destination (required), source_volume (required), destination_volume (required), +1 more.
cloud_deleteADestructiveIdempotent
Borrado recuperable en O2, Drive y OneDrive; bloqueado en otros proveedores.
Inputs: path (required), volume (required).
cloud_downloadC
Inicia una descarga reanudable a un archivo local nuevo.
Inputs: local (required), remote (required), volume (required).
cloud_jobsCRead-onlyIdempotent
Procesos compartidos con progreso, velocidad, ETA y errores.
Inputs: no named parameters. Returns: result
cloud_listCRead-onlyIdempotent
Lista una carpeta en O2, Drive, OneDrive u otra cuenta configurada.
Inputs: volume (required), path. Returns: result
cloud_mkdirC
Crea una carpeta en una cuenta conectada.
Inputs: path (required), volume (required).
cloud_moveC
Mueve o renombra dentro de una nube, sin sobrescribir.
Inputs: path (required), volume (required), destination (required).
cloud_pauseC
Pausa una transferencia que anuncie can_pause=True.
Inputs: job_id (required).
cloud_quotaCRead-onlyIdempotent
Cuota; los valores no disponibles se devuelven como null.
Inputs: volume (required).
cloud_resumeC
Reanuda una pausa o una descarga interrumpida con parcial verificable.
Inputs: job_id (required).
cloud_statCRead-onlyIdempotent
Metadata de un archivo o carpeta de una nube.
Inputs: path (required), volume (required). Returns: result
cloud_uploadC
Inicia una subida y devuelve un job. Sigue su progreso con cloud_jobs.
Inputs: local (required), remote (required), volume (required).
o2_deleteBDestructiveIdempotent
Envía un archivo/carpeta a la papelera de O2.
Inputs: path (required).
o2_downloadC
Descarga a una ruta local nueva, con progreso y comprobación de tamaño.
Inputs: local (required), remote (required).
o2_listCRead-onlyIdempotent
Lista archivos y subcarpetas de una carpeta de O2 Cloud.
Inputs: path. Returns: result
o2_mkdirB
Crea una carpeta; su padre debe existir.
Inputs: path (required).
o2_moveB
Mueve o renombra un archivo/carpeta sin sobrescribir el destino.
Inputs: path (required), destination (required).
o2_quotaARead-onlyIdempotent
Consulta el espacio ocupado y disponible en O2.
Inputs: no named parameters.
o2_statBRead-onlyIdempotent
Consulta tamaño, tipo y fecha de modificación.
Inputs: path (required). Returns: result
o2_statusARead-onlyIdempotent
Estado de la sesión local de O2; no devuelve secretos.
Inputs: no named parameters.
o2_transfersBRead-onlyIdempotent
Lista las transferencias de todos los clientes del servicio local.
Inputs: no named parameters. Returns: result
o2_uploadB
Sube un archivo local a O2, con progreso y sin sobrescribir.
Inputs: local (required), remote (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 24 tools
Eight pairs of tools (e.g., o2_list/cloud_list, o2_upload/cloud_upload, o2_delete/cloud_delete) perform nearly identical operations for O2, and the generic cloud_* tools also support O2, so agents cannot reliably choose between them. Other overlaps (o2_transfers vs cloud_jobs) add to the boundary confusion.
All names use snake_case with a consistent {namespace}_{action} pattern (o2_* and cloud_*). The second component is sometimes a noun (quota, status) rather than a verb, but the overall predictability is high.
24 tools is heavy for the apparent scope, especially since the o2_* and cloud_* families duplicate most operations. The count is inflated by redundancy rather than distinct capabilities.
Core file lifecycle operations (list, stat, quota, mkdir, move, delete, upload, download, copy) plus job control (pause, resume, cancel, jobs) are covered. Missing search, share/permissions, and versioning features prevent a perfect score.
Maintenance
Related MCP Connectors
Persistent file storage for AI agents via MCP and curl. Upload, download, and version files.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to securely operate a local machine via MCP or REST, providing file read/write, Playwright browser automation, and shell/service administration.3MIT
- AlicenseNot gradedqualityCmaintenanceGives MCP-compatible AI clients a controlled bridge to local files, processes, search, and document utilities, including reading/writing and moving files, text block editing, directory listing, content search, starting and managing terminal processes, and PDF/Excel/DOCX/image handling. It serves these tools over MCP Streamable HTTP at a configurable endpoint, with optional Bearer-token authentication and read-only or restricted-directory modes for safer remote exposure.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP-capable AI agents to search, file, and manage personal records such as IDs, insurance, prescriptions, and leases that stay in your own local, NAS, or cloud-synced folders, with expiry reminders and approval-gated writes. Also supports switching between agents without lock-in via an embedded OAuth server, audit trail, and tunnel relay.6 npmMIT
- FlicenseNot gradedqualityAmaintenanceExposes a governed suite of 38 tools over a single OAuth-gated MCP endpoint, letting web AI chat clients such as Claude, ChatGPT, and Grok operate on a local machine — reading and editing files, running whitelisted shell commands, searching, querying SQLite, driving browsers and DevTools, managing background jobs, ports, and clipboard. Local IDEs and Postman can also connect directly over localhost for offline, low-latency access.-