Skip to main content
Glama
calinrus-dev

CloudDesk MCP Server

by calinrus-dev

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.

Interfaz de CloudDesk con datos ficticios

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: Desktop Commander MCP (Transductive Edge Edition)

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.sh

El 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 dev

La 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

O2_DESKTOP_ROOT

Ruta del código para Tauri; el lanzador la configura.

O2_DESKTOP_STATE_DIR

Directorio de estado alternativo, idéntico para GUI y MCP.

XDG_STATE_HOME

Base del estado por defecto.

O2_DESKTOP_LOCAL_ROOTS

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 2

Contribuir 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 tools
cloud_accountsA
Read-onlyIdempotent

Lista las cuentas conectadas y sus capacidades; no muestra credenciales.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral fact — credentials are not returned — but says nothing about pagination, account status, or what 'capacidades' includes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact sentence, front-loaded with the action and resource, with the credential caveat appended efficiently. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-shape explanation is unnecessary, and the zero-param signature is fully specified. The only shortfall is that no usage context or sibling routing is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so per the baseline this scores 4. There is nothing for the description to disambiguate beyond what the empty schema already communicates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Lista las cuentas conectadas y sus capacidades'), which is clearly distinct from file-oriented siblings like cloud_list and cloud_stat. It does not, however, explicitly name an alternative or scope boundary against cloud_accounts-adjacent tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no reference to any sibling tool. The agent must infer from the name alone that this is the account-enumeration entry point.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_cancelC

Cancela un proceso; no deshace los elementos ya copiados.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The clause 'no deshace los elementos ya copiados' is genuinely useful partial-effect disclosure that complements the annotations (destructiveHint=false) by explaining what remains after cancellation. However, it does not explain whether cancellation is immediate, whether it needs elevated permissions, or what state the job ends in.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence, front-loaded with the action and followed by the consequence. No filler, though it is arguably under-specified rather than merely concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a job-control tool with no output schema and no annotation detail beyond hints, the description omits how to obtain the job_id, whether the cancellation is terminal, and how it relates to cloud_pause/cloud_resume. What is present is accurate but far from complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single parameter job_id is undocumented in both schema and description. The description never indicates where a job_id comes from (e.g., from cloud_jobs), so the agent gets no help beyond the property name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb is clear ('Cancela') but the resource is vague ('un proceso') — it never says this cancels a cloud job, nor how it differs from sibling cloud_pause, which also acts on running jobs. An agent can infer the intent but must guess the target domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no identification of alternatives such as cloud_pause (suspend) vs cloud_cancel (stop permanently). The agent is left to infer the distinction from the sibling names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_copyB
DestructiveIdempotent

Inicia una copia entre nubes. move=True verifica SHA-256 antes de retirar un archivo del origen. Carpetas y Google Fotos admiten copia.

ParametersJSON Schema
NameRequiredDescriptionDefault
moveNo
sourceYes
destinationYes
source_volumeYes
destination_volumeYes

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses a key behavioral trait beyond annotations: with move=True, it verifies SHA-256 before removing the source file. This adds important context about data integrity and the destructive nature of move operations. Annotations already flag destructiveHint=true and idempotentHint=true, so the description's integrity check detail complements that well. It doesn't cover error handling or rate limits, but it's solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that covers the main action and a key caveat. It's efficient and earns its place, though the language mismatch with siblings and tool name slightly reduces clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 5 parameters with 0% description coverage, the description is minimal. It explains the move flag and mentions folder/Google Photos support, but leaves the four required path/volume parameters undocumented and doesn't detail what happens on success/failure (e.g., output format, job ID, permissions). The integrity check note helps, but the tool remains underspecified for an agent to invoke confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides only parameter names and types, no semantics. The description explains the move parameter's behavior (SHA-256 check, removal from source), which is valuable. However, it does not clarify the four required parameters: source, destination, source_volume, destination_volume. The meaning of 'volume' and how to specify paths is left ambiguous, so the description partially compensates but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Inicia una copia entre nubes' states a clear verb (copy) and scope (between clouds). It implicitly distinguishes itself from siblings like cloud_move by noting that move=True removes the file from the source. However, the description is in Spanish while the tool name and most of the metadata are English, which may cause confusion for English-speaking agents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given on when to use cloud_copy versus cloud_move or other transfer tools. The note that move=True removes the source provides a hint, but there is no statement of alternatives or conditions for selecting this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_deleteA
DestructiveIdempotent

