Skip to main content
Glama
webapper-services

CloudSee Drive MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CLOUDSEE_LOG_LEVELNoerror | warn | info | debug. At debug, every API request + response is logged to stderr (secret redacted) for auditing.info
CLOUDSEE_API_KEY_IDYesYour CloudSee Drive API key id.
CLOUDSEE_TIMEOUT_MSNoPer-request timeout in milliseconds.30000
CLOUDSEE_API_BASE_URLNoAPI base URL. UAT: https://drive-api-uat.cloudsee.cloud.https://drive-api.cloudsee.cloud
CLOUDSEE_API_KEY_SECRETYesThe matching API key secret. Never commit this.
CLOUDSEE_DEFAULT_BUCKETNoDefault drive (S3 bucket) for tool calls that omit bucketName. Find the name in the CloudSee dashboard.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_bucketsA

List the drives registered to the authenticated CloudSee Drive account that the caller is allowed to see. Use this first to discover available drives before browsing or searching; the Name of a drive is the bucketName the other tools expect.

browse_folderA

List the files and sub-folders inside a folder of a drive (the indexed view), with sorting and pagination. Requires the drive (bucketName). To filter by keyword use 'search_files'; for a complete, recursive file listing straight from storage use 'list_files'. 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.

search_filesA

Search for files and folders by name keyword within a drive (the indexed view). Requires the drive (bucketName). Returns matches with pagination. 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.

list_filesA

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.

recent_filesA

List the account's most recently accessed or modified files, newest first, with pagination. For a complete listing, keep calling with the returned cursor until no cursor comes back.

get_file_metadataA

Get detailed metadata for a single file or object (size, type, timestamps, storage class, and other attributes) by its object key. Requires the drive (bucketName).

get_file_tagsA

Get the S3 object tags (key/value pairs) attached to a file, by object key. Requires the drive (bucketName).

download_fileA

Get a short-lived pre-signed download URL for a file. Requires the drive (bucketName). The URL is time-limited and grants read access to that one object — share it with care. Returns the URL; it does not load file bytes into the conversation.

share_linkA

Create a shareable link to a file. Requires the drive (bucketName). Optionally set expireTime in hours (default 12 hours, capped at 30 days). Returns a CloudSee share page URL with its expiry and a share id. This is a write: it publishes the file to anyone who holds the link until the share expires, and no tool can list or revoke shares — an unwanted share can only be revoked from the CloudSee dashboard.

upload_fileA

Upload a file into a folder of a drive. The file is read from the machine running this server — which, over this connection, is your own machine — so pass its path. Requires the drive (bucketName). Files up to 8 MiB are sent in one piece; larger ones are split into parts automatically. If the name is already taken, a timestamped name is used instead, so an existing file is never overwritten. Indexing is asynchronous, so a file that uploaded successfully is still absent from browse_folder / search_files / list_files for a while afterwards — keep listing until it appears instead of uploading it again. (Write access is authorized server-side by the public API's RBAC — a denial means the API key lacks this tool's scope, not a tool failure.)

upload_statusA

Report progress on an upload started by 'upload_file' that was too large to finish inside one tool call. Give it the id upload_file returned, or omit the id to list every tracked upload. States are running, completed and failed; a file is only in the drive once its upload reports completed. This reads progress held in this server process and makes no API call, so it is safe to poll. (Write access is authorized server-side by the public API's RBAC — a denial means the API key lacks this tool's scope, not a tool failure.)

create_folderA

Create a new folder at the given path in a drive. Requires the drive (bucketName). (Write access is authorized server-side by the public API's RBAC — a denial means the API key lacks this tool's scope, not a tool failure.)

rename_fileA

