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_id joins or opens the Hub for that node. It does not dial a second Telnet beside an open console.
  • Explicit session_id uses that lease. If the session is gone, the agent reopens once. console_busy is not expiry.
  • Listing sessions is optional. Pass session_id when 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:

  1. Engineer opens R1 with Open Console in the VSIX → agent issues session_id.
  2. Engineer shares that session_id with the AI (or AI lists sessions and the human confirms).
  3. AI calls eve_iac_console_history or eve_iac_console_wait to read the prompt.
  4. AI may eve_iac_console_exec or eve_iac_console_run if the session mode allows writes.
  5. Human sees the same console output in the VSIX terminal.
  6. 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.