Skip to main content
Glama
intershopper

remote-admin-mcp

by intershopper

SSH MCP Server

MCP Server für SSH-basierte Server-Administration. Ermöglicht KI-Assistenten die Verwaltung von Remote-Servern via SSH.

Supported MCP Clients

graph LR
    subgraph Getestet
        K[Kiro CLI]
        C[Claude Desktop]
    end
    subgraph Kompatibel
        A[Alle MCP-fähigen Clients<br/>stdio + StreamableHTTP]
    end
    K --> MCP[SSH MCP Server]
    C --> MCP
    A --> MCP

Client

Transport

Status

Kiro CLI

stdio

✅ getestet

Claude Desktop

stdio

✅ getestet

Jeder MCP-Client

stdio / StreamableHTTP

✅ kompatibel

Related MCP server: cygnus-ssh-mcp

Features

Verwalte Linux-Server per SSH — direkt aus dem KI-Assistenten heraus. Keine Agents, Daemons oder Tools auf den Zielservern nötig. Nur ein SSH-Zugang reicht.

graph LR
    AI[KI-Assistent] -->|MCP| S[SSH MCP Server]
    S -->|SSH/SFTP| R1[Server 1]
    S -->|SSH/SFTP| R2[Server 2]
    S -->|SSH/SFTP| RN[Server N]
  • Agentless: Kein Setup auf den Zielservern — funktioniert mit jedem SSH-Zugang

  • Remote Command Execution: Einzelbefehle oder mehrzeilige Scripts ausführen

  • Sudo Support: Befehle mit sudo ausführen, ohne interaktives Passwort

  • File Operations: Dateien lesen (teilweise/komplett), schreiben, suchen, chirurgisch editieren

  • File Transfer: Upload/Download via SFTP

  • Service Management: Systemd Services starten, stoppen, restarten, Status prüfen

  • Code Navigation: Funktions-/Klassen-Übersicht aus Quelldateien extrahieren (grep-basiert, kein Language Server nötig)

  • Multi-Server: Beliebig viele Server parallel verwalten

  • Connection Pooling: SSH-Verbindungen werden 5 Minuten wiederverwendet

  • User Approval: Schreibende Operationen erfordern Bestätigung durch den Operator

  • Audit Log: Alle Aktionen werden protokolliert (Pfad konfigurierbar)

Installation

Von PyPI

pip install remote-admin-mcp

Mit uv (empfohlen für Entwicklung)

# Virtuelle Umgebung erstellen und Abhängigkeiten installieren
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"

Mit pip

# Virtuelle Umgebung erstellen
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# Abhängigkeiten installieren
pip install -e ".[dev]"

Konfiguration

  1. Kopiere .env.example zu .env:

cp .env.example .env
  1. Bearbeite .env mit deinen Server-Zugangsdaten:

SSH_SERVER_1_NAME=production
SSH_SERVER_1_HOST=prod.example.com
SSH_SERVER_1_PORT=22
SSH_SERVER_1_USER=admin
SSH_SERVER_1_PASSWORD=your-password

SSH_SERVER_2_NAME=staging
SSH_SERVER_2_HOST=staging.example.com
SSH_SERVER_2_PORT=22
SSH_SERVER_2_USER=deploy
SSH_SERVER_2_PASSWORD=your-password

MCP Tools

list_servers

Liste alle konfigurierten Server auf.

execute_command

Führe einen Befehl auf einem Remote-Server aus.

Parameter:

  • server (string): Server-Name

  • command (string): Auszuführender Befehl

  • use_sudo (boolean): Mit sudo ausführen

read_file

Lese eine Datei vom Remote-Server.

Parameter:

  • server (string): Server-Name

  • path (string): Dateipfad

write_file

Schreibe eine Datei auf den Remote-Server.

Parameter:

  • server (string): Server-Name

  • path (string): Dateipfad

  • content (string): Dateiinhalt

get_service_status

Prüfe den Status eines systemd Services.

Parameter:

  • server (string): Server-Name

  • service (string): Service-Name

