iterm-logs-mcp
# iterm-logs-mcp
Local MCP server exposing iTerm2 tab/session logs to any MCP-capable agent. Reads terminal
state via AppleScript — the agent decides which tab to read by matching on `cwd`/`job`, no
built-in fuzzy-matching logic on the server side.
macOS + iTerm2 only. Local stdio server — not deployed anywhere.
## Tools
- `list_iterm_tabs()` — enumerates every open window/tab/session: `session_id`, `window_index`,
`tab_index`, `name`, `tty`, `cwd`, `job`.
- `get_iterm_tab_logs(session_id, max_lines=500)` — returns the last `max_lines` lines of
scrollback for that session.
## First run
The first AppleScript call against iTerm2 triggers a one-time macOS Automation permission
prompt for whichever process runs this script (Terminal, iTerm2, or your MCP client host).
Grant it once in System Settings → Privacy & Security → Automation.
## Run it
```bash
uv run --directory /path/to/iterm-logs-mcp server.py
```
## Register with Claude Code
```bash
claude mcp add iterm-logs -- uv run --directory /path/to/iterm-logs-mcp server.py
```
## Register with Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"iterm-logs": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/iterm-logs-mcp",
"server.py"
]
}
}
}
```
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one lists all open tabs with session IDs, the other retrieves logs for a specific session. There is no overlap or confusion.
Both names follow a consistent verb_noun pattern in snake_case: list_iterm_tabs and get_iterm_tab_logs. The naming is clear and predictable.
With only 2 tools, the set is minimal but covers the basic workflow of listing tabs and retrieving logs. However, it feels thin for a server claiming to provide log access, and could benefit from additional filtering or search tools.
The tool surface covers the core use case of listing tabs and reading logs. Minor gaps exist, such as no tool for retrieving full logs without a line limit or for searching within logs, but these are not critical.