Borrado recuperable en O2, Drive y OneDrive; bloqueado en otros proveedores.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
volumeYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true. The description adds important provider-specific behavior beyond those annotations: deletion is recoverable in O2, Drive, and OneDrive, but blocked elsewhere.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence with the provider-recoverability condition front-loaded. Every clause carries useful selection or behavioral information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive cloud deletion tool with two required, completely undocumented parameters and no output schema, the description covers provider behavior but omits required parameter semantics and does not route the agent to sibling alternatives. It is therefore incomplete for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and both required parameters ('volume' and 'path') are undocumented in the schema. The description does not mention either parameter or clarify expected values, so the agent gets no semantic guidance for required inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a deletion action ('Borrado') and scopes it to O2, Drive, and OneDrive, distinguishing provider-specific behavior from other providers. It does not explicitly name the resource type (file/directory), but the action and provider scope are clear enough to select it over generic siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear when-not condition: deletion is blocked on providers other than O2, Drive, and OneDrive. It does not name alternatives such as o2_delete, so it falls short of full when-to-use/alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_downloadC

Inicia una descarga reanudable a un archivo local nuevo.

ParametersJSON Schema
NameRequiredDescriptionDefault
localYes
remoteYes
volumeYes

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description earns credit for adding two genuine behavioral facts beyond the annotations: the transfer is resumable (implying pause/resume siblings apply) and the local target is a new file. It still omits what happens on name collision or how failures surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or repetition. It is efficient, though its brevity borders on under-specification rather than deliberate conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-required-parameter mutation tool with 0% schema coverage, no output schema, and no parameter descriptions anywhere, a single sentence is inadequate. The agent lacks volume/remote/local semantics and any detail on resume behaviour, pausing, or destination conflict handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the three required parameters (volume, remote, local) carry no titles beyond their names. The description only loosely implies the local destination path and a remote source; it gives no format, path-convention, or volume-naming information to compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource is clear ('inicia una descarga a un archivo local'), and 'reanudable' plus 'nuevo' add nuance. However, it never differentiates itself from sibling o2_download or the other cloud_* tools, so the agent gets no signal about why this variant exists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance and no mention of alternatives such as o2_download or cloud_resume. The phrase 'archivo local nuevo' hints that the destination must not already exist, but this is inference, not stated guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_jobsC
Read-onlyIdempotent

Procesos compartidos con progreso, velocidad, ETA y errores.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds only that jobs contain progress, speed, ETA, and errors—useful data content but not a behavioral trait beyond annotations. It does not disclose anything about result scope, authentication, or freshness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single brief sentence with no wasted words, which is concise. However, it is not front-loaded with an action verb or purpose, so the structure does not help an agent quickly understand what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return details need not be described. Annotations already cover safety and idempotency. Yet the description fails to state the tool's operation, which is critical for a no-parameter tool. Without it, an agent cannot confidently decide to invoke this tool over siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and 100% schema description coverage, so the schema fully documents the absence of inputs. The description is not required to explain parameters, and the baseline of 4 for 0-param tools applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Procesos compartidos con progreso, velocidad, ETA y errores' describes the resource (shared jobs with progress, speed, ETA, errors) but omits any verb or action. It does not state that the tool lists or retrieves jobs, leaving the agent to infer the operation from the name alone. No distinction from siblings like cloud_list or cloud_stat is provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as cloud_list, cloud_stat, or cloud_pause. No prerequisites, exclusions, or context for invocation are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_listC
Read-onlyIdempotent

