
sanshao85/persistent-terminal-mcp 是从 https://github.com/sanshao85/persistent-terminal-mcp. 导入的 MCP 服务器候选
概览
sanshao85/persistent-terminal-mcp 是从 https://github.com/sanshao85/persistent-terminal-mcp. 导入的 MCP 服务器候选
概述(AI 翻译)
英语
一个功能强大的 Model Context Protocol (MCP) 服务器,基于 TypeScript 和 node-pty 实现持久化终端会话管理。即使客户端断开连接,终端命令也会继续运行,特别适合 Claude、Cursor、Cline 等 AI 助手执行长时间任务。
油管视频地址:https://youtu.be/nfLi1IZxhJs
b站视频地址:https://www.bilibili.com/video/BV14ksPzqEbM/
Windows 配置mcp 视频教程地址:https://youtu.be/WYEKwTQCAnc
✨ 核心特性
🔥 持久化终端会话
- 长期运行:创建、复用、管理长期运行的 Shell 会话
- 断线续传:客户端断开后终端继续运行,重连后可继续操作
- 多会话管理:同时管理多个独立的终端会话
- 自动清理:超时会话自动清理,避免资源泄漏
🧠 智能输出管理
- 循环缓冲区:可配置大小(默认 10,000 行),自动管理内存
- 多种读取模式:
full:完整输出head:只读取开头 N 行tail:只读取末尾 N 行head-tail:同时读取开头和末尾- 增量读取:使用
since参数只读取新增内容 - Token 估算:自动估算输出的 token 数量,方便 AI 控制上下文
🎨 Spinner 动画压缩
- 自动检测:识别常见的进度动画字符(⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏, ◐◓◑◒ 等)
- 智能节流:减少
npm install、yarn、pnpm等命令的噪音输出 - 保留关键信息:压缩动画的同时保留真实日志
- 灵活配置:可通过环境变量或参数控制开关
🌐 Web 可视化管理界面
- 实时终端:基于 xterm.js 的终端渲染,支持完整 ANSI 颜色
- WebSocket 推送:终端输出实时显示,无需刷新
- 交互操作:直接在浏览器中发送命令、查看输出
- 多实例支持:自动端口分配,支持多个 AI 客户端同时使用
- VS Code 风格:暗色主题,简洁美观的界面设计
🤖 Codex 自动修复 Bug
- 完全自动化:集成 OpenAI Codex CLI,自动修复代码 Bug
- 文档驱动:AI 描述保存为 MD 文档,Codex 读取并修复
- 详细报告:生成完整的修复报告,包含修改前后对比
- 智能等待:自动检测 Codex 执行完成,默认超时 10 分钟
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
Persistent Terminal MCP Server
一个功能强大的 Model Context Protocol (MCP) 服务器,基于 TypeScript 和 node-pty 实现持久化终端会话管理。即使客户端断开连接,终端命令也会继续运行,特别适合 Claude、Cursor、Cline 等 AI 助手执行长时间任务。
油管视频地址:https://youtu.be/nfLi1IZxhJs
b站视频地址:https://www.bilibili.com/video/BV14ksPzqEbM/
Windows 配置mcp 视频教程地址:https://youtu.be/WYEKwTQCAnc
✨ 核心特性
🔥 持久化终端会话
- 长期运行:创建、复用、管理长期运行的 Shell 会话
- 断线续传:客户端断开后终端继续运行,重连后可继续操作
- 多会话管理:同时管理多个独立的终端会话
- 自动清理:超时会话自动清理,避免资源泄漏
🧠 智能输出管理
- 循环缓冲区:可配置大小(默认 10,000 行),自动管理内存
- 多种读取模式:
full:完整输出head:只读取开头 N 行tail:只读取末尾 N 行head-tail:同时读取开头和末尾
- 增量读取:使用
since参数只读取新增内容 - Token 估算:自动估算输出的 token 数量,方便 AI 控制上下文
🎨 Spinner 动画压缩
- 自动检测:识别常见的进度动画字符(⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏, ◐◓◑◒ 等)
- 智能节流:减少
npm install、yarn、pnpm等命令的噪音输出 - 保留关键信息:压缩动画的同时保留真实日志
- 灵活配置:可通过环境变量或参数控制开关
🌐 Web 可视化管理界面
- 实时终端:基于 xterm.js 的终端渲染,支持完整 ANSI 颜色
- WebSocket 推送:终端输出实时显示,无需刷新
- 交互操作:直接在浏览器中发送命令、查看输出
- 多实例支持:自动端口分配,支持多个 AI 客户端同时使用
- VS Code 风格:暗色主题,简洁美观的界面设计
🤖 Codex 自动修复 Bug
- 完全自动化:集成 OpenAI Codex CLI,自动修复代码 Bug
- 文档驱动:AI 描述保存为 MD 文档,Codex 读取并修复
- 详细报告:生成完整的修复报告,包含修改前后对比
- 智能等待:自动检测 Codex 执行完成,默认超时 10 分钟
- 历史记录:所有 Bug 描述和修复报告永久保存在 docs/ 目录
🔌 多种集成方式
- MCP 协议:原生支持 Claude Desktop、Claude Code、Cursor、Cline 等客户端
- REST API:提供 HTTP 接口,方便非 MCP 场景集成
- 严格兼容:完全符合 MCP stdio 协议规范,stdout 纯净无污染
🛡️ 稳定性保障
- 输出稳定检测:
wait_for_output工具确保获取完整输出 - 交互式应用支持:完美支持 vim、npm create 等交互式程序
- ANSI 转义序列:正确处理终端控制字符
- 错误恢复:自动重连、异常处理机制
🚀 安装方式
✅ 快速运行(推荐)
无需安装,直接使用 npx 启动:
npx persistent-terminal-mcp
REST 版本同样支持:
npx persistent-terminal-mcp-rest
📦 引入到现有项目
npm install persistent-terminal-mcp
安装后即可在代码中引用所有核心类与类型:
import { PersistentTerminalMcpServer } from 'persistent-terminal-mcp';
🌐 全局安装(可选)
npm install --global persistent-terminal-mcp
persistent-terminal-mcp
🧪 本地开发
适合想要修改源码或深入调试的场景:
npm install # 安装依赖
npm run build # 编译 TypeScript → dist/
npm start # 通过 stdio 启动 MCP 服务器
开发阶段也可直接运行 TypeScript 源码:
npm run dev # MCP 服务器 (tsx)
npm run dev:rest # REST 服务器 (tsx)
🐞 调试模式
启用调试日志(输出到 stderr,不会干扰 MCP 通信):
MCP_DEBUG=true persistent-terminal-mcp
📚 示例脚本
npm run example:basic # 基础操作:创建 → 写入 → 读取 → 终止
npm run example:smart # 智能读取:head/tail/head-tail 模式演示
npm run example:spinner # Spinner 压缩功能演示
npm run example:webui # Web UI 功能演示
npm run test:tools # 全量验证所有 MCP 工具
npm run test:fixes # 关键修复的回归测试
⚙️ MCP 客户端配置
Claude Desktop
macOS / Linux
配置文件位置: ~/Library/Application Support/Claude/claude_desktop_config.json
在配置文件中添加以下内容:
{
"mcpServers": {
"persistent-terminal": {
"command": "npx",
安装
npx -y persistent-terminal-mcp配置
{
"mcpServers": {
"persistent-terminal": {
"command": "npx",
"args": ["-y", "persistent-terminal-mcp"],
"env": {
"MAX_BUFFER_SIZE": "10000",
"SESSION_TIMEOUT": "86400000",
"COMPACT_ANIMATIONS": "true",
"ANIMATION_THROTTLE_MS": "100"
}
}
}
}