Console MCP¶
The eve-iac VSIX exposes bounded, structured console tools to Copilot Agent, Cursor Agent, and other MCP hosts. There is no MCP interactive PTY, attach, or watch stream tool — by design.
MCP uses request/response operations rather than an unbounded terminal byte stream.
MCP console tools (V1)¶
| Tool | Purpose |
|---|---|
eve_iac_console_exec |
Default for one normal command, including show, ping, and traceroute. A timeout means a larger timeout_ms (default 10 s, max 60 s), not a different tool. |
eve_iac_console_exec_many |
Preferred for independent commands on several nodes. Joins existing Hubs. |
eve_iac_console_history |
Observational tail of the Hub ring. Not a substitute for exec output. |
eve_iac_console_wait |
Advanced. Observe future output. Not how a normal command finishes. |
eve_iac_console_run |
Genuine intermediate dialogue only. Not show, ping, traceroute, and not the recovery path after an exec timeout. |
eve_iac_console_sessions |
Optional inspection of Hub sessions |
Not exposed via MCP: attach, stream, watch, or session create/close as interactive tools. Humans use VSIX Open Console or CLI attach; automation uses SDK/CLI/API directly when needed.
Output bounds¶
The VSIX truncates MCP payloads for the model. The agent owns Hub semantics.
| Surface | Default / cap |
|---|---|
| History | Default 8 KiB; hard max 32 KiB |
| Wait match snippet | Bounded (truncation flagged) |
| Run transcript / steps | Bounded (truncation flagged) |
| Exec output | Bounded |
Responses include truncated when output is cut. send_secret values are stripped from MCP results.
Exec and shared sessions¶
- Omitted
session_idjoins or opens the Hub for that node. It does not dial a second Telnet beside an open console. - Explicit
session_iduses that lease. If the session is gone, the agent reopens once.console_busyis not expiry. - Listing sessions is optional. Pass
session_idwhen the model and a human terminal must share one lease.
The result of a command is output (exec) or transcript (run), with prompt, phase, and rx_to. ok means the round trip finished. It does not mean the network works. A timeout on exec is recoverable by retrying that exec with a larger timeout_ms. auth_required is not.
These are system consoles. The node may still be booting. On the first client of a Hub, one newline is sent only after about 5 seconds of silence with no prompt. Boot text restarts that wait. A Hub that already has another client is not sent that newline. That wait sits inside timeout_ms.
Human + AI shared-console workflow¶
Typical collaboration:
- Engineer opens R1 with Open Console in the VSIX → agent issues
session_id. - Engineer shares that
session_idwith the AI (or AI lists sessions and the human confirms). - AI calls
eve_iac_console_historyoreve_iac_console_waitto read the prompt. - AI may
eve_iac_console_execoreve_iac_console_runif the session mode allows writes. - Human sees the same console output in the VSIX terminal.
- Both share one Hub and one EVE Telnet TCP.
AI has no special privileges. Agent locking rules (observe, interact, exclusive) apply identically.
Console output is operational state, not desired state. AI MUST NOT filesystem-edit topology.yml / configs/**. Use eve_iac_edit / eve_iac_config_edit for configuration changes. Use console tools to observe, diagnose, and verify. Humans may still edit those files in the VS Code editor.
Operator MCP setup (owner window, Configure Connection): AI / MCP. Shared session model: Console sessions.