Rename a file or folder in a drive, addressed by its exact object key plus its storage id (the StorageId field from search_files / browse_folder / get_file_metadata — not from list_files or recent_files, whose ids are a different id space and will NOT work). Queued: returns a RequestId and the rename completes in the background, typically under 2 minutes — verify by listing until the new name appears. The StorageId goes stale while the rename is in flight, and StorageId is what delete_files and move_file require, so re-read it from a listing once the new name appears rather than reusing the one you renamed with. Requires the drive (bucketName). Destructive (changes the object's key). Requires confirm=true. (Write access is authorized server-side by the public API's RBAC — a denial means the API key lacks this tool's scope, not a tool failure.)

move_fileA

Move (or copy, with asCopy=true) a file or folder to a new location, addressed by its exact object key plus its storage id (the StorageId field from search_files / browse_folder / get_file_metadata — not from list_files or recent_files, whose ids are a different id space and will NOT work). Queued: returns a RequestId and the operation completes in the background, typically under 2 minutes — verify by listing until the object appears at the destination. Requires the source drive (bucketName). A move removes the source and is destructive, so it requires confirm=true; a copy does not. (Write access is authorized server-side by the public API's RBAC — a denial means the API key lacks this tool's scope, not a tool failure.)

duplicate_fileA

Create a copy of a file in the same location. Requires the drive (bucketName). (Write access is authorized server-side by the public API's RBAC — a denial means the API key lacks this tool's scope, not a tool failure.)

delete_filesA

Permanently delete one or more files/folders from a drive, each addressed by its exact object key plus its storage id (the StorageId field from search_files / browse_folder / get_file_metadata — not from list_files or recent_files, whose ids are a different id space and will NOT work). Queued: returns a RequestId per object and the deletes complete in the background, typically under 2 minutes — verify by listing until the objects disappear. Requires the drive (bucketName). Destructive and irreversible. Requires confirm=true. (Write access is authorized server-side by the public API's RBAC — a denial means the API key lacks this tool's scope, not a tool failure.)

update_metadataA

Update a file's metadata (category / description / project) and tags in a drive, addressed by its storage id (the StorageId field from search_files / browse_folder / get_file_metadata — not from list_files or recent_files, whose ids are a different id space and will NOT work). Defaults to mode "merge": a metadata field you do not send is KEPT, a field sent as "" is CLEARED, and tags are merged by Key — a tag with the same Key is overwritten and tags with other Keys are kept. Destructive cases: sending tags: [] CLEARS every tag on the object, and mode "replace" clears every metadata field and every tag you do not send — that is also the only way to remove a single tag, by sending the complete set you want to keep. Requires the drive (bucketName) and confirm=true. Note: the update rewrites the object in place (S3 copy) — its ETag changes (and may change format) and LastModified is set to the update time; ETag-keyed caches and sync tools will see the object as new. Objects larger than 5 GiB are updated via multipart copy; objects larger than 8 GiB are rejected, because the rewrite cannot finish inside the API request timeout. (Write access is authorized server-side by the public API's RBAC — a denial means the API key lacks this tool's scope, not a tool failure.)

restore_archived_fileA

Begin restoring an archived (S3 Glacier) object so it can be downloaded. Requires the drive (bucketName). This is Glacier un-archiving — NOT recovery of a deleted file — and may incur retrieval cost and take minutes to hours. Requires confirm=true. (Write access is authorized server-side by the public API's RBAC — a denial means the API key lacks this tool's scope, not a tool failure.)

get_versionA

Report the version of this CloudSee Drive connector, how many tools it registered, and which CloudSee API host it is configured against. Answer this from the tool rather than from the package version you believe is installed: a client keeps the tool list it fetched when it connected, so an upgraded server can still be described by an older list until the connector is reconnected. Takes no arguments, makes no API call and never reports the API key or its secret.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 19 tools

Disambiguation4/5

Most tools are clearly distinct in purpose, but the listing tools (browse_folder, search_files, list_files, recent_files) overlap in functionality. Each has detailed descriptions explaining the differences, so an agent can differentiate them, but they could still cause misselection if descriptions are not read carefully.

Naming Consistency4/5

All tool names use snake_case and predominantly follow a verb_noun pattern (list_buckets, download_file, move_file). A few like recent_files and get_version deviate slightly, but the overall convention is consistent and predictable.

Tool Count4/5

With 19 tools, the server covers a wide range of drive operations (browse, search, upload, download, manage metadata, share, archive restore). While on the higher end, each tool serves a distinct function that justifies its inclusion for a comprehensive drive API.

Completeness4/5

The tool set covers the full lifecycle of file management: create, read, update, delete, plus metadata, tags, sharing, and archiving. Minor gaps exist, such as no share revocation or bulk operations, but these are not critical for core workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues