Process MCP tools

Process tools control Solo-managed process entries: commands, terminals, agents, and stopped entries.

Tools

  • list_processes — List process entries in the effective project scope, including commands, terminals, agents, and stopped entries.
  • get_process_status — Read detailed status for one process, including input_deliveries: pending and recent automated input deliveries from this app session. Each delivery has a status of pending, delivering, delivered, undelivered, or uncertain.
  • rename_process — Rename a process in the Solo UI.
  • select_process — Select a process in the Solo UI so its terminal surface is attached and rendered.
  • start_process — Start one existing Solo process entry. This can start a stored command, terminal, or agent. Use spawn_process(kind="terminal") to create a new terminal. Prefer spawn_agent to create a new agent; spawn_process(kind="agent") remains the generic fallback. Only command processes must be trusted in the Solo UI before MCP can start them.
  • stop_process — Gracefully stop one running process.
  • restart_process — Restart one existing Solo process entry. This can restart a stored command, terminal, or agent. Use spawn_process(kind="terminal") to create a new terminal. Prefer spawn_agent to create a new agent; spawn_process(kind="agent") remains the generic fallback. Only command processes must be trusted in the Solo UI before MCP can restart them.
  • send_input — Send text (input) or raw bytes (bytes, such as [13] for Enter or [3] for Ctrl+C) to a running process. Text is followed by Enter unless submit: false. For agents, intent chooses how text is delivered; see How agent messages are delivered. Optional wait_ms, clamped to 250–10,000 ms, returns the rendered output tail after delivery completes.
  • close_process — Remove one stored Solo terminal or Solo agent from the project. Use stop_process or restart_process for command processes.

Notes

Command trust still matters. MCP can start or restart trusted command processes, but untrusted command entries must be reviewed in the Solo UI first.

stop_process and restart_process refuse to stop or restart the MCP caller's own Solo process unless you pass confirm_self_stop: true. Likewise, if close_process targets the caller's own process, it requires confirm_self_close: true. Set these only when the user explicitly asked that process to stop, restart, or close itself.

How agent messages are delivered

For agents, send_input text with the default intent: "message" joins the same queue as timer deliveries. Queued messages:

  • arrive in order, behind earlier timer and MCP messages to the same agent;
  • wait while you've typed in that terminal in the last few seconds, and while the program reports that it is blocked;
  • arrive as a bracketed paste when the agent has paste mode on, and Solo waits for the agent to read the text before sending Enter.

Use intent: "interaction" only for a deliberate answer to, or edit of, the agent's current prompt; it's written right away as keystrokes. Raw bytes and submit: false are always interactions. For commands and terminals, input is always written directly.

Raw bytes made only of Tab, newline, or carriage return (up to 8 bytes) are queued behind earlier messages too, and they're dropped if you type in the meantime so an automated Enter never submits your draft. Any other bytes, such as Ctrl+C or Escape, go to the agent immediately.

If an interrupted submission may have left a draft in the agent's composer, Solo holds further automated input until the process restarts.

Delivery outcomes

send_input returns within 30 seconds:

Outcome What it means
Delivered The bytes reached the terminal.
Pending, with a delivery_id Solo accepted the message and will deliver it. Don't resend; check get_process_status for that delivery.
Timed out with accepted: false Nothing was queued or sent. It's safe to retry.
Timed out with delivery_uncertain: true The input was handed to the terminal but delivery isn't confirmed. Don't resend; check get_process_output and get_process_status.

Delivered means the bytes were written to the terminal, not that the agent accepted them or started a turn. Silence from the agent isn't evidence that resending text or Enter is safe. Pending messages belong to the current process run and app session; they aren't replayed after a restart.

For a new process, use spawn_process(kind="terminal") for a terminal or prefer spawn_agent for an agent. The generic spawn_process(kind="agent") path remains available. See Agent and terminal tools.

Are you an agent? Read this doc via API: /api/v1/docs/mcp-tools/process