Lista una carpeta en O2, Drive, OneDrive u otra cuenta configurada.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo/
volumeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond listing, such as authentication needs, pagination, rate limits, or what happens with the configured volume.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no wasted words, but it is under-specified for a two-parameter generic cloud listing tool and provides no structural guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and annotations exist, so return values and safety are partly covered. However, the description omits required parameter semantics for 'volume' and lacks usage context, leaving the agent without enough information to confidently call the tool across providers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for two parameters. The description does not mention 'path' or 'volume' at all; 'carpeta' only vaguely gestures at a path and does not compensate for the missing parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Lista) and resource (carpeta) and names the supported providers (O2, Drive, OneDrive u otra cuenta configurada). This is clear, but it does not explicitly differentiate itself from sibling tools such as o2_list or cloud_stat.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The mention of multiple cloud providers and 'otra cuenta configurada' implies use for listing folders across configured accounts, but there is no explicit when-to-use guidance or routing to alternatives like o2_list or cloud_stat.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_mkdirC

Crea una carpeta en una cuenta conectada.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
volumeYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-destructive, non-idempotent, open-world write. The description adds nothing beyond that: it does not say what happens if the folder already exists (relevant given idempotentHint=false), what permissions/auth the connected account needs, or whether parent paths are auto-created.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with no filler. It is efficient, though its brevity stems partly from under-specification rather than disciplined concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-required-parameter mutation tool with no output schema and no schema descriptions, the definition does not compensate: parameter semantics, failure modes, and sibling routing are all missing. An agent would have to guess at volume/path semantics before calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and both parameters (volume, path) are undocumented in the schema. The description mentions neither, so the agent gets no meaning for "volume" (which drive/account?) or the expected path syntax — a real gap since both are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Crea una carpeta") scoped to a connected account, so the agent knows it is a create-folder operation. It does not, however, differentiate itself from the near-identical sibling o2_mkdir, leaving ambiguity about which backend to target.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is given, and with an obvious alternative (o2_mkdir) plus related tools like cloud_move/cloud_copy, the agent gets no routing rule. Usage is only implied by the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_moveC

Mueve o renombra dentro de una nube, sin sobrescribir.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
volumeYes
destinationYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is largely covered. The description adds one genuinely useful behavioral fact—it will not overwrite ('sin sobrescribir')—which is consistent with destructiveHint=false. It still omits what happens on error, cross-volume behavior, and permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with the no-overwrite constraint front-loaded after the verb. Efficient, though the brevity is partly under-specification rather than pure conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-required-parameter mutation tool with zero schema coverage and no output schema, the description should explain what volume/path/destination mean and what the operation does to existing files. Annotations cover safety hints, but parameter and failure-mode context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and all three params (volume, path, destination) are undocumented in both schema and description. The verbs 'mueve o renombra' weakly imply that destination can be a new name or a new location, but no format, path syntax, or volume semantics are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear specific verbs ('mueve o renombra') plus a resource scope ('dentro de una nube'), so the agent can distinguish cloud_move from the o2_move family. However it does not name the closest sibling (cloud_copy) or explain the boundary, so it stops short of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of the obvious alternative cloud_copy or how it differs from cloud_copy's copy semantics versus move. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_pauseC

Pausa una transferencia que anuncie can_pause=True.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, covering the safety profile. The description adds the can_pause precondition but says nothing about what happens after the pause, whether the job can be resumed, or error behavior — and it offers no context beyond what the annotations already imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no padding, and the precondition is included inline. It is efficient, though borderline terse for a tool whose only parameter is entirely undescribed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a state-changing job-control tool with an undocumented identifier parameter and no output schema, the description should explain the job_id source, the can_pause failure path, and the relationship to resume/cancel. None of that is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one required parameter, job_id, at 0% schema description coverage, and the description says nothing about it — not its format, source, or how to obtain it (e.g., from cloud_jobs). The description fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ("Pausa una transferencia" / pauses a transfer) and adds a precondition (can_pause=True), so the action is unambiguous. It does not, however, distinguish this from siblings like cloud_cancel or cloud_resume, and the Spanish wording is inconsistent with an otherwise English toolset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The precondition "can_pause=True" implies when pausing is valid, which is useful guidance. But it never states when to choose pause over cloud_cancel or cloud_resume, nor what to do if can_pause is false.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_quotaC
Read-onlyIdempotent

