Server has 8 tools with basic schemas and descriptions, but significant gaps limit production readiness. Tool names follow verb_noun convention (list_, send_, start_, stop_) which is good. However, descriptions are inconsistent in depth and quality. Most critical: several tools lack parameter descriptions entirely (send_ctrl_c has no visible schema), error handling is minimal, and no output schemas are documented. The start_auto_cycle tool performs multiple unrelated actions (Ctrl+C, mullvad reconnect, claudex command) violating single-responsibility principle. No tool annotations (readOnlyHint, destructiveHint) despite many write operations. Descriptions average ~80 chars, below the 194-char baseline for A+ tools.
Launch an agent in a tmux session
List all active tmux sessions Returns a list of session information including name and details
Send Ctrl+C to a tmux session
Send a message to a specific tmux session Types the message, waits 1 second, then presses Enter
Start auto exit/continue cycle for a tmux session This performs: 1. Send Ctrl+C 5 times (200ms apart) 2. Wait 1 second 3. Execute 'mullvad reconnect' 4. Wait 3 seconds 5. Execute 'claudex -c' 6. Repeat every cycle_interval_minutes
Start a timer to repeatedly send a message to a tmux session
Stop an active auto exit/continue cycle for a tmux session
send_ctrl_c tool has no visible input schema in source code. File reference points to tmux_mcp_server.py but schema is not shown. Cannot verify parameter types or descriptions.
start_auto_cycle violates single-responsibility principle. Tool performs 5+ distinct actions (Ctrl+C, wait, mullvad reconnect, wait, claudex command, repeat). Should split into separate tools: send_ctrl_c, execute_mullvad_reconnect, execute_claudex, and a composition tool.
No tool annotations present despite 7 write operations (send_message_to_session, start_message_timer, stop_message_timer, start_auto_cycle, stop_auto_cycle, send_ctrl_c, launch_agent). Missing destructiveHint and idempotentHint annotations prevent LLMs from understanding operation safety and retry semantics.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Stop an active message timer for a tmux session
Output schemas not documented. Tools return Dict[str, Any] or List[Dict[str, str]] but LLMs cannot see field names, types, or structure. E.g., send_message_to_session returns {success, session, message, timestamp} but this is not declared in schema.
Error handling lacks recovery guidance. Errors return raw exception strings (e.g., 'Error listing sessions: {e}') without actionable next steps. No categorization of retryable vs fatal errors.