SSH MCP Server for Claude Code - enables SSH server management and command execution through the Model Context Protocol
mcpHydroSSH has 10 tools with complete input schemas and descriptions. Naming follows verb_noun convention (ssh_list, ssh_connect, ssh_exec). However, descriptions are terse (avg ~40 chars, well below the 194-char baseline), lacking context on WHEN to use each tool and dependencies between them. Parameter descriptions exist but are minimal. Output schemas are not documented, LLMs cannot predict what fields to expect from responses. Error handling is present but not visible in the source excerpt. No tool annotations (readOnlyHint, destructiveHint) despite clear risk classifications. ssh_add_server and ssh_update_server expose password as a parameter, violating secret-injection pattern.
Add a new SSH server to config
Connect to an SSH server
Disconnect from an SSH server
Execute a command on an SSH server
Get SSH connection status
Show help and usage examples for mcpHydroSSH
List all configured SSH servers
Descriptions are terse (avg 40 chars vs 194-char baseline). Missing context on WHEN to use each tool, prerequisites, and dependencies. E.g., ssh_exec says 'Execute a command' but does not explain that ssh_connect must be called first or that connectionId is optional.
Output schemas are not documented. LLMs cannot predict what fields ssh_list_servers, ssh_view_config, or ssh_get_status return, forcing them to guess or make extra calls. This violates the documented-return-types baseline (100% of A+ tools have them).
ssh_add_server and ssh_update_server expose 'password' as a plain parameter. Credentials must never appear as tool parameters, use server-side secret injection via environment variables or vault. Agent traces log every parameter, leaking secrets into logs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Remove a server from config
Update an existing server config
View the full SSH configuration including servers and settings
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications (READ_ONLY, WRITE, DESTRUCTIVE, IRREVERSIBLE). These annotations help LLMs reason about safety and retry logic.
Parameter descriptions lack format/constraint details. E.g., 'timeout' is described as 'milliseconds (optional)' but does not specify min/max bounds. 'authMethod' enum is present but 'privateKeyPath' does not state it is required only when authMethod='key'.