manage_service

Verwalte einen systemd Service (start/stop/restart/reload).

Parameter:

  • server (string): Server-Name

  • service (string): Service-Name

  • action (string): Aktion (start/stop/restart/reload)

Verwendung mit KI-Assistenten

Kiro CLI / Claude Desktop (uvx — empfohlen)

Kein manuelles Installieren nötig — uvx lädt und cached das Paket automatisch:

{
  "mcpServers": {
    "ssh": {
      "command": "uvx",
      "args": ["remote-admin-mcp"],
      "env": {
        "SSH_SERVER_1_NAME": "production",
        "SSH_SERVER_1_HOST": "prod.example.com",
        "SSH_SERVER_1_USER": "admin",
        "SSH_SERVER_1_KEY_FILE": "~/.ssh/id_ed25519"
      }
    }
  }
}

Alternative: Mit .env-Datei

{
  "mcpServers": {
    "ssh": {
      "command": "uvx",
      "args": ["--env-file", "/path/to/.env", "remote-admin-mcp"]
    }
  }
}

Alternative: Lokale Installation

{
  "mcpServers": {
    "ssh": {
      "command": "/path/to/.venv/bin/ssh_mcp_server"
    }
  }
}

Beispiele

Log-Analyse:

"Zeige mir die letzten 100 Zeilen vom nginx error log auf production"

Service Restart:

"Starte den nginx Service auf staging neu"

Config ändern:

"Lies die nginx.conf auf production und erhöhe worker_processes auf 4"

Sicherheit

  • Schreibende Tools erfordern User-Approval durch den MCP Client

  • Lese-Tools (list_servers, read_file, search_in_file, get_file_structure) sind auto-approved

  • SSH-Key-Authentifizierung empfohlen (Passwort-Auth möglich)

  • .env sollte NICHT ins Git committed werden

Audit Log

Alle Aktionen werden in ein Logfile geschrieben:

[2026-04-12 13:14:00] [production] execute: tail -100 /var/log/syslog
[2026-04-12 13:14:05] [production] write_file: /etc/nginx/nginx.conf — Config update

Default: ~/.ssh-mcp-audit.log. Konfigurierbar per Environment-Variable:

SSH_MCP_AUDIT_LOG=/var/log/ssh-mcp-audit.log

Entwicklung

# Tests ausführen
pytest -v

# Linting
ruff check src/

Lizenz

MIT — siehe LICENSE

Available Tools

9 tools
executeA

Execute a command or multi-line script on a remote server via SSH. For single commands use command, for multi-line scripts use script. Requires approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoHuman-readable explanation of what this command does and why (for audit log)
scriptNoMulti-line bash script (alternative to command)
serverYesServer name
commandNoSingle command to execute
timeoutNoTimeout in seconds (default: 30, max: 300)
use_sudoNoUse sudo

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description is responsible for disclosing behavior. It mentions SSH and that approval is required, but fails to warn about potential side effects of executing commands, permissions needed, or how output is returned. This is a significant gap for a potentially destructive 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?

The description is extremely concise with two sentences, front-loading the core function and providing a key usage pointer. No wasted words.

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

Completeness2/5

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

Despite the compact schema, the tool is a remote execution tool with no output schema and missing information about return values, error handling, and side effects. The description does not complete the picture for an AI agent to understand what to expect after invocation.

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?

The schema already covers all parameters at 100%, but the description adds valuable clarification on when to use `command` versus `script`. This goes beyond schema details and aids correct invocation.

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 executes commands or scripts on a remote server via SSH, using a specific verb and resource. It distinguishes itself from sibling file and service management tools.

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?

It provides guidance on choosing between `command` and `script` parameters, which is useful. However, it does not explicitly mention when not to use this tool or point to alternatives like read_file or write_file for safer operations, leaving some ambiguity.

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

get_file_structureA

Get an overview of functions, classes and key definitions in a source file. Returns symbol names with line numbers. Use this to understand a large file before reading or editing specific sections.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path
serverYesServer name
languageNoLanguage hint (auto-detected from extension if omitted)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the return value ('symbol names with line numbers') but does not mention limitations, error behavior, or whether it scans recursively. The description is truthful but minimal.

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?

Two sentences: the first states the core functionality and return value, the second gives usage guidance. No filler or redundancy; every sentence earns its place.

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 simple overview tool with 3 parameters and no output schema, the description covers purpose, return value, and usage context. It could mention output structure or unsupported file types, but it is largely complete for the tool's scope.

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 all parameters (path, server, language) are already documented. The description adds no additional parameter semantics beyond what the schema provides, meeting the baseline.

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 'Get an overview of functions, classes and key definitions in a source file', which is a specific verb+resource statement. It clearly distinguishes itself from siblings like read_file (whole file content) and search_in_file (text matching) by focusing on structural symbols.

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 explicitly states when to use the tool: 'Use this to understand a large file before reading or editing specific sections.' This gives a clear context without enumerating exclusions or alternatives, but it is sufficient guidance.

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

list_serversA

List all configured SSH servers with their connection details. Call this first to discover available server names.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It states the operation is a listing without side effects, but does not mention any requirements, permissions, or potential errors. The description is minimally transparent but lacks depth.

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 exactly two sentences, with the first stating the action and the second providing usage direction. Every word earns its place; no fluff or redundancy.

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 simple 0-parameter tool without an output schema, the description gives the core function and a direct usage hint. It could be slightly more specific about what 'connection details' includes, but the overall context is sufficiently complete for a discovery operation.

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?

The input schema has zero parameters, so the description has no parameter details to add. Per the rubric, a baseline of 4 applies for zero-parameter tools, and the description does not need to compensate for any schema gaps.

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 uses a specific verb ('List') and resource ('configured SSH servers'), clearly distinguishing it from sibling tools like execute or read_file. It also adds the scope ('all configured') and output intent ('connection details').

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 instruction 'Call this first to discover available server names' provides a clear when-to-use context and implies a discovery role before other operations. It stops short of naming alternatives or exclusions, but for a listing tool this is sufficient.

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

read_fileA

Read a file or specific line range from a remote server. For large files (>200 lines), always use lines+offset to read only the relevant section. Use tail=true to read from end (e.g. log files).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path
tailNoRead from end of file
linesNoNumber of lines to read
offsetNoLine offset (skip N lines from start)
serverYesServer name

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries full transparency burden. It discloses the ability to read line ranges and tail behavior, but it does not mention error handling, permissions, or behavior for non-text files. It adds some context but leaves important behavioral details unspecified.

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 with no wasted words. The main purpose is front-loaded, followed by two concise usage tips. It earns every word and is easy to parse.

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 tool with 5 parameters and no output schema, the description adequately covers the key contextual aspects: file size handling and tail usage. It lacks details on return format or error cases, but these are not essential for basic operation. The guidance on large files is especially valuable.

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 baseline is 3. The description adds meaning beyond the schema by explaining the purpose of lines+offset for large files and tail for log files. This effectively clarifies how parameters interact and when to use them.

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: 'Read a file or specific line range from a remote server.' It uses a specific verb (read) and resource (file from remote server), and distinguishes it from siblings by specifying the ability to read specific ranges and from the end. This differentiates it from search/replace/write tools.

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 usage guidance for large files ('always use lines+offset') and for logs ('use tail=true'). It lacks explicit alternatives/exclusions, but the context is clear. It doesn't say 'use this instead of X', but it gives actionable rules for parameter selection.

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

replace_in_fileA

Replace a specific text passage in a remote file without loading the full content. Preferred over write_file for editing large files. Returns error if old_text not found. Supports dry_run preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path
countNoMax replacements (default: 1, 0 = all)
reasonNoHuman-readable explanation of what is being changed and why (for audit log)
serverYesServer name
dry_runNoPreview changes without applying
new_textYesReplacement text
old_textYesExact text to find (multi-line supported)

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses error behavior ('Returns error if old_text not found') and dry-run support ('Supports dry_run preview'), but omits other behavioral traits like permissions management, atomicity, or success response format. This is moderate transparency, not exhaustive.

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 concise sentences, front-loaded with the core action and key differentiators. Every sentence adds value: purpose, usage guidance, and error/dry-run behavior. No filler or redundancy.

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?

