Local MCP server that lets AI agents orchestrate role-controlled interactive Claude Code sessions.
This server exposes 7 tools for orchestrating Claude Code sessions. Tool naming follows verb_noun convention (claude_interactive_*), which is good. However, descriptions are minimal (10-30 chars), parameter descriptions are sparse or missing, and input schemas lack proper type definitions and constraints. No output schemas are documented. Error handling is absent, tools return raw errors with no recovery guidance. The server is STDIO-only, which caps protocol readiness at 50. Overall, this is a D-grade server with significant gaps in LLM-friendliness.
Check the authentication status of Claude Code.
List all interactive Claude Code sessions.
Send a request to an active interactive Claude Code session and wait for completion or timeout.
Start a new interactive Claude Code session with specified role, model, and configuration.
Stop an active interactive Claude Code session.
Get the tail of output from an interactive Claude Code session.
Descriptions are critically short (10-30 chars). LLMs cannot determine when to select each tool or how it differs from similar tools. E.g., 'Start a new interactive Claude Code session...' is 50 chars but lacks WHEN to use it, prerequisites, or what it returns.
Input schemas lack proper type definitions. Parameters like 'cwd', 'role', 'model', 'effort', 'mcp_preset' are declared as strings but have no enum constraints, format patterns, or length limits. LLMs will hallucinate invalid values (e.g., 'effort: extreme' instead of valid levels).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Wait for updates from an interactive Claude Code session.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., does claude_interactive_start return a session_id? What fields does claude_interactive_tail return?
No error handling or recovery guidance. Tools will fail silently or return raw errors. LLMs have no way to know if an error is retryable, user-fixable, or fatal.
Parameter descriptions are missing or trivial. E.g., 'idle_ms' has description 'Idle timeout in milliseconds' but does not explain what 'idle' means in context (wait for no activity? wait for response?). LLMs cannot infer intent from names alone.