Cuota; los valores no disponibles se devuelven como null.

ParametersJSON Schema
NameRequiredDescriptionDefault
volumeYes

TDQS

C2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds a useful behavioral detail — that unavailable values come back as null — which is not in the structured data, though it says nothing about return shape, units, or refresh cadence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but under-specification rather than conciseness. It is also written in Spanish while the tool name and sibling ecosystem are English, which adds friction without adding information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one required, undocumented parameter and no output schema, the description should explain the parameter and the quota semantics. Instead it only notes null-return behavior, leaving the agent unable to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter "volume" has no schema description (0% coverage) and is never mentioned in the description. Nothing indicates what a volume identifier is, its format, or what values are valid, so the description fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the noun "Cuota", which restates the tool name cloud_quota without naming a verb, a resource domain, or a scope. An agent cannot tell from this text whether it retrieves quota, sets quota, or checks quota status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus siblings such as o2_quota, o2_stat, or cloud_stat. The only clause addresses return values, not usage, so the agent must infer the context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_resumeC

Reanuda una pausa o una descarga interrumpida con parcial verificable.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose the key traits: readOnlyHint=false (this mutates state), idempotentHint=false (repeating the call may behave differently), and openWorldHint=true. The description adds one behavioral claim — that resumption works from a 'parcial verificable' — but says nothing about what happens to an already-completed job, whether resume restarts from zero, or whether it fails on a non-paused job. Modest added value over annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the action verb, with no filler. The trailing clause 'con parcial verificable' is slightly opaque in Spanish and could be tightened, keeping it just short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent mutation tool with no output schema and an entirely undocumented job_id, the description should at minimum state the expected job state, the resume semantics (from partial vs. restart), and any failure/error behavior. None of that is present, so an agent cannot confidently decide between cloud_resume, cloud_pause, and cloud_cancel.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single required parameter job_id is never mentioned in the description, so its meaning (which kind of job identifier: transfer, pause, download?) must be guessed. The description had room to state what the job_id refers to and did not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb+resource: 'Reanuda' (resumes) applied to 'una pausa o una descarga interrumpida' (a pause or an interrupted download), which an agent can distinguish from the write-oriented sibling cloud_pause. It does not explicitly name cloud_pause or cloud_cancel as complementary/alternative operations, so sibling differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus cloud_pause, cloud_cancel, or cloud_jobs, nor any precondition (e.g. that the referenced job must already be paused/interrupted). The phrase 'con parcial verificable' hints at a use case but never states an invocation condition or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_statC
Read-onlyIdempotent

Metadata de un archivo o carpeta de una nube.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
volumeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so the safety profile is covered. The description adds nothing beyond the annotations—it does not mention permissions, scope, error behavior, or any operational context. Minimal added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It is efficient, though its brevity reflects under-specification rather than optimal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a stat tool with an output schema and annotations, return values and safety are covered. However, the description leaves the required volume/path semantics, sibling differentiation, and any usage context unaddressed, so an agent lacks enough to invoke it reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the two required parameters (volume, path), so the description must compensate, but it does not. 'archivo o carpeta' loosely hints that path targets a file or folder, yet volume is never explained and no format or expected values are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource and information type (metadata of a file or folder in a cloud), which is more than a tautology, but it uses a noun phrase rather than a specific verb like 'retrieve' and does not differentiate the tool from siblings such as cloud_list or o2_stat. An agent can infer it reads metadata, but the purpose is not sharply stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus cloud_list, cloud_quota, or other stat/list siblings. It gives no conditions, prerequisites, or exclusions. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloud_uploadC

