Skip to main content
Glama

push_files

Destructive

Copies a local directory to a cluster over SSH with staged, retried transfers, overwriting same-name files without deleting others; choose tracked code files or all non-cache files.

Instructions

Copy a directory to the cluster (tar over SSH, retried; staged, so a failed push changes nothing; overwrites files of the same name, never deletes others). mode='tracked': git-tracked and untracked-but-not-ignored files plus a REVISION file, for code repositories; mode='all': everything except .git, venvs, caches and *.sif. host: the machine local_dir is on ('' = the machine the server runs on; default: the server's client machine, see the result's 'host'). local_dir must be inside the local root there (the home directory, outside hidden directories); remote_dir under $DATA, $SCRATCH or ~/ (e.g. '$DATA/'). Code only: big data is fetched in jobs. Warns (does not refuse) when your pending or running jobs work in or around remote_dir: Slurm keeps only a copy of the batch script, so pending jobs run the pushed code and running ones may read changed files mid-run.

Input Schema

NameRequiredDescriptionDefault
hostNo
modeNotracked
excludeNo
local_dirYes
remote_dirYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the destructiveHint=true annotation: it discloses that a failed push changes nothing (staged), that it overwrites same-name files but never deletes others, that operations are retried, and that it warns when pending/running Slurm jobs occupy remote_dir. This precisely scopes how destructive the tool actually is, which the annotation alone cannot convey.

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?

Front-loaded with the core action and dense with useful facts; every clause carries information. It is a run-on paragraph with stacked parentheticals, though, and bullet points per parameter would scan faster for an agent parsing constraints.

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 5-parameter mutating tool with no parameter descriptions and no output schema, the description covers almost everything an agent needs: path restrictions, mode semantics, overwrite behavior, and job-conflict warnings, even pointing at the result's 'host' field. Only the `exclude` parameter remains unexplained.

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?

With 0% schema coverage the description carries the load, and it does so for host (including '' semantics and the default client machine), mode (both enum-like values explained), and the path constraints for local_dir and remote_dir. The `exclude` parameter is never mentioned or exemplified, leaving one of five parameters undocumented anywhere.

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?

Opens with a precise verb+resource+destination: "Copy a directory to the cluster", and adds the mechanism (tar over SSH, retried, staged). Directionality ('push' to cluster) makes it unmistakable against the sibling fetch_files without needing to name it.

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?

Gives explicit when-to-use guidance for both modes (tracked = code repositories; all = everything except .git/venvs/caches/*.sif) and an explicit when-not: "Code only: big data is fetched in jobs." That constraint steers the agent away from using this for data transfer.

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