用途
tui-mcp 是一个 MCP(Model Context Protocol)服务器,目标是把终端本身作为通用接口暴露给 AI 助手。正如 Chrome DevTools MCP 之于浏览器,tui-mcp 之于终端:它让 AI 能够启动、截图和交互任意 TUI 应用。
它通过 node-pty 启动一个真实的伪终端托管终端应用,应用以为自己在真实终端中运行。输出由 xterm-headless(VS Code 终端背后的终端模拟器,无 DOM 版本)解析,MCP 工具读取并操作该解析后的缓冲区。
主要能力
- 在托管 pty 中启动任意终端应用。
- 对终端界面截图、读取文本。
- 向终端发送按键输入。
- 保持持久、交互式的会话:pty 在多次调用间存活,支持有状态工具(如 mysql shell、事务)、全屏 UI(htop、vim、k9s、lazygit)、多步交互(SSH 密码、2FA、交互式安装器、git rebase -i)、持续监视(tail 日志、构建、部署)以及要求真实 TTY 的 CLI。
- 提供 node-pty 生成的 xterm-256color 真实 pty,使需要 TTY 的 CLI 正常工作。
- 支持任何 TUI 框架或不使用框架:vim、htop、bubbletea、textual、ink、inquirer、trend、ncurses 等。
- 可从终端监控界面查看和控制所有活动会话。
与 bash 工具的区别
bash 工具运行离散命令,每次调用即发即忘,进程退出后返回输出。tui-mcp 维护持久、交互式的会话,pty 在调用之间保持存活。以下场景尤其重要:
- 工具具有状态:在 mysql shell 中已 USE 数据库、处于事务中,bash 工具无法在调用之间保持会话。
- 工具具有 UI:htop、vim、k9s、lazygit 等全屏界面使用 ANSI 转义码,bash 工具返回乱码;tui-mcp 通过 xterm 模拟渲染为可读截图或文本快照。
- 交互是多步的:SSH 依次提示密码、2FA 验证码;交互式安装器提问;git rebase -i 进入编辑器。这些对话式流程无状态的 bash 工具无法处理。
- 需要监视:tail 日志、监控构建、等待部署完成。会话保持打开,代理可随时快照检查进度。
- 工具要求 TTY:某些 CLI 无真实终端时行为不同或拒绝运行。node-pty 提供带 xterm-256color 的真实 pty,因此一切按预期工作。
bash 工具是 exec(),tui-mcp 是“坐到终端前像人一样使用它”。一个运行命令,另一个操作软件。
使用方式
在托管 pty 中启动任意终端应用,即可对其截图、读取文本、发送按键。可同时启动多个会话(例如一个跑开发服务器、一个跑测试、一个 tail 日志、一个在调试器中),实现多会话编排。
可从终端监控界面查看和控制所有活动会话:左侧为会话列表,右侧为实时 ANSI 渲染的终端预览。监控界面会发现机器上运行的所有 tui-mcp 服务器并聚合其会话。
监控界面操作:
- j/k 或方向键在服务器和会话间移动,g/G 到顶部/底部,鼠标点击和滚动也可用。
- 在会话上按 enter 附着:输入的一切传给其 pty,ctrl+\ 分离。
- 在服务器上按 enter 打开针对它的启动面板。
- s 将会话完整回滚缓冲抓取到可滚动视图,esc 返回实时。
- l 在选中行的服务器上启动新会话(ctrl+s 循环目标)。
- 3 秒内按两次 x 终止选中的会话。
附着、启动、终止和回滚需要服务器为 1.2 或更新版本;旧服务器上的会话标记为 ro(只读),仍可观看。
适用场景
- 远程运维:代理通过 SSH 登录生产机,tail 日志、grep 错误、重启服务、观察恢复。读取的是与人类 SRE 相同的终端输出,无需自定义 API。
- 遗留系统交互:ncurses 管理面板、mysql cli、redis-cli、psql 等永远不会获得 REST API 的系统。
- 多会话编排:同时启动 3-4 个会话,如开发服务器、测试、日志、调试器,相当于多一双手的结对编程。
- 交互式调试器:gdb、lldb、pdb、node --inspect,代理可设断点、单步执行、检查变量。
- 基础设施即对话:kubectl、terraform、docker、aws cli。代理无需 Kubernetes MCP 服务器或 AWS MCP 服务器,直接像人一样使用 CLI。
大多数 MCP 服务器包装一个特定工具或 API。tui-mcp 包装终端本身,即所有工具已经使用的通用接口。它是 MCP 的 eval()。
限制
- 附着、启动、终止和回滚功能需要服务器 1.2 或更新版本;旧服务器上的会话为只读。
- 安装方式、具体收费或价格、平台支持等细节暂未提供。