Inicia una subida y devuelve un job. Sigue su progreso con cloud_jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault
localYes
remoteYes
volumeYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true. The description adds useful asynchronous behavior: it returns a job and progress must be tracked separately with cloud_jobs. It does not cover auth needs, side effects, or what happens on failure, but with annotations doing the safety heavy lifting, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and return value, followed by the essential follow-up tool. No wasted words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three required, undocumented parameters and no output schema, the description is too sparse. It should at least explain what volume, local, and remote represent, and it provides no error handling or prerequisite context, leaving the agent under-informed to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and all three required parameters (volume, local, remote) are completely undocumented. The description says nothing about what these parameters mean or how they should be specified, leaving the agent without any semantic guidance for a fully undocumented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Inicia una subida' (starts an upload) and says it returns a job. However, it does not distinguish from the sibling o2_upload, which is also an upload tool, leaving ambiguity about when this cloud_ variant should be chosen.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only says to track progress with cloud_jobs; it gives no when-to-use guidance, prerequisites, or exclusions relative to the many sibling tools (e.g., o2_upload, cloud_copy). Usage context is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

o2_deleteB
DestructiveIdempotent

Envía un archivo/carpeta a la papelera de O2.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as destructive and idempotent, but the description adds that the action sends the item to the O2 trash, clarifying it is a recoverable removal rather than permanent deletion. This is valuable context beyond the structured annotations, though it still omits details like permissions or response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single, front-loaded sentence with no wasted words. It delivers the essential action and outcome immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter destructive tool with annotations already covering safety, the description states the core effect but leaves the parameter format and choice against cloud_delete unaddressed. It is minimally adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required 'path' parameter, so the description must compensate. It only implies the path points to a file or folder ('archivo/carpeta') but provides no format, example, or qualification for the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Envía a la papelera') and resource ('archivo/carpeta'), making the tool's effect clear. It does not explicitly differentiate itself from sibling tools like cloud_delete, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool rather than alternatives, no prerequisites, and no exclusions. The description only implies deletion, leaving usage entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

o2_downloadC

Descarga a una ruta local nueva, con progreso y comprobación de tamaño.

ParametersJSON Schema
NameRequiredDescriptionDefault
localYes
remoteYes

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructive=false, idempotent=false and openWorld=true, so the safety profile is covered. The description adds relevant context beyond that — progress reporting and size verification — but says nothing about what happens if the local path exists or how failures surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the core action and its side benefits are stated immediately. It is efficient, though arguably under-specified rather than genuinely concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-required-parameter transfer tool with no output schema and no parameter documentation, the description omits overwrite semantics, remote path format, error/partial-failure behavior, and sibling differentiation. It leaves material gaps an agent would need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so both required parameters ('local' and 'remote') rely entirely on their bare names. The description mentions a local path only obliquely ('ruta local nueva') and gives no format, path-style, or source-location detail for 'remote'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The Spanish verb 'Descarga' plus the target ('a una ruta local nueva') identifies the operation, so an agent can infer a remote-to-local file transfer. However, it never differentiates itself from the near-identical sibling cloud_download, and 'nueva' is ambiguous about overwrite behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of the cloud_download alternative or how o2_* differs from cloud_*. The agent must infer everything about selection from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

o2_listC
Read-onlyIdempotent

Lista archivos y subcarpetas de una carpeta de O2 Cloud.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo/

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context such as recursion, pagination, permission requirements, or error behavior beyond the basic listing operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. Every word contributes to identifying the operation and target resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only listing tool with rich annotations and an output schema, the description is minimally adequate. However, it leaves the path parameter undocumented and gives no guidance on when to use this tool versus similar list/stat siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single path parameter. The description implies that path refers to a folder, but it does not explain the default '/', whether the path is absolute or relative, or how to target subfolders.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Lista) and resource (archivos y subcarpetas) scoped to an O2 Cloud folder, so the agent can tell it apart from mutation, quota, or stat siblings. It does not explicitly differentiate itself from the similar cloud_list sibling, but the purpose is otherwise clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no conditions for choosing this tool over o2_stat, o2_quota, cloud_list, or other siblings, and no prerequisites. The intended use is only implied by the verb 'Lista'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

o2_mkdirB

