A Model Context Protocol server for tmux session management and control, providing tools to interact with tmux sessions, windows, panes, and channels
Critical failures across naming, descriptions, and schemas. Tool names are opaque and non-standard (call_read_tools_batch, wait_for_channel, signal_channel). Descriptions are either incomprehensible jargon ('Dispatches only the aggregate's startup-frozen, exclusion-pruned nested authority') or vague. Input schemas exist but lack proper type definitions for most parameters, many are bare strings with no enum constraints or format specifications. No output schemas documented. Error handling is minimal. This server prioritizes internal tmux protocol details over LLM-friendly interfaces.
Dispatches only the aggregate's startup-frozen, exclusion-pruned nested authority. Each dispatcher applies the direct tool's typed schema before invoking its handler. Accepts at most sixteen calls in a batch.
Captures the contents of a tmux pane, defaulting to the visible screen; history must be explicit and remains bounded
Creates a new tmux session. Keeps an attached control client as the runtime command lane.
Creates a new window in a tmux session
Releases whoever is waiting on a tmux channel
Blocks until something signals a tmux channel. It is the coordination primitive tmux already has, so a client can wait on anything that signals one: a shell script, a key binding, another program, or another client of this server. run_shell_command covers a command this client starts; this covers everything it did not.
Tool names violate verb_noun convention and are opaque to LLMs. 'call_read_tools_batch' does not convey action; 'wait_for_channel' and 'signal_channel' are domain-specific jargon. LLMs cannot infer intent from these names alone.
Descriptions are incomprehensible or missing. 'call_read_tools_batch' description uses internal jargon ('aggregate's startup-frozen, exclusion-pruned nested authority') that LLMs cannot parse. 'wait_for_channel' and 'signal_channel' lack context for when to use them.
Input schemas lack type constraints and enums. Parameters like 'direction' (create_window) and 'onError' (call_read_tools_batch) accept free-form strings with no enum declaration. No format specifications for IDs or paths. LLMs will hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2025-06-18+ | v2 |
No output schemas documented. Tools return results but LLMs have no specification of return fields, types, or structure. Agents cannot plan downstream calls or extract data reliably.
Parameter descriptions are minimal or missing. 'paneId' in capture_pane has a description but lacks format guidance (e.g., 'format: %N where N is integer'). Many parameters lack any description at all, forcing LLMs to guess intent.