Skip to main content
Glama
webapper-services

CloudSee Drive MCP Server

Move or copy file

move_file
Destructive

Move or copy a file or folder to a new path on CloudSee Drive. Uses the object's StorageId and exact key; moves require confirmation and run in the background.

Instructions

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
asCopyNoCopy instead of move (copy is non-destructive; the source is kept).
confirmNoMust be true to actually perform this mutating/irreversible action. If omitted or false, the tool returns a preview and makes no changes.
isFolderNoSet true for a folder.
objectKeyYesExact source object key as returned by a listing tool (folders keep their trailing slash).
storageIdYesStorage/index id of the object — the StorageId field returned by search_files, browse_folder, or get_file_metadata. NOTE: the ids from list_files and recent_files belong to a different id space and will NOT work here.
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.
destinationPathYesDestination folder prefix.
destinationBucketNoTarget drive, if different from the source drive.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.1.1
    • changedInput schema / properties / storageId / description
      Previous value: -"Storage/index id of the object — the StorageId field returned by the INDEXED listing tools (search_files, browse_folder, recent_files). NOTE: list_files reads straight from storage and returns a different id that will NOT work here."New value: +"Storage/index id of the object — the StorageId field returned by search_files, browse_folder, or get_file_metadata. NOTE: the ids from list_files and recent_files belong to a different id space and will NOT work here."
  2. First observedv1.0.0

TDQS

A4.7/5.0
Behavior5/5

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

The description goes well beyond annotations by disclosing asynchronous queued behavior ('returns a RequestId... completes in the background'), the destructive nature of a move, the confirm=true guard, RBAC denial semantics, and the id-space incompatibility of list_files/recent_files ids. This is rich, actionable behavioral information not available from the structured annotations alone.

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 front-loaded with the core action, then adds necessary caveats in a logical order: addressing, queued behavior, destructive semantics, and authorization. Every sentence earns its place; despite the length, there is no filler or repetition of the schema.

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?

For a complex, destructive, async tool with no output schema, the description is complete: it explains the returned RequestId, the verification-by-listing pattern, the confirm requirement, the storage id constraint, the bucket prerequisite, and the meaning of RBAC denial. An agent has enough information to call the tool correctly.

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 input schema already has 100% parameter coverage, so the baseline is 3. The description adds critical semantic detail beyond the schema, especially the warning that storage ids from list_files and recent_files belong to a different id space and will not work, and the note that bucketName is required unless a default bucket is configured. This makes parameter misuse less likely.

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: 'Move (or copy, with asCopy=true) a file or folder to a new location.' It distinguishes between move and copy, and adds the precise addressing requirement (object key plus storage id), which separates it from related sibling tools like rename_file or duplicate_file.

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?

The description gives clear operational context: it explains when the tool is appropriate (moving/copying to a new location), how to verify completion, and the confirmation requirement for destructive moves. It does not explicitly name alternatives or state when not to use this tool, but the context is clear enough to guide selection.

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