Crea una carpeta; su padre debe existir.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the write/non-idempotent profile is covered. The description adds the useful precondition that the parent must exist, but says nothing about error behavior, recursion, or whether an existing folder causes failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short clauses, purpose front-loaded and the precondition following it. Nothing is wasted, though the brevity borders on under-specification rather than conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter create operation with no output schema and safety hints in annotations, purpose plus the parent precondition cover the essentials. Missing parameter format and failure/return behavior keep it from being complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single 'path' parameter, so the description carries the full burden. It only hints at path hierarchy via the parent-precondition and never documents path format (absolute vs relative) or whether the target folder is created relative to a root.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Crea una carpeta'), so the agent immediately knows this creates a directory. It does not differentiate from its sibling cloud_mkdir, which performs the same action on a different backend; the o2_ prefix is the only signal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'su padre debe existir' is an implicit precondition that tells the agent when the call will succeed, but there is no explicit guidance on when to choose this over cloud_mkdir or how to handle the missing-parent case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

o2_moveB

Mueve o renombra un archivo/carpeta sin sobrescribir el destino.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
destinationYes

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds a real behavioral trait beyond them: the destination is never overwritten, which implies a conflict/error path the agent must anticipate. It says nothing, however, about whether rename is achieved via a same-directory destination or about cross-backend moves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with no filler; the non-overwrite constraint is placed where it is most useful. It is efficient but borders on under-specification for a two-parameter mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with two undocumented required parameters, no output schema, and no annotation coverage of permissions or error behavior, this one-liner leaves too much unstated: what happens on destination conflict, whether the operation is atomic, and how renaming differs from moving.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for both parameters, so the description carries the full burden. It mentions the concepts of source and destination only obliquely ('mueve o renombra... sin sobrescribir el destino') and never clarifies which argument is which, their path format, or how 'destination' behaves for a pure rename.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource pair (moves or renames a file/folder) and adds a scope constraint (without overwriting the destination). However, it does not distinguish itself from the close sibling cloud_move or explain why an agent would pick o2_move over it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives such as cloud_move, o2_delete, or o2_upload. The only implied guidance is the failure condition embedded in 'sin sobrescribir el destino', which tells the agent the operation will not silently replace an existing target but not which tool to reach for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

o2_quotaA
Read-onlyIdempotent

Consulta el espacio ocupado y disponible en O2.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered. The description adds only that the tool reports occupied and available space, which is modest additional context and does not cover permissions, scoping, or freshness of the figures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler; the resource and the two reported quantities are front-loaded. Nothing needs trimming or reordering.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, read-only inspection tool with no output schema, the description tells the agent what data comes back (used and available space). This is nearly sufficient, though it omits whether the figures are account-wide or per-workspace and how they are formatted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, and the schema is trivially complete, so the baseline of 4 applies. There are no parameters whose semantics the description could clarify further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Consulta') and resource ('espacio ocupado y disponible en O2'), so an agent knows it retrieves quota information. It does not explicitly differentiate itself from near-neighbours like o2_status or cloud_quota, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus o2_status, o2_list, or the parallel cloud_quota tool. The name and description imply it is the quota check, but the agent must infer that on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

o2_statB
Read-onlyIdempotent

Consulta tamaño, tipo y fecha de modificación.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint false, covering the safety profile. The description adds the retrieved fields (size, type, modification date), but with an output schema present this adds limited behavioral context and omits error or permission behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with no redundant phrasing or filler. It is front-loaded, but the extreme sparsity is a completeness issue rather than a conciseness problem.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only stat tool with rich annotations and an output schema, the description is barely adequate. It states the retrieval fields but omits parameter semantics, usage context, and error behavior, leaving gaps for an agent unfamiliar with the o2/cloud storage siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single required 'path' parameter is undocumented in both the schema and the description. The description does not explain what path should point to, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Consulta) and the attributes it retrieves (tamaño, tipo, fecha de modificación), but does not name the resource (file/object) or distinguish itself from siblings like o2_list. The required path parameter implies it operates on a storage path, so an agent can infer stat semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is provided, no alternatives such as o2_list or o2_status are mentioned, and no prerequisites are stated. The description is purely a capability statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

