A lightweight tool to execute terminal commands via SSH, usable as a library or CLI via npx.
Single tool with complete input schema and reasonable description. However, description lacks actionable context (WHEN to use, prerequisites, consequences). Parameter descriptions are present but generic. No output schema documented. Missing error recovery guidance. Tool accepts both 'host' and 'server' aliases without clear precedence rules in description. No tool annotations (readOnlyHint/destructiveHint). Baseline: 194 chars avg description (this tool: ~150 chars, acceptable but sparse). All params have types and descriptions, meeting minimum bar.
Executes a command on a remote server via SSH and returns stdout, stderr, and exit code. Prohibits password-based authentication.
Output schema not documented. LLMs cannot predict return structure (stdout, stderr, exit code fields). Agents cannot plan downstream operations or extract specific fields reliably.
Description lacks WHEN/WHY context. States WHAT (executes command) but not WHEN to use vs alternatives, prerequisites (SSH key setup), or consequences (state-modifying). LLMs cannot determine if this is the right tool for a given intent.
Parameter 'host' and 'server' are aliases with unclear precedence. Description says 'host takes precedence' but this is buried in parameter text, not in tool description. Ambiguous parameter relationships confuse LLMs.
No error recovery guidance. Tool returns isError=true with raw error messages. LLMs receive no actionable next steps (e.g., 'Check SSH key permissions' or 'Verify host is reachable'). Violates recovery-guide pattern.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No tool annotations. Tool modifies remote state (WRITE risk declared) but lacks destructiveHint annotation. Agents cannot reason about idempotency or retry safety. Missing readOnlyHint/idempotentHint metadata.