In-depth architectural comparison of the Iterm MCP and Smart Terminal MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Iterm MCP
Command Line · Local stdio
Quality: 60/100 (Good) | Auth: No auth required
Smart Terminal
Command Line · Local stdio
Quality: 53/100 (Good) | Auth: No auth required
Verdict Summary: Choose Iterm MCP if you need specialized Command Line tools running via a local process. Choose Smart Terminal if your workspace requires Command Line integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Iterm MCP when:
You need dedicated capabilities in the Command Line domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
Writes text to the active iTerm terminal - often used to run a command in the terminal
read_terminal_output
Reads the output from the active iTerm terminal
send_control_character
Sends a control character to the active iTerm terminal (e.g., Control-C, or special sequences like ']' for telnet escape)
Smart Terminal Tools (17)
terminal_start
Start a new interactive terminal session.
terminal_exec
Execute a command with deterministic completion detection. Large outputs are truncated to head + tail based on `maxLines`. If the MCP client sends a `progressToken`, long-running calls may also emit best-effort `notifications/progress` updates.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Iterm MCP is categorized under Command Line and uses a local stdio subprocess. In contrast, Smart Terminal belongs to Command Line using local stdio subprocess. Select Iterm MCP when you need capabilities focused on command line and Smart Terminal when you require tools for command line.
Run a one-shot non-interactive command using `cmd + args` with `shell=false`. Safer than `terminal_exec` for predictable automation. Output is capped by `maxOutputBytes` rather than head + tail truncation. Shell built-ins such as `dir` or `cd` are not supported. On Windows, `terminal_run` resolves…
terminal_write
Write raw data to a terminal (for interactive programs). Follow with `terminal_read`.
terminal_read
Read buffered output with idle detection. Large outputs are truncated to head + tail based on `maxLines`. Pass `since` to read incrementally — returns only output emitted after the given byte position.
terminal_wait
Wait for a specific pattern in the output stream. By default, responses return only the last `tailLines`; use `returnMode: "full"` for the full matched output or `"match-only"` to suppress output entirely. If the MCP client sends a `progressToken`, long-running waits may also emit best-effort `noti…
terminal_stop
Stop and clean up a terminal session. Optionally capture a snapshot of recent output or write the full transcript to disk before stopping. On Unix, kills the entire process group to prevent orphan child processes.
terminal_list
List all active terminal sessions.
terminal_extra
Meta-tool for discovering and calling extra tools.
terminal_send_key
Send a named special key.
terminal_run_paged
Run a read-only one-shot command using `cmd + args` with `shell=false` and return a single page of stdout lines from the captured output. This pages the returned result instead of using head + tail truncation. Paged mode does not parse partial output, but it can return a concise summary for support…
terminal_get_history
Retrieve past terminal output without consuming it. Non-destructive — returns historical output from a rolling buffer (last ~10,000 lines). Useful for reviewing output that was already read or missed.