Model Context Protocol (MCP) server for long-lived shell execution.
Terminal-mcp defines 4 tools with basic schemas and descriptions. All tools have input schemas with typed parameters and descriptions present. However, descriptions are minimal (10-80 chars, well below the 194-char baseline), lack context on WHEN to use each tool, and omit recovery guidance. No output schemas documented. Tools lack error handling guidance, and the exec tool (IRREVERSIBLE risk) has no confirmation/dry-run pattern. Parameter descriptions are terse and lack format/constraint details. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Naming is verb-forward (exec, shell_output, shell_wait_for, shell_snapshot) but lacks clarity on relationships, shell_* tools are not obviously related to session management. No pagination, no batch operations. Audit logging exists server-side but is not exposed to the agent.
Execute a shell command with a default timeout of 3000ms
Get accumulated output from a long-lived shell session, waiting for idle time (default 200ms) to determine completion
Take a snapshot of the current shell state after waiting 1000ms
Wait for a specific pattern or condition in shell output with a default timeout of 5000ms
exec tool (IRREVERSIBLE) lacks confirmation/dry-run pattern. No guidance on recovery if command fails or has side effects. LLM cannot safely retry or undo.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., session_id from exec response).
Tool descriptions are 10 - 80 chars, well below 194-char baseline. Lack WHEN/WHY context. E.g., 'Get accumulated output' does not explain when to call shell_output vs shell_snapshot vs shell_wait_for.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (exec=IRREVERSIBLE, others=READ_ONLY). LLM cannot reason about retry safety.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Parameter descriptions lack format/constraint details. E.g., 'pattern' in shell_wait_for does not specify regex vs literal string, max length, or escaping rules.