使用说明

项目简介

iTerm-mcp 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLM)提供访问和控制 iTerm2 终端会话的能力。通过该服务器,LLM 可以执行终端命令、读取命令输出,甚至发送控制字符,从而实现与终端环境的深度交互。这使得 LLM 不仅可以理解终端的上下文信息,还能主动执行操作,极大地扩展了 LLM 在自动化任务、开发辅助等领域的应用潜力。

主要功能点

  • 高效的 Token 使用: 模型可以只关注感兴趣的终端输出,尤其是在长时间运行的命令中,模型通常只需要查看最后几行输出,从而节省 Token。
  • 自然集成: 模型可以与用户共享 iTerm 会话,直接观察屏幕内容并进行提问,或者委托模型执行任务并观察其操作步骤。
  • 完整的终端控制和 REPL 支持: 模型可以启动并与 REPL (交互式解释器) 进行交互,并发送 Ctrl-C, Ctrl-Z 等控制字符。
  • 轻依赖: 使用最少的依赖构建,可以通过 'npx' 轻松运行。易于添加到 Claude Desktop 和其他 MCP 客户端。

提供的工具 (Tools):

  • 'write_to_terminal': 向活动的 iTerm 终端写入文本,常用于运行命令。返回命令输出的行数。
  • 'read_terminal_output': 从活动的 iTerm 终端读取指定行数的输出。
  • 'send_control_character': 向活动的 iTerm 终端发送控制字符,例如 Ctrl-C。

安装步骤

  1. 确保 iTerm2 正在运行:iTerm-mcp 需要 iTerm2 应用程序运行才能工作。
  2. 安装 Node.js: 确保你的系统安装了 Node.js 18 或更高版本。
  3. 通过 npm 安装 iterm-mcp: 虽然仓库没有明确的全局安装步骤,但根据 'README.md' 的描述,可以通过 'npx' 直接运行,无需全局安装。如果需要本地安装以便开发,可以先 'git clone' 仓库到本地,然后 'yarn install' 安装依赖。

服务器配置

要将 iTerm-mcp 服务器配置到 MCP 客户端(例如 Claude Desktop),你需要提供服务器的启动命令和参数。以下是配置信息,你需要将其添加到 MCP 客户端的配置文件中。

以 Claude Desktop 为例,配置文件路径:

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

配置内容 (JSON 格式):

{
  "mcpServers": {
    "iterm-mcp": {  // 服务器名称,可以自定义,用于在客户端中标识
      "command": "npx", // 启动服务器的命令,这里使用 npx
      "args": [       // 命令参数
        "-y",         // npx 的参数,-y 表示自动确认安装包
        "iterm-mcp"   // 要执行的 npm 包名,即 iterm-mcp
      ]
    }
  }
}

配置说明:

  • '"mcpServers"': MCP 服务器配置的根节点。
  • '"iterm-mcp"': 你为该服务器定义的名称,客户端会使用这个名称来引用服务器。
  • '"command": "npx"': 指定用于启动服务器的命令是 'npx','npx' 允许你无需全局安装即可运行 npm 包。
  • '"args": [...]"': 传递给 'npx' 命令的参数列表。
    • '"-y"': 'npx' 的参数,用于跳过安装包的确认提示,直接运行。
    • '"iterm-mcp"': 指定要通过 'npx' 运行的 npm 包名称,即 'iterm-mcp'。 'npx' 会自动查找并运行当前项目或 npm 仓库中的 'iterm-mcp' 包。

基本使用方法

  1. 启动 MCP 客户端: 启动配置了 iTerm-mcp 服务器的 MCP 客户端,例如 Claude Desktop。
  2. 连接服务器: 客户端应该会自动根据配置连接到 iTerm-mcp 服务器。
  3. 使用 LLM 调用工具: 在客户端中,你可以指示 LLM 使用 'write_to_terminal', 'read_terminal_output', 或 'send_control_character' 工具。例如,你可以 prompt LLM 执行命令 'ls -l' 并读取输出,或者发送 'Ctrl-C' 终止当前运行的进程。
  4. 观察和交互: 根据 LLM 的操作和返回结果,你可以进一步指示 LLM 进行后续操作,实现复杂的终端交互任务。

注意: 由于 iTerm-mcp 允许 LLM 控制终端,请务必谨慎使用,并仔细审查 LLM 的操作,避免意外执行危险命令。

信息

分类

桌面与硬件