Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IT2MCP_CONFIG | No | Override the config path with the IT2MCP_CONFIG environment variable (defaults to ~/.config/it2mcp/config.yaml). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| session_list | List all iTerm2 sessions with their IDs, names, titles, sizes, TTYs, and mcp_enabled status. Shows all sessions regardless of mcp_enabled status so you can see which sessions need to be tagged. Only mcp_enabled sessions can be targeted by other tools. To enable a session for MCP access, run in that session's terminal: it2 session set-var user.mcp_enabled true |
| session_send | Send text to an iTerm2 session without pressing Enter. Args: text: The text to send. session_id: Target session ID. Omit for the active session. all_sessions: If true, send to every session. |
| session_run | Execute a command in an iTerm2 session (sends text + Enter). Args: command: The command string to execute. session_id: Target session ID. Omit for the active session. all_sessions: If true, run in every session. |
| session_read | Read the visible screen contents of an iTerm2 session. Args: session_id: Target session ID. Omit for the active session. lines: Number of lines to return from the bottom. Omit for all visible lines. |
| session_split | Split an iTerm2 session into a new pane. Args: vertical: If true, split vertically (side by side). Default is horizontal (top/bottom). session_id: Target session ID. Omit for the active session. profile: Profile name to use for the new pane. |
| session_close | Close an iTerm2 session. Args: session_id: Target session ID. Omit for the active session. |
| session_restart | Restart an iTerm2 session. Args: session_id: Target session ID. Omit for the active session. |
| session_focus | Focus (activate) a specific iTerm2 session. Args: session_id: The session ID to focus. |
| session_clear | Clear the screen of an iTerm2 session (sends Ctrl+L). Args: session_id: Target session ID. Omit for the active session. |
| session_set_name | Set the name of an iTerm2 session. Args: name: The new session name. session_id: Target session ID. Omit for the active session. |
| session_get_variable | Get the value of an iTerm2 session variable. Args: variable: The variable name (e.g. "session.name", "session.path"). session_id: Target session ID. Omit for the active session. |
| session_set_variable | Set the value of an iTerm2 session variable. Args: variable: The variable name. value: The value to set. session_id: Target session ID. Omit for the active session. |
| window_list | List all iTerm2 windows with their IDs, tab counts, positions, sizes, and fullscreen state. |
| window_new | Create a new iTerm2 window. Args: profile: Profile name to use. Omit for the default profile. command: Command to run in the new window. |
| window_close | Close an iTerm2 window. Args: window_id: The window ID to close. Omit for the current window. |
| window_focus | Focus (activate) a specific iTerm2 window. Args: window_id: The window ID to focus. |
| window_move | Move an iTerm2 window to a specific screen position. Args: x: X coordinate (pixels from left). y: Y coordinate (pixels from top). window_id: The window ID. Omit for the current window. |
| window_resize | Resize an iTerm2 window. Args: width: New width in pixels. height: New height in pixels. window_id: The window ID. Omit for the current window. |
| window_fullscreen | Set fullscreen state for an iTerm2 window. Args: state: One of "on", "off", or "toggle". window_id: The window ID. Omit for the current window. |
| window_arrange_save | Save the current window arrangement. Args: name: Name for the saved arrangement. |
| window_arrange_restore | Restore a saved window arrangement. Args: name: Name of the arrangement to restore. |
| window_arrange_list | List all saved window arrangements. |
| tab_list | List all iTerm2 tabs with their IDs, window IDs, indices, session counts, and active state. Args: window_id: Only list tabs from this window. Omit for all windows. |
| tab_new | Create a new tab in an iTerm2 window. Args: profile: Profile name for the new tab. window_id: Window ID to create the tab in. Omit for the current window. command: Command to run in the new tab. |
| tab_close | Close an iTerm2 tab. Args: tab_id: The tab ID to close. Omit for the current tab. |
| tab_select | Select a tab by its ID or numeric index. Args: tab_id_or_index: Tab ID string, or a numeric index (0-based). window_id: Window ID for index-based selection. Omit for the current window. |
| tab_next | Switch to the next tab in the current window. |
| tab_prev | Switch to the previous tab in the current window. |
| tab_move | Move a tab to its own new window. Args: tab_id: The tab ID to move. Omit for the current tab. |
| app_activate | Activate iTerm2 (bring to front). |
| app_get_focus | Get information about the currently focused window, tab, and session. |
| app_theme | Get or set the iTerm2 theme. Args: value: Theme to set. One of: light, dark, light-hc, dark-hc, automatic, minimal. Omit to get the current theme. |
| app_version | Get the iTerm2 version. |
| broadcast_on | Enable input broadcasting to all sessions in the current tab. |
| broadcast_off | Disable input broadcasting. |
| broadcast_add | Create a broadcast group with specific sessions. Args: session_ids: List of session IDs to include in the broadcast group. |
| profile_list | List all iTerm2 profiles with their GUIDs and names. |
| profile_show | Show detailed information about an iTerm2 profile. Args: name: The profile name. |
| profile_apply | Apply an iTerm2 profile to a session. Args: name: The profile name to apply. session_id: Target session ID. Omit for the active session. |
| batch | Execute a batch of iTerm2 operations sequentially within a single connection. Each operation is a dict with an "op" field naming the operation, plus any parameters for that operation. A special "sleep" operation pauses between steps. Args: operations: List of operation dicts. Each must have an "op" field. Available ops: session_send, session_run, session_read, session_split, session_close, session_focus, session_clear, session_set_name, session_list, session_get_variable, session_set_variable, session_restart, window_new, window_close, window_focus, tab_new, tab_close, tab_select, tab_next, tab_prev, app_activate, broadcast_on, broadcast_off, send_keystrokes, profile_apply, sleep. Returns: JSON array of results, one per operation, with index, op name, and result or error. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |