A Model Context Protocol server for SSH connections and remote command execution, with support for both SSH and PowerShell/WinRM modes
SSH-Connect has critical definition gaps. Tool descriptions are present but minimal (10-50 chars, well below the 194-char baseline). Parameters lack descriptions entirely, the 'connect' tool has 7 parameters with NO descriptions explaining what each controls. No input schemas are visible in the source code provided; tool definitions appear inferred from function signatures rather than explicitly registered with JSON Schema. Error handling is absent, no guidance on recovery, retryable vs. fatal errors, or actionable messages. The 'connect' tool conflates SSH and PowerShell modes in a single tool, violating single-responsibility. No output schemas documented. Security-critical: passwords and SSH keys exposed as parameters rather than server-side injection.
Connect to SSH server or initialize PowerShell/WinRM target computer
Disconnect from active SSH server or PowerShell target host
Download a file from the remote server
Execute command on active server/host
List files in a directory on the remote server
Upload a file to the remote server
No input schemas visible in source code. Tool definitions appear inferred from function signatures rather than explicitly registered with JSON Schema. Cannot verify parameter types, constraints, or validation.
Parameters lack descriptions. 'connect' tool has 7 parameters (host, port, username, password, key_path, key_passphrase, mode) with no descriptions explaining what each controls or expected format. LLMs cannot infer parameter meaning from names alone.
Credentials exposed as tool parameters. Passwords and SSH key passphrases are passed as parameters, which will be logged in agent traces and prompt history. Must use server-side secret injection via environment variables.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 32 | <=2025-11-25 | v2 |
Tool descriptions are too short (10-50 chars vs. 194-char baseline). 'Connect to SSH server or initialize PowerShell/WinRM target computer' (67 chars) lacks context on when to use, prerequisites, or what it returns. No guidance on SSH vs. PowerShell mode selection.
No error handling or recovery guidance. Tools do not document what errors are retryable, what user action is needed, or how to recover. A failed connection returns nothing actionable to the LLM.