o2_statusA
Read-onlyIdempotent

Estado de la sesión local de O2; no devuelve secretos.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered structurally. The description adds a genuine, non-redundant disclosure — that no secrets are returned — which is useful for an auth/session tool. It still omits what the status actually reports.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded clause with zero filler; the scope and the security caveat are both packed into one sentence. Nothing extraneous remains to cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing the return value, and it only says what is NOT returned (secrets). An agent still does not know whether it gets session state, expiry, credentials status, or a boolean.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to clarify beyond confirming the call needs no arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: reporting the state of the local O2 session. The word 'local' distinguishes it from the cloud_* siblings, though it does not explicitly differentiate it from near-neighbours like o2_stat or o2_quota.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no mention of alternatives. An agent must infer that this is a session-health check rather than a file/directory stat, and nothing tells it when this is preferable to o2_stat, o2_quota or o2_list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

o2_transfersB
Read-onlyIdempotent

Lista las transferencias de todos los clientes del servicio local.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds that the listing spans ALL clients of the local service (no per-client filtering), which is useful scope context, but says nothing about volume, pagination, or return behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that front-loads the action and resource. Efficient, though it carries no usage or behavioral detail beyond scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only listing tool with an output schema present, the description covers what it does and its unfiltered scope. Return values need not be explained given the output schema, so little is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. The description confirms there is no filtering input by stating it returns transfers for all clients.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Lista') and resource ('las transferencias'), plus scope ('de todos los clientes del servicio local'). An agent can tell this is a transfer-listing tool, though it does not explicitly differentiate itself from siblings like o2_list or o2_stat.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no conditions, and no alternatives named. With many sibling listing tools (o2_list, o2_stat, cloud_list), the agent gets no help choosing this one over them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

o2_uploadB

Sube un archivo local a O2, con progreso y sin sobrescribir.

ParametersJSON Schema
NameRequiredDescriptionDefault
localYes
remoteYes

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation/safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true). The description adds genuinely useful context beyond that: progress reporting and, critically, a no-overwrite guarantee, which is the single most safety-relevant behavior for an upload tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the action front-loaded and no filler. Efficient, though it is arguably too terse for a tool with two undocumented parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter upload with annotations covering the safety profile and no output schema, the essentials are present, but key gaps remain: the format of 'remote' (file path vs directory), what actually happens on a name collision, and how o2_upload relates to cloud_upload. These omissions leave the agent guessing on invocation details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and neither 'local' nor 'remote' is documented in the schema. The description only loosely maps 'un archivo local' to the local param and implies O2 as the remote, adding almost no format, path, or directory-vs-file semantics that the agent needs to invoke correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (sube) and resource (un archivo local a O2), clearly distinguishing upload from sibling read/list/delete tools like o2_download and o2_list. It does not, however, differentiate itself from the near-identical cloud_upload sibling, so an agent cannot tell the two apart from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no routing to alternatives such as cloud_upload or a status-check tool. The only implied guidance is the 'sin sobrescribir' constraint, which hints at behavior when the destination exists but does not tell the agent what to do in that case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 24 tool updatesv0.1.0
    • First observedcloud_accounts
    • First observedcloud_cancel
    • First observedcloud_copy
    • First observedcloud_delete
    • First observedcloud_download
    • First observedcloud_jobs
    • First observedcloud_list
    • First observedcloud_mkdir
    • First observedcloud_move
    • First observedcloud_pause
    • First observedcloud_quota
    • First observedcloud_resume
    • First observedcloud_stat
    • First observedcloud_upload
    • First observedo2_delete
    • First observedo2_download
    • First observedo2_list
    • First observedo2_mkdir
    • First observedo2_move
    • First observedo2_quota
    • First observedo2_stat
    • First observedo2_status
    • First observedo2_transfers
    • First observedo2_upload

TDQS

C2.8/5.0

Scored across 24 tools

Disambiguation2/5

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.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers