iterm-mcp

MCP.Pizza Chef: ferrislucas

iterm-mcp is a Model Context Protocol server that integrates directly with your iTerm terminal session, allowing LLMs to execute commands, interact with REPL environments, and control terminal input including special control characters. It optimizes token usage by providing models access only to relevant output snippets, typically the last few lines, making it efficient for long-running commands. Designed with minimal dependencies and runnable via npx, iterm-mcp offers seamless integration with MCP clients like Claude Desktop, enabling natural, real-time collaboration between users and AI models within the terminal environment. This server empowers models to assist with command-line tasks, debugging, and interactive shell workflows while giving users full visibility and control.

Use This MCP server To

Execute and control commands in iTerm sessions Interact with REPL environments via AI assistance Send terminal control characters like ctrl-c and ctrl-z Provide real-time CLI help and debugging support Enable AI-driven terminal automation and scripting Inspect selective terminal output for efficient context Integrate with MCP clients for enhanced terminal workflows

README

iterm-mcp

A Model Context Protocol server that provides access to your iTerm session.

Main Image

Features

Efficient Token Use: iterm-mcp gives the model the ability to inspect only the output that the model is interested in. The model typically only wants to see the last few lines of output even for long running commands.

Natural Integration: You share iTerm with the model. You can ask questions about what's on the screen, or delegate a task to the model and watch as it performs each step.

Full Terminal Control and REPL support: The model can start and interact with REPL's as well as send control characters like ctrl-c, ctrl-z, etc.

Easy on the Dependencies: iterm-mcp is built with minimal dependencies and is runnable via npx. It's designed to be easy to add to Claude Desktop and other MCP clients. It should just work.

Safety Considerations

  • The user is responsible for using the tool safely.
  • No built-in restrictions: iterm-mcp makes no attempt to evaluate the safety of commands that are executed.
  • Models can behave in unexpected ways. The user is expected to monitor activity and abort when appropriate.
  • For multi-step tasks, you may need to interrupt the model if it goes off track. Start with smaller, focused tasks until you're familiar with how the model behaves.

Tools

  • write_to_terminal - Writes to the active iTerm terminal, often used to run a command. Returns the number of lines of output produced by the command.
  • read_terminal_output - Reads the requested number of lines from the active iTerm terminal.
  • send_control_character - Sends a control character to the active iTerm terminal.

Requirements

  • iTerm2 must be running
  • Node version 18 or greater

Installation

To use with Claude Desktop, add the server config:

On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "iterm-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "iterm-mcp"
      ]
    }
  }
}

Installing via Smithery

To install iTerm for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install iterm-mcp --client claude

smithery badge

Development

Install dependencies:

yarn install

Build the server:

yarn run build

For development with auto-rebuild:

yarn run watch

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:

yarn run inspector
yarn debug <command>

The Inspector will provide a URL to access debugging tools in your browser.

iterm-mcp FAQ

How does iterm-mcp optimize token usage?
iterm-mcp allows the model to access only the last few lines of terminal output, reducing token consumption especially for long-running commands.
Can iterm-mcp handle interactive REPL sessions?
Yes, iterm-mcp supports full terminal control including starting and interacting with REPLs, enabling dynamic command-line interactions.
What dependencies are required to run iterm-mcp?
iterm-mcp is built with minimal dependencies and can be run easily via npx, simplifying installation and integration.
Is iterm-mcp compatible with popular MCP clients?
Yes, it is designed to integrate naturally with MCP clients like Claude Desktop and others.
Can the model send special control characters through iterm-mcp?
Yes, the model can send control characters such as ctrl-c and ctrl-z to manage terminal processes.
What safety considerations should I be aware of?
Users are responsible for safe usage as iterm-mcp has no built-in restrictions; caution is advised when allowing models to execute terminal commands.
Does iterm-mcp provide real-time feedback from the terminal?
Yes, it provides real-time access to terminal output, enabling interactive and responsive AI assistance.
How does iterm-mcp enhance CLI assistance?
By sharing the iTerm session with the model, users can ask questions about the terminal state or delegate tasks for the model to perform step-by-step.