Skip to main content
Glama
cmeans

mcp-synology

Photos: Copy

copy_photos
Destructive

Copy Synology Photos items or whole folders into another folder in the same or a different space; choose skip or overwrite when files already exist.

Instructions

Copy Synology Photos items and/or whole folders into another folder, in the same space or the other one. Waits up to the configured task timeout (30 s by default); a longer copy keeps running on the NAS and the reply gives a handle for photo_task. With on_conflict=overwrite it replaces files at the destination.

Input Schema

NameRequiredDescriptionDefault
idsNoItem IDs from list_photos, in `space`, at most 1,000. Pass `ids`, `folders` or both.
spaceNoSource space: `personal` (default) or `shared` (Shared Space).personal
foldersNoFolder IDs or paths, with everything in them; not the space root. At most 1,000.
dest_spaceNoSpace of `destination`, if not `space`: `personal` or `shared`.
destinationYesThe existing target folder's ID or path, in `dest_space`.
on_conflictNoA file with that name already at the destination: `skip` (default) or `overwrite` (replaces it).skip

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.9.2

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial context beyond the destructiveHint=true annotation: the async timeout behavior, that the operation keeps running server-side after the reply, that a handle is returned for photo_task, and that overwrite replaces existing destination files. These are exactly the behavioral traits an agent needs to reason about a long-running destructive write.

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?

Three tightly packed sentences with no filler; the destructive overwrite behavior is stated at the end and the timeout/handle behavior is front-loaded where an agent will see it before calling.

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?

With no output schema, the description still tells the agent that a handle for photo_task may be returned for long copies, covering the key return-value concern. It leaves some ambiguity about the reply's structure in the synchronous case but is otherwise sufficient for a 6-parameter rewrite tool.

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 goes beyond the schema by explaining the on_conflict=overwrite consequence and the same-space/cross-space semantics of space vs dest_space. It does not add syntax or format details for ids/folders/destination beyond what the schema already documents.

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?

States a specific verb (copy) and resource (Synology Photos items and/or whole folders), plus the scope of copying into another folder within or across spaces. This clearly distinguishes it from move_photos and copy_files, which act on different resource types or semantics.

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 operating context: it blocks up to a task timeout (30 s by default), longer copies continue on the NAS with a handle for photo_task, and on_conflict=overwrite replaces destination files. It does not explicitly name when to prefer move_photos or copy_files, but the copy-vs-move distinction and cross-space capability are clear.

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