Visible terminal automation MCP server (Playwright for terminals)
Workwright has well-structured tool definitions with explicit schemas (Zod-based), clear naming conventions (verb_noun pattern), and comprehensive parameter descriptions. All 14 tools are registered with input schemas and descriptions. However, output schemas are not documented, LLMs cannot predict return structure. Error handling is minimal (generic error messages without recovery guidance). Tool descriptions average ~100 chars, which is adequate but could be more prescriptive about when/why to use each tool. Parameter descriptions are generally good (60-80 chars), but some tools lack context about dependencies (e.g., workwright_wait_for_text doesn't explain how it relates to workwright_execute). No security concerns detected (no secrets in params), but destructive tools (workwright_close_all) lack confirmation patterns.
Close a terminal session. Closes the current session if no index is specified.
Close all terminal sessions and shut down.
Run a command in the current terminal session and wait for it to complete. Returns the command output.
Return the current Workwright configuration.
Start a new terminal session with a visible PTY. The terminal will appear in the xterm.js viewer.
List all active terminal sessions with their index, shell, CWD, and PID.
Read the current terminal buffer content. Returns the last 50 lines by default.
Output schemas not documented. LLMs cannot predict return structure for any tool. Responses are merged text parts without field-level documentation.
Destructive tools (workwright_close, workwright_close_all) lack confirmation or dry-run patterns. Agents can irreversibly close sessions without safeguards.
Error handling is generic. Errors return raw exception text without recovery guidance. LLMs cannot determine if errors are retryable or what to do next.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Resize the current terminal session.
Capture the current terminal as a PNG screenshot. Requires the xterm.js viewer to be running in the browser. Returns the terminal text content as a fallback if the viewer is not connected.
Switch the current terminal session by index.
Send raw text input to the terminal. Does not wait for any response.
Send special key sequences to the terminal. Supports: Enter, Tab, Escape, Backspace, Delete, Arrow keys, Home, End, PageUp, PageDown, F1-F12, Ctrl+C, Ctrl+D, Ctrl+Z, Ctrl+L, Ctrl+A, Ctrl+E, Ctrl+K, Ctrl+U, Ctrl+W, Ctrl+R.
Return a structured text representation of the current terminal content with ANSI codes stripped.
Wait for specific text or a regex pattern to appear in the terminal output.
Tool descriptions lack context about dependencies and sequencing. workwright_wait_for_text doesn't explain it should follow workwright_execute. workwright_select doesn't clarify it affects subsequent tool calls.
workwright_list and workwright_get_config return unstructured text. No pagination, field documentation, or structured output schema. Agents cannot reliably extract session metadata.