Skip to main content
Glama
webapper-services

CloudSee Drive MCP Server

List files in a drive

list_files
Read-only

List files in a drive recursively to see what it contains, returning names, sizes, storage classes, and keys with pagination. Requires the drive (S3 bucket) name.

Instructions

List the files in a drive straight from storage, recursively by default — the most reliable way to see what a drive actually contains. Requires the drive (bucketName). Returns names, sizes, storage classes and keys, with pagination. The object id in each result is regenerated on every call and must never be used for rename_file, move_file, update_metadata, or delete_files — use search_files, browse_folder, or get_file_metadata for a stable StorageId instead (recent_files returns a different id space and will not work there either). For a complete listing, keep calling with the returned cursor until no cursor comes back — a page may be short, or even empty, while more results remain.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deepNoRecurse into sub-folders (default true).
cursorNoOpaque pagination cursor returned by a previous call.
pageSizeNoMax items per page (1-200, default 13). The connector sizes each page to what it can render whole, starting at 13 and adapting to the size of your items from the previous page; a larger value is reduced to what fits.
bucketNameNoThe CloudSee drive (S3 bucket) name to operate in, e.g. 'max-2778abc0' — find it in the CloudSee dashboard. Required unless CLOUDSEE_DEFAULT_BUCKET is configured on the server.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.1.1
    • addedInput schema / properties / pageSize
      Added value: +{
      +  "description": "Max items per page (1-200, default 13). The connector sizes each page to what it can render whole, starting at 13 and adapting to the size of your items from the previous page; a larger value is reduced to what fits.",
      +  "maximum": 200,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  2. First observedv1.0.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, but the description adds substantial behavioral context beyond that: object ids are regenerated on every call, pages may be short or empty even when more results remain, and recursive-by-default behavior. This is exactly the kind of non-obvious runtime behavior an agent needs to avoid misusing results or terminating pagination early.

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 information-dense with no filler. It front-loads the core purpose and default behavior, then covers requirements, return content, pagination, and a critical id-stability warning — every sentence earns its place and the structure makes the most important caveat (unstable object ids) prominent.

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

Completeness5/5

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

There is no output schema, so the description carries the burden of explaining return values, and it does: names, sizes, storage classes, keys, and pagination. It also covers the full pagination loop and the unstable-id caveat, making the tool correctly invocable for a complete listing with no missing operational detail.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful semantic context for the cursor and bucketName parameters: it explains that the cursor must be followed until absent, warns that a page may be short/empty, and clarifies the bucketName requirement. It doesn't fully redefine each parameter, but it enriches the pagination semantics beyond the schema's one-line cursor description.

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

Purpose5/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 ('List the files in a drive straight from storage') and clarifies the key behavior ('recursively by default'). It also distinguishes itself from siblings by asserting it is 'the most reliable way to see what a drive actually contains' and by warning that its object ids are unsuitable for mutation tools, implicitly contrasting with browse_folder/search_files/recent_files.

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

Usage Guidelines5/5

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

The description explicitly states the prerequisite ('Requires the drive (bucketName)') and gives precise operational guidance for pagination ('keep calling with the returned cursor until no cursor comes back'). It also names alternatives for a stable StorageId (search_files, browse_folder, get_file_metadata) and explicitly excludes recent_files, giving the agent clear when-to-use vs when-not-to-use signals.

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