iTerm MCP Server
iterm-mcp
提供对您的 iTerm 会话的访问的模型上下文协议服务器。

特征
高效的令牌使用: iterm-mcp 使模型能够仅检查模型感兴趣的输出。即使对于长时间运行的命令,模型通常也只想查看最后几行输出。
**自然集成:**您可以与模型共享 iTerm。您可以针对屏幕上的内容提问,或将任务委托给模型,并观察其执行每个步骤。
**完全终端控制和 REPL 支持:**该模型可以启动并与 REPL 交互,以及发送控制字符,如 ctrl-c、ctrl-z 等。
依赖关系极少: iterm-mcp 构建时依赖关系极少,可通过 npx 运行。它易于添加到 Claude Desktop 和其他 MCP 客户端。它应该能够正常工作。
安全考虑
用户有责任安全使用该工具。
没有内置限制:iterm-mcp 不会尝试评估所执行命令的安全性。
模型可能会以意想不到的方式运行。用户应监控模型活动并在适当的时候中止运行。
对于多步骤任务,如果模型偏离轨道,你可能需要中断它。从较小、重点突出的任务开始,直到你熟悉模型的行为方式。
工具
write_to_terminal- 写入活动的 iTerm 终端,通常用于运行命令。返回该命令生成的输出行数。read_terminal_output- 从活动的 iTerm 终端读取请求的行数。send_control_character- 向活动的 iTerm 终端发送控制字符。
要求
iTerm2 必须正在运行
Node 版本 18 或更高版本
Related MCP server: iTerm MCP Server
安装
要与 Claude Desktop 一起使用,请添加服务器配置:
在 macOS 上: ~/Library/Application Support/Claude/claude_desktop_config.json在 Windows 上: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"iterm-mcp": {
"command": "npx",
"args": [
"-y",
"iterm-mcp"
]
}
}
}通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 iTerm:
npx -y @smithery/cli install iterm-mcp --client claude发展
安装依赖项:
yarn install构建服务器:
yarn run build对于使用自动重建的开发:
yarn run watch调试
由于 MCP 服务器通过 stdio 进行通信,调试起来可能比较困难。我们推荐使用MCP Inspector ,它以包脚本的形式提供:
yarn run inspector
yarn debug <command>检查器将提供一个 URL 来访问浏览器中的调试工具。
Available Tools
3 toolsread_terminal_outputB
Reads the output from the active iTerm terminal
| Name | Required | Description | Default |
|---|---|---|---|
| linesOfOutput | Yes | The number of lines of output to read. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, yet it states nothing about side effects (e.g., whether reading clears output), output format, maximum lines, or error behavior. The agent lacks critical information about how the tool behaves at runtime.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: a single sentence with no waste. It is appropriately front-loaded. However, it could afford to include a tiny bit more context without harming conciseness, hence not a perfect 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single required parameter, no output schema), the description is insufficient. It omits essential context such as whether the read is destructive, how the terminal session is identified ('active' is ambiguous), and any limitations on the number of lines. The agent lacks enough information to use the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% because the only parameter ('linesOfOutput') is described in the schema. The description adds no additional meaning beyond the schema's 'The number of lines of output to read.' so it meets the baseline but does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('reads') and the specific resource ('output from the active iTerm terminal'). It distinctively separates this tool from its siblings ('send_control_character' and 'write_to_terminal') which perform write operations, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It does not mention prerequisites, alternatives, or conditions under which this tool should be chosen. The agent receives no decision support beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_control_characterA
Sends a control character to the active iTerm terminal (e.g., Control-C, or special sequences like ']' for telnet escape)
| Name | Required | Description | Default |
|---|---|---|---|
| letter | Yes | The letter corresponding to the control character (e.g., 'C' for Control-C, ']' for telnet escape) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states action, does not disclose side effects (e.g., interrupting processes), permissions, or return behavior. Minimal behavioral insight beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence with all essential information: action, target, examples. No wasted words; front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with one parameter and no output schema. Covers basic purpose and examples, but lacks behavioral details or usage context that would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100% with description for 'letter'. Description adds examples ('C' for Control-C, ']' for telnet escape) and clarifies 'special sequences', enriching meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool sends a control character to the active iTerm terminal, with specific examples (Control-C, telnet escape). It differentiates from siblings: write_to_terminal sends text, read_terminal_output reads output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides examples of when to use (control characters, special sequences). Implicitly contrasts with write_to_terminal for regular text. Could explicitly state not to use for typing text, but adequate guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_to_terminalA
Writes text to the active iTerm terminal - often used to run a command in the terminal
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | The command to run or text to write to the terminal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, and description lacks behavioral details such as whether the command waits for completion, effect on terminal state, or authentication needs. Critical for a command execution tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One succinct sentence with no unnecessary information. Front-loaded with core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool, but lacks deeper context about execution behavior (synchronous? interactive?). Without annotations, description could do more to clarify usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter 'command' with schema description 'The command to run or text to write to the terminal'. Description adds marginal value beyond schema, but schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it writes text to the active iTerm terminal, often to run a command. Distinguishes from siblings (read_terminal_output and send_control_character) by its write action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for running commands and writing text. Context with siblings suggests when not to use (reading output or sending control characters), but no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
read_terminal_output - First observed
send_control_character - First observed
write_to_terminal
TDQS
Scored across 3 tools
Each tool has a clearly distinct function: reading output, sending control characters, and writing text. No overlap in purpose.
All three tools follow a consistent verb_noun pattern in snake_case (read_terminal_output, send_control_character, write_to_terminal), making the set predictable.
Three tools is well-scoped for terminal interaction, covering reading, writing, and control without unnecessary bloat.
The tools cover core terminal operations, but missing features like session management or terminal listing are minor gaps for a basic server.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Related MCP Servers
- AlicenseAqualityDmaintenanceA server that lets Claude desktop app execute terminal commands on your computer and edit files through Model Context Protocol, featuring command execution, process management, and advanced file operations.19291,023 npm6MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI assistants to interact with iTerm2 terminals, allowing creation and management of terminal sessions, command execution, and reading terminal output.569 npm14ISC
- FlicenseNot gradedqualityDmaintenanceA server implementation for the Model Context Protocol (MCP) that allows Claude AI to execute commands through a command-line interface, enabling direct system interactions from within Claude.-
- AlicenseAqualityCmaintenanceAn MCP server that provides full control over iTerm2 terminal sessions on macOS. It enables users to manage windows, tabs, and panes, run commands, read screen content, and interact with terminal sessions through Claude.18MIT