Skip to main content
Glama
Echoqili

ssh-licco

by Echoqili

ssh_file_transfer

Transfer files between local and remote servers via SFTP, supporting upload, download, list, write, append, delete, mkdir, stat, and server-to-server copy with scp/rsync.

Instructions

Transfer and manage files between local and remote server via SFTP. Supports upload, download, list, write (write content directly to remote file), append, delete, mkdir, stat, and remote_copy (server-to-server direct transfer via scp/rsync, avoiding local relay).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hostNoSSH server hostname or IP. Alternative to session_id/name, can override hosts.json entry.
nameNoUse a pre-configured host from hosts.json by name. Alternative to session_id.
portNoSSH port (used with host).
contentNoContent to write/append to remote file. Required for write/append.
passwordNoSSH password (used with host).
usernameNoSSH username (used with host).
directionYesAction: upload, download, list, write (content->remote file), append, delete, mkdir, stat, remote_copy (server-to-server direct transfer).
use_rsyncNoremote_copy: Use rsync instead of scp (better for large directories, supports resume).
local_pathNoLocal file path. Required for upload/download.
session_idYesActive SSH session ID. If omitted, connects via name/host/env vars.
remote_pathNoRemote file/directory path. Required for all directions. For remote_copy, this is the source path on the connected server.
target_hostNoremote_copy: Target server hostname/IP.
target_pathNoremote_copy: Destination path on target server.
target_portNoremote_copy: Target SSH port.
target_userNoremote_copy: Target SSH username.root
target_passwordNoremote_copy: Target server password (uses sshpass). If omitted, assumes key-based auth is configured.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.7.2

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It does disclose that remote_copy uses scp/rsync and avoids local relay, which is useful. But it does not mention authentication fallback behavior, that delete/write/overwrite operations are destructive, or what the tool returns after an operation.

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 two sentences, front-loads the core purpose, and then lists operations efficiently. Every phrase earns its place; there is no fluff or redundant restating of parameter names.

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?

For a tool with 16 parameters, 9 directions, no annotations, and no output schema, the description is serviceable but not complete. It gives a good operation catalog but leaves out connection/session selection context, authentication expectations, destructive-operation warnings, and return-value behavior, which an agent would need to invoke it correctly across all modes.

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 description coverage is 100%, so the schema already documents every parameter. The description adds a little context around write and remote_copy, but it largely stays at the operation-catalog level rather than adding meaning beyond the schema.

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 opens with a clear verb-resource pair: 'Transfer and manage files between local and remote server via SFTP.' It then enumerates the exact operations, making the tool easily distinguishable from sibling tools like ssh_execute or ssh_session.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The operation list implies when the tool is appropriate for file transfer and management, and the remote_copy note gives a small usage hint about avoiding local relay. However, it never explicitly contrasts this tool with alternatives such as ssh_execute for running commands or ssh_session for session management.

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