Skip to main content
Glama
lunix1024

Rex SSH MCP

by lunix1024

ssh_download_file

Destructive

Retrieve a remote file over SFTP to an absolute local path. Uses pre-configured server credentials, with optional overwrite control and custom timeout settings.

Instructions

Download a remote file from the selected server through SFTP to an absolute local path. Existing local files are not overwritten by default. SSH credentials are private server-side configuration. Never ask the user for a password. Use ssh_list_servers when the user has not supplied an exact configured alias.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
serverYesExact configured server alias returned by ssh_list_servers.
timeoutNoTransfer timeout in seconds (1–3600), default 300.
localPathYes
overwriteNo
remotePathYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0

TDQS

A3.9/5.0
Behavior4/5

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

The annotations already declare destructiveHint=true, so the destructive nature is known. The description adds valuable specifics: 'Existing local files are not overwritten by default' clarifies the overwrite behavior, and 'SSH credentials are private server-side configuration. Never ask the user for a password' is a critical operational note not captured in annotations. This goes beyond the structured fields and helps the agent handle real-world constraints.

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 three sentences with zero fluff. The core action is front-loaded, followed by a behavioral note and a critical usage rule. Every sentence adds essential information, and the structure is clean and scannable for an agent. This is an exemplar of conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters and no output schema, so the description must provide enough context for correct invocation. It covers server alias resolution, password handling, and overwrite default, which are critical. However, it doesn't mention what happens on success (e.g., return value) or potential error conditions (e.g., connection failure, invalid paths). The timeout parameter is handled by the schema, but the overall description could be more complete for a file-transfer operation. Still, the core usage is adequately covered.

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?

Schema coverage is only 40%, with only server and timeout described. The description partially compensates: it defines localPath as 'absolute local path' and mentions the default overwrite behavior, which relates to the overwrite parameter. However, remotePath is not described beyond the tool name, and overwrite itself isn't explicitly defined as a parameter. Given the low coverage, the description adds some value but doesn't fully explain all parameters. A score of 3 reflects this partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Download a remote file from the selected server through SFTP to an absolute local path.' It specifies the resource (remote file) and destination (local path). While it doesn't explicitly contrast with similar siblings like ssh_read_file or ssh_upload_file, the phrase 'through SFTP' and 'to an absolute local path' distinguishes it well enough. A clear, specific purpose.

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 provides explicit guidance: 'Use ssh_list_servers when the user has not supplied an exact configured alias.' It also instructs the agent to never ask for a password, which is a key usage rule. However, it doesn't explicitly state when to use this tool versus ssh_upload_file (the inverse operation), but the direction is obvious from the name and description. Overall, useful usage direction is present.

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