Skip to main content
Glama

Upload photos

photos_upload

Upload local photo and video files to Proton Photos, recursing folders while flattening structure and skipping non-media. Duplicate names and content are skipped or renamed, never overwritten.

Instructions

Upload local photo or video files into your Proton Photos library. Non-photo/video files are skipped and counted in skippedItems (with duplicate skips). Folders are recursed but flattened — structure is not preserved. Never overwrites: duplicates (name + content hash) resolve to 'rename' or 'skip' only.

Input Schema

NameRequiredDescriptionDefault
localPathsYesOne or more absolute local paths to files or folders to upload (each must start with '/').
conflictStrategyNoHow to handle duplicate photos (matched by name + content hash). 'skip' leaves the existing photo unchanged (default); 'rename' uploads under a unique name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.0.32
    • changedInput schema / properties / conflictStrategy / description
      Previous value: -"How to handle duplicate photos (matched by name + content hash). Defaults to 'skip'."New value: +"How to handle duplicate photos (matched by name + content hash). 'skip' leaves the existing photo unchanged (default); 'rename' uploads under a unique name."
    • changedInput schema / properties / conflictStrategy / enum
      Previous value: -[
      -  "skip",
      -  "keep-both"
      -]New value: +[
      +  "skip",
      +  "rename"
      +]
  2. Addedv1.0.28

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behavioral traits: non-media files are skipped and counted, folders are recursed but flattened so structure is not preserved, and duplicates never overwrite. These details materially affect how an agent should invoke and interpret the tool.

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 sentences, front-loaded with the primary action, followed by concise behavioral constraints. Every sentence adds distinct value, and there is no redundant restatement of the title or schema.

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 two-parameter upload tool with rich input schema coverage, the description covers the key invocation behavior and side effects. It is slightly incomplete about return details beyond skippedItems and does not mention auth, size limits, or progress behavior, but there is no output schema requiring that elaboration.

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 description coverage is 100%, so the baseline would be 3. The description still adds meaning by clarifying that folder paths are recursed but flattened, and by emphasizing that duplicate handling never overwrites, which reinforces the conflictStrategy semantics beyond the enum values.

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 gives a specific verb and resource: upload local photo/video files into the Proton Photos library. It clearly distinguishes this from the sibling drive_upload by scoping the operation to Photos, and it names the accepted media types upfront.

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 makes the intended use clear: local photo or video files for Proton Photos. It also implies when not to use it by stating that non-photo/video files are skipped, though it does not explicitly route the agent to an alternative such as drive_upload.

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