iTerm2自动化服务器

一个集成了Python API的iTerm2自动化服务器,提供终端管理、多窗格操作和实时会话监控功能,适用于AI助手和开发自动化场景。

  • by 2black0
  • JavaScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 2black0/enhanced-iterm-mcp-server

使用说明

🚀 增强型iTerm MCP服务器

高级iTerm2自动化与Python API集成 -AI助手的终极终端控制解决方案。

⚡ 现在使用原生Python API -直接集成iTerm2,实现最高可靠性和性能

⚡ 快速开始

1. 安装

通过NPM(推荐)-现在可用!

npm install -g enhanced-iterm-mcp-server

🎉 刚刚出版! 该软件包现已在NPM注册表上提供,便于安装。

来源

git clone https://github.com/2black0/enhanced-iterm-mcp-server.git
cd enhanced-iterm-mcp-server
npm install
./setup-python-api.sh
npm run build

2. 启用iTerm2 Python API

  1. 打开iTerm2→ 首选项(⌘,)
  2. 首选 将军→ Magic
  3. 检查 “启用Python API”
  4. 重新启动iTerm2

3. 添加到MCP配置

{
  "mcpServers": {
    "enhanced-iterm": {
      "command": "node",
      "args": ["/path/to/enhanced-iterm-mcp-server/dist/index-python-api.js"],
      "type": "stdio"
    }
  }
}

4. 测试设置

# If installed globally
enhanced-iterm-mcp test

# If installed from source
npm test

📦 安装方法

全球安装(NPM)

# Install globally
npm install -g enhanced-iterm-mcp-server

# Use anywhere
enhanced-iterm-mcp --help

# Configuration path for Claude Desktop
# ~/.npm/lib/node_modules/enhanced-iterm-mcp-server/dist/index-python-api.js

✅ 套餐现已在NPM上线! 安装时使用 npm install -g enhanced-iterm-mcp-server

本地项目安装

# Install in project
npm install enhanced-iterm-mcp-server

# Use with npx
npx enhanced-iterm-mcp --help

# Configuration for Claude Desktop
# /path/to/project/node_modules/enhanced-iterm-mcp-server/dist/index-python-api.js

直接使用(NPX)

# Use without installation
npx enhanced-iterm-mcp-server --help

# Claude Desktop configuration
{
  "mcpServers": {
    "enhanced-iterm": {
      "command": "npx",
      "args": ["enhanced-iterm-mcp-server"],
      "type": "stdio"
    }
  }
}

🚀 在线NPM注册表: https://www.npmjs.com/package/enhanced-iterm-mcp-server

🛠 可用工具

终端管理

  • open-terminal -使用配置文件和命令创建新终端
  • list-all-sessions -所有iTerm2窗口/选项卡/会话的完整概述

高级窗格操作

  • split-terminal-horizontal / split-terminal-vertical -带配置文件支持的拆分窗格
  • execute-command-in-pane -在特定窗格中执行命令
  • broadcast-input -同时向多个窗格发送命令

实时信息

  • get-session-info -会话基本信息和状态
  • get-session-details -包含所有变量的全面会话详细信息
  • monitor-session -监控会话随时间的变化

可视化定制

  • set-tab-color -设置选项卡颜色(命名颜色或十六进制代码)

传统兼容性

  • list-panes -列出跟踪的窗格
  • get-terminal-state -终端状态概述

🎯 主要特点

🐍 Python API集成

  • 直接访问iTerm2的原生Python API
  • 实时会话变量监控
  • 具有自动重试功能的强大错误处理
  • 没有AppleScript限制

📊 高级自动化

  • 多窗格广播 用于同时命令
  • 基于配置文件的终端创建 具有自定义配置
  • 实时会话监控 10+个变量
  • 视觉定制 带有标签颜色

🔧 生产就绪

  • 全面的错误处理和记录
  • 所有操作的超时保护
  • 虚拟环境隔离
  • 干净的TypeScript实现

📖 使用示例

创建和拆分终端

// Open new terminal
await callTool("open-terminal", {
  command: "htop",
  workingDirectory: "/Users/username/projects"
})

// Split horizontally with profile
await callTool("split-terminal-horizontal", {
  profile: "Development",
  command: "npm run dev"
})

多窗格操作

// Broadcast command to multiple panes
await callTool("broadcast-input", {
  paneIds: ["session-1", "session-2", "session-3"],
  command: "git status"
})

// Monitor session changes
await callTool("monitor-session", {
  paneId: "session-1",
  duration: 30
})

实时信息

// Get comprehensive session details
await callTool("get-session-details", {
  sessionId: "213D676B-19F7-42A4-9E34-B2B81D40105B"
})

// List all active sessions
await callTool("list-all-sessions", {})

🔧 发展

构建与运行

npm run build    # Build TypeScript
npm start        # Run production
npm run dev      # Development mode

测试

npm test         # Test tool listing
npm run test-sessions  # Test session access

🚨 故障排除

“Python API未启用”

  • 在iTerm2首选项中启用→ 将军→ 魔法→ Python API
  • 启用后重新启动iTerm2

“连接错误”

  • 确保iTerm2正在运行
  • 检查Python虚拟环境: source iterm_env/bin/activate
  • 验证iterm2包: pip list | grep iterm2

“未找到会话”

  • 使用 list-all-sessions 获取有效的会话ID
  • 会话ID在会话关闭/重新打开时更改

📄 许可证

ISC许可证

🙏 构建于


🎯 针对人工智能助理的终极iTerm2自动化解决方案

🤝 贡献

我们欢迎捐款!请看 贡献.md 作为指导方针。

贡献者快速入门

git clone https://github.com/2black0/enhanced-iterm-mcp-server.git
cd enhanced-iterm-mcp-server
npm install
./setup-python-api.sh
npm run dev

📜 更新日志

看 更改日志.md 查看详细的版本历史。

🙏 致谢

⭐ 支持

如果这个项目对你有帮助,请考虑:

  • ⭐ 对存储库进行标记
  • 🐛 报告问题
  • 🔧 贡献改进
  • 📢 与他人分享

内置于❤️ 面向人工智能自动化社区