Skip to main content
Glama

sassy_copy

Idempotent

Duplicates files or directories with metadata, creating parent folders as needed. Refuses sensitive sources and existing destinations to prevent data loss or exfiltration.

Instructions

Mutating: duplicates a file or an entire directory tree. Files are copied with metadata (shutil.copy2); directories copy recursively. Parent directories of the destination are created as needed. Refuses protected sources or destinations (SassyMCP source tree, ~/.sassymcp) and refuses sources on the sensitive-read denylist (SSH keys, AWS/GPG credentials, /etc/shadow, browser login DBs, SassyMCP tokens) — copying such material is treated as read-equivalent exfiltration and refused like a content read. Also refuses to overwrite an existing destination — run sassy_safe_delete on the destination first if you really need to replace it. Use it to duplicate files or trees; use sassy_move when you want to relocate rather than duplicate.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceYes
destinationYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior1/5

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

The description directly contradicts the idempotentHint annotation. It states 'refuses to overwrite an existing destination,' meaning a second call with the same destination would fail, making the operation non-idempotent. This is a clear contradiction to the annotation's idempotentHint: true. Because the description's behavior conflicts with the annotation, the transparency score is reduced to 1.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but not overly verbose. Every sentence contributes value: it states the copying behavior, metadata handling, directory recursion, parent directory creation, restrictions, overwrite refusal, and usage guidance. The opening 'Mutating:' is redundant with the annotations, but overall the structure is logical and information-dense. It earns a 4 for being comprehensive without excessive fluff.

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?

The description covers the essential aspects needed to call the tool: what it does, restrictions, overwrite behavior, and alternatives. Since an output schema exists, the description doesn't need to explain return values. It lacks explicit parameter definitions, but that is partially compensated by schema context. The main gap is the inconsistency with annotations, which affects trust but not completeness. It is nearly complete, so a 4 is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no descriptions for the 'source' and 'destination' parameters (0% coverage), so the description must compensate. It implies these parameters through context, such as 'duplicates a file or directory' and 'Parent directories of the destination are created as needed,' which gives some meaning. However, it never explicitly defines what each parameter represents, their formats, or constraints beyond inferable context. This is adequate but not fully explicit, hence a score of 3.

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 clearly states the tool's function: 'duplicates a file or an entire directory tree.' It specifies the verb (duplicate) and resource (file or directory), and distinguishes it from sassy_move by explicitly naming the alternative. This is unambiguous and allows an agent to understand exactly what the tool does.

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 provides explicit usage guidance: 'Use it to duplicate files or trees; use sassy_move when you want to relocate rather than duplicate.' It also mentions using sassy_safe_delete if overwrite is needed. This clearly differentiates when to use this tool versus alternatives and gives practical advice for handling the no-overwrite constraint.

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

Deploy Server

Other Tools