iterm-mcp

MCP server for iTerm: the agent runs commands in the active terminal session, reads output and sends control characters

MCP server

High risk

We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.

Why this level

  • Runs arbitrary commands in your terminal
  • No built-in command safety checks
  • Can start and interrupt any process
All reasons and checks

ferrislucas/iterm-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/iterm-mcp

Detects the agents on your machine, checks the risk and pins the version.

Other ways to install

This entry is high risk, so there is no one-click install. Review the code and add the config by hand.

Run in a terminal

claude mcp add --transport stdio iterm-mcp -- npx -y iterm-mcp

Or add to the file .mcp.json, in the project

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

If the file already exists, add the server inside the mcpServers key.

Add to the file ~/.cursor/mcp.json, for all projects

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

If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.

Run in a terminal

code --add-mcp '{"name":"iterm-mcp","type":"stdio","command":"npx","args":["-y","iterm-mcp"]}'

Or add to the file .vscode/mcp.json, in the project

{
  "servers": {
    "iterm-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "iterm-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the servers key.

Run in a terminal

codex mcp add iterm-mcp -- npx -y iterm-mcp

Or add to the file ~/.codex/config.toml, for all projects

[mcp_servers.iterm-mcp]
command = "npx"
args = ["-y", "iterm-mcp"]

If the file already exists, append the block to the end.

Add to the file ~/.gemini/settings.json, for all projects

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

If the file already exists, add the server inside the mcpServers key.

Add to the file ~/.config/devin/mcp_config.json, for all projects

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

If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.

Formerly Windsurf.

Add to the file cline_mcp_settings.json, for all projects

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

If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.

Add to the file .roo/mcp.json, in the project

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

If the file already exists, add the server inside the mcpServers key.

A fork of Roo Code, same .roo folders.

Add to the file opencode.json, in the project

{
  "mcp": {
    "iterm-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "iterm-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the mcp key.

Add to the file ~/.config/zed/settings.json, for all projects

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

If the file already exists, add the server inside the context_servers key.

Add to the file .codeassistant/mcp.json, in the project

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

If the file already exists, add the server inside the mcpServers key.

You will need: Node.js

Checked against the repository on Sep 25, 2026, commit 936182b.

Text for your agent

Add an iterm-mcp server to your MCP client config with command npx and args -y iterm-mcp. iTerm2 must be running.

Other ways from the author
npx -y iterm-mcp

Runs without a system install. Requires iTerm2 and Node.js 18 or newer.

This is third-party code. Review the repository files before installing.

What it does

The server gives an agent access to your active iTerm session on macOS. The agent writes commands to the terminal, reads a chosen number of recent output lines and sends control characters like ctrl-c and ctrl-z. This lets it work with REPLs and follow long-running commands while showing the model only the part of the output that matters. You share the terminal with the model and see every step. It installs via npx and targets Claude Desktop and other MCP clients, with few dependencies.

Who it is for. For developers and devops engineers on macOS who like delegating terminal steps to an agent.

Good fit when

  • You want the agent to run commands in your iTerm session
  • You need to work with REPLs and interactive processes
  • You need to interrupt commands with control characters

Not a fit when

  • You are not on macOS or do not use iTerm2
  • You cannot allow an agent to run commands directly without limits
  • You need built-in command safety checks; there are none here

Example request

Run the tests in the current terminal and show the last lines of output

Limitations

You need iTerm2 and Node.js version 18 or newer. The server does not evaluate command safety: it runs whatever the agent decides, and responsibility is on the user. For multi-step tasks you may need to interrupt the model if it goes off track. It is best to start with small tasks.

How to disable. Remove the iterm-mcp entry from your MCP client config.

MCP

Transport
stdio
Authentication
not required

Security check

  • Runs arbitrary commands in your terminal
  • No built-in command safety checks
  • Can start and interrupt any process

README in short

The README presents a server that gives the model access to an iTerm session with three tools: write to the terminal, read a set number of output lines, and send a control character. It flags safety: there are no built-in restrictions and the user is responsible for execution. Install is via npx, with a Smithery option, and it needs iTerm2 and Node.js 18 or newer. It lists build, development and MCP Inspector debugging commands. MIT licensed.

FAQ

Does the server check commands for danger?

No. There are no built-in restrictions; safety is on the user. Watch the activity and interrupt when needed.

Does it work on Windows or Linux?

No, the server is tied to iTerm2 and runs on macOS.

Editors’ pick

A skills library that gives coding agents a development process: brainstorming, planning, TDD, subagents and code review

PluginMedium riskNo VPN needed292.5KRepository stars
Editors’ pick

Small composable skills for engineering with agents: plan grilling, TDD, bug diagnosis, code review and architecture

SkillLow risk271.4KRepository stars
Editors’ pick

GitHub toolkit for spec-driven development: the specify CLI adds agent commands and skills to a project, from principles to implementation

CLIMedium riskNo VPN needed139.3KRepository stars

Reference MCP servers

Model Context Protocol servers

Official

Official reference MCP servers: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time and Everything

MCP serverMedium risk90.6KRepository stars
Foxx AIiterm-mcp

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.