MCP Server for terminal computer use — control interactive TUI programs (vim, htop, lazygit, REPLs, installers) via MCP protocol
Terminal-use-mcp provides 29 tools with consistent naming (verb_noun pattern: terminal.start, terminal.attach, etc.) and reasonable descriptions (avg ~80 chars). However, critical gaps exist: parameter descriptions are sparse or missing for many tools (e.g., terminal.start's 'target' object lacks field documentation), output schemas are not documented in the source, and error handling lacks recovery guidance. Tool composition is sound (each does one thing), but LLM-facing descriptions could be more explicit about when to use each tool vs. alternatives. No evidence of input validation constraints (enums, ranges) in parameter definitions.
Attach to an existing terminal session
Clean up expired or dead terminal sessions
Get event transcript for a session
Export session transcript to artifact directory
Search for text pattern in terminal buffer
Check health status of terminal providers
Get detailed information about a specific terminal session
Get list of supported key names for terminal.press
Output schemas not documented. No evidence in source that tool responses document their structure (fields, types, pagination). LLMs cannot plan downstream calls or extract required data without knowing what fields to expect.
Complex object parameters lack field documentation. terminal.start's 'target' and 'metadata' params are typed as objects but have no description of their internal structure. LLMs cannot construct valid payloads without field-level guidance.
Enum constraints not declared. Parameters like 'provider' (native-pty, tmux, ssh-pty, ssh-tmux), 'direction' (up/down), 'button' (left/middle/right), and 'mode' (viewport/full) accept fixed sets of values but are not declared as enums. Free-form strings invite hallucinated values.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2025-06-18+ | v2 |
Terminate a terminal session
List all active terminal sessions
Send mouse click to terminal session
Send mouse scroll to terminal session
Paste text into terminal session
Send key press to terminal session
Get capabilities of available terminal providers
Rename a terminal session
Resize terminal session dimensions
Scroll terminal buffer up or down
Send signal to terminal session process
Capture the current state of a terminal session
Start a new terminal session with specified command and arguments
Get information about a specific SSH target
List available remote SSH targets
Kill a tmux session by name
List tmux sessions on local or remote target
Type text into terminal session
Verify connectivity to SSH target
Wait for specific text to appear in terminal output
Wait for terminal output to stabilize
Error handling lacks recovery guidance. No evidence that tools return actionable error messages (e.g., 'Session not found. Available sessions: [list]'). Errors appear to be categorized internally (SessionNotFoundError, ProviderNotAvailableError) but descriptions do not guide LLM recovery.
Destructive operations lack confirmation pattern. terminal.kill, terminal.cleanup, terminal.send_signal, and terminal.tmux_kill are destructive but show no dry-run or confirmation step. Agents can irreversibly terminate sessions without safeguards.