Given no output schema and no annotations, the description should cover return values and potential failure modes more completely. It mentions error on old_text not found but not success output or count behavior. However, the core purpose and usage context are well covered, making it adequate but with clear gaps.

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 100%, so the baseline is 3. The description adds no parameter-specific explanations beyond the schema; it does not clarify count semantics, the purpose of reason, or how dry_run works. It neither helps nor hinders parameter understanding beyond what the schema already provides.

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 a specific verb+resource: 'Replace a specific text passage in a remote file'. It also distinguishes from siblings by noting 'without loading the full content' and 'Preferred over write_file for editing large files', making its purpose unique.

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 explicitly says 'Preferred over write_file for editing large files', giving a clear alternative and condition for use. However, it does not mention other siblings like search_in_file or read_file, nor does it state when NOT to use this tool, leaving some usage ambiguity.

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

search_in_fileA

Search for a text pattern in a remote file using grep. Returns matching lines with line numbers and surrounding context. Use this to locate code sections before editing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path
serverYesServer name
patternYesGrep regex pattern
max_matchesNoMaximum number of matches
context_linesNoLines of context around each match

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavioral traits. It implies a read-only operation ('Search...using grep') and explains return value structure, but it does not explicitly state safety (e.g., no modification), permissions required, or behavior on no matches. This is adequate but not rich.

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?

Two sentences, front-loaded with the core purpose, no fluff. Each sentence earns its place: one defines the action and method, the other defines output and usage context.

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?

Given no output schema, the description appropriately explains the return values (matching lines, line numbers, context). It also provides usage context. It does not cover edge cases like file-not-found or empty results, but for a read-only search tool with well-specified parameters, this is reasonably complete.

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 every parameter is documented. The description adds minimal semantic value by stating the output includes 'surrounding context' which aligns with the context_lines parameter. Baseline of 3 is appropriate since the schema does the heavy lifting.

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 action ('Search for a text pattern in a remote file') and specifies the mechanism ('using grep') and output ('matching lines with line numbers and surrounding context'). It effectively distinguishes itself from sibling tools like read_file (reads full file) and replace_in_file (modifies content) by focusing on search/location.

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?

Provides explicit guidance: 'Use this to locate code sections before editing.' This tells agents when to invoke the tool. However, it does not mention when not to use it or explicitly name alternatives, though the sibling context implies the distinction.

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

serviceA

Manage or query a systemd service. Use action=status to check, or start/stop/restart/reload to control. Actions other than status require sudo.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
reasonNoHuman-readable explanation of why this service action is needed (for audit log)
serverYesServer name
serviceYesService name

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden of disclosing behavior. It accurately distinguishes read-only status from mutating control actions and highlights the sudo requirement. This is valuable practical context beyond the raw schema.

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 concise sentences, front-loaded with the core purpose and followed by actionable usage notes. Every sentence earns its place with no redundancy or filler.

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 tool is simple, and the schema covers all parameters comprehensively. The description addresses the main behavioral requirements (action types, sudo) and is complete enough for an agent to select and invoke the tool correctly, even without an output schema.

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 baseline is 3. The description repeats the action enum values but does not add deeper meaning to parameters like reason or server beyond what the schema already provides. No additional semantic value is offered.

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 manages or queries a systemd service, with specific actions enumerated. This distinguishes it from sibling tools like execute or read_file, which address different domains. The verb+resource pair is specific and unambiguous.

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 clear guidance on when to use status vs control actions and explicitly notes the sudo requirement for non-status actions. It does not explicitly mention alternatives, but the action-level guidance is strong and contextually sufficient.

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

transfer_fileA

Transfer a file between local machine and remote server via SFTP. Use direction=upload to send, direction=download to receive.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoHuman-readable explanation of what is being transferred and why (for audit log)
serverYesServer name
directionYesTransfer direction
local_pathYesLocal file path
remote_pathYesRemote file path

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the SFTP protocol and direction semantics, but omits important behavioral aspects such as authentication requirements, overwrite behavior, failure handling, and whether the server must be previously configured. This is a network operation, so these gaps are significant.

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 a single, front-loaded sentence that states the core function and then explains direction usage. Every word earns its place, with no unnecessary detail or repetition.

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 tool has 5 parameters and no output schema. The description covers the primary purpose and direction semantics but misses some context like server prerequisites (e.g., server must exist in list_servers), overwrite behavior, and response/status information. Overall, it is reasonably complete for a simple file transfer but leaves a few gaps.

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?

The schema covers 100% of parameters, but the description adds value by clarifying that 'upload' means send from local to remote and 'download' means receive from remote to local, which the schema enum alone does not explicitly state. Other parameters rely on schema descriptions, so the net contribution is moderate.

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 transfers files between local and remote via SFTP, with a specific verb and resource. It distinguishes itself from sibling local file tools (read_file, write_file) by explicitly mentioning the remote server and SFTP.

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 description provides clear context about the tool's function and explains the direction parameter, but it does not explicitly state when to use this tool versus alternatives like read_file or write_file, nor does it mention any exclusions. Usage is implied rather than explicitly guided.

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

write_fileA

Overwrite an entire file on remote server via SFTP. WARNING: replaces full file content. For surgical edits on large files, use replace_in_file instead. Requires approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path
reasonNoHuman-readable explanation of what is being written and why (for audit log)
serverYesServer name
contentYesFile content

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It warns about destructive overwriting and notes the approval requirement, which is critical safety and operational information. It does not describe return values or edge cases, so a perfect score is not warranted.

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?

Two sentences that front-load the warning and purpose, with no wasted words. The alternative and approval requirement are briefly noted.

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 core behavior, the destructive nature, an alternative, and the approval requirement. Missing return value or error context, but no output schema exists and the tool is straightforward. It is sufficiently complete for an agent to use correctly, but not exhaustive.

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 100% with terse descriptions. The tool description adds some context by clarifying that content is the full file content and that the target is a remote server, but it does not provide detailed per-parameter semantics beyond that. Baseline for high coverage is 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 overwrites an entire file on a remote server via SFTP, using a specific verb and resource. It also distinguishes itself from replace_in_file by warning about full content replacement.

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?

It explicitly directs users to replace_in_file for surgical edits on large files, providing a clear alternative. The approval requirement also sets expectations for when this tool can be used.

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

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose: server discovery, command execution, file reading/writing/transfer, service control, and file inspection/editing. The overlap between write_file and replace_in_file is explicitly disambiguated by descriptions, and file-reading tools are differentiated by intent (full read, search, structure).

Naming Consistency4/5

Most tools follow a verb_noun pattern (list_servers, read_file, write_file, transfer_file, search_in_file, replace_in_file), with a couple of exceptions: 'execute' is a bare verb and 'service' is a noun used as a command. However, the pattern is recognizable and predictable overall.

Tool Count5/5

9 tools is well-scoped for a remote administration server. Each tool covers a necessary function without bloat, and the count is within the ideal range for a specialized MCP server.

Completeness4/5

The tool surface covers the core remote admin workflows: discovering servers, executing commands, reading/editing/writing files, transferring files, and managing services. Minor gaps exist (e.g., no explicit directory listing or delete/rename file tool), but these can be worked around via the execute tool.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to securely connect to and manage remote servers via SSH, supporting command execution, file transfers via SFTP, and multi-server management with both password and SSH key authentication.
    9
    56
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to manage remote servers via SSH with 43 specialized tools for command execution, file editing, directory operations, and background tasks across Linux, macOS, and Windows.
    44
    5
    GPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to securely execute commands, transfer files, and manage port forwarding on remote servers via SSH.
    168
    36
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/intershopper/remote-admin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server