Token导航 LogoToken导航TokenDH.com
Persistent Shell MCP logo
开发工具未说明官方级别未说明来源级核验

Persistent Shell MCP

MCP Server

一个通过tmux会话提供持久化Shell执行的MCP服务器,适用于AI助手命令执行和开发测试环境。

工具数

8

提示词数

0

GitHub Stars

1

资源数

0
JavaScript进程管理开发工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

TNTisdial

提供方

TNTisdial

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

这是仅用于测试和开发目的的实验软件。请勿在生产环境中使用或与敏感数据一起使用。

一种模型上下文协议(MCP)服务器,通过tmux会话提供持久的shell执行。此服务器使AI助手能够在持久shell中执行命令。 这解锁了许多可能性,例如代理编排。.. final_optimized

特性

  • 双窗口架构:每个工作区有两个窗口- exec 用于命令执行和 ui 用于干净的输出显示
  • 持久工作区:在tmux会话中执行命令,这些命令在MCP客户端重新启动时持续存在
  • 交互式流程支持:处理长时间运行的进程、REPL和交互式命令
  • 工作区隔离:用于不同项目或任务的多个独立工作区
  • 干净的UI管理:用于执行和面向用户的输出的单独窗口
  • 自动会话管理:无缝创建、销毁和监视工作区

安装

🚨 安全警告:此软件允许AI助手在您的系统上执行任意shell命令。仅在隔离的测试环境中安装和使用。切勿在有敏感数据的系统或生产环境中使用。

先决条件

  • Node.js 18.0.0或更高版本
  • tmux已安装在您的系统上

- Ubuntu/Debian: sudo apt install tmux - macOS: brew install tmux - CentOS/RHEL: sudo yum install tmux

从npm安装

npm install -g tmux-mcp-server

从源代码安装

git clone https://github.com/TNTisdial/persistent-shell-mcp.git
cd persistent-shell-mcp
npm install
npm link

用法

MCP客户端配置

添加到MCP客户端配置中:

{
  "mcpServers": {
    "tmux-shell": {
      "command": "tmux-mcp-server"
    }
  }
}

可用工具

核心执行工具

execute_command

执行快速完成并返回完整输出的命令。使用 exec 窗户。

execute_command({
  command: "ls -la", 
  workspace_id: "my-project"
})

start_process

启动长时间运行或交互式流程。可以针对任一窗口:

  • exec 窗口(默认):用于后台进程
  • ui 窗口:用于需要用户可见性的交互式应用程序
start_process({
  command: "python3", 
  workspace_id: "dev",
  target_window: "ui"  // For interactive apps like vim, python REPL
})

get_output

从任一窗口捕获当前终端输出:

  • ui 窗口(默认):清除面向用户的输出
  • exec 窗口:包含所有命令的原始shell
get_output({
  workspace_id: "dev",
  window_name: "ui"  // or "exec" for raw output
})

send_input

向任一窗口中正在运行的进程发送输入。

send_input({
  text: "print('Hello World')", 
  workspace_id: "dev",
  target_window: "ui"
})

stop_process

在exec窗口中停止当前正在运行的进程(发送Ctrl+C)。

stop_process({workspace_id: "dev"})

工作区管理工具

create_workspace

创建一个具有双窗口的新隔离工作区。

destroy_workspace

销毁工作区及其所有进程。

list_workspaces

列出所有活动工作区。

建筑

双窗设计

每个工作区由两个tmux窗口组成:

  1. exec 窗口:用于执行命令的原始shell

- 处理所有命令执行 - 显示完整的shell历史记录和提示 - 用于后台进程

  1. ui 窗口:干净的输出显示

- 显示用户交互的干净输出 - 用于交互式应用程序 - 提供更好的用户体验

工作区隔离

  • 每个工作区都是一个单独的tmux会话
  • 独立的工作目录和环境
  • 进程不会干扰工作空间
  • 不同项目/任务的清晰分离

常见工作流

快速命令执行

// Execute and get results immediately
execute_command({command: "npm install", workspace_id: "frontend"})
execute_command({command: "git status", workspace_id: "frontend"})

交互式开发

// Start Python REPL in UI window
start_process({
  command: "python3", 
  workspace_id: "python-dev",
  target_window: "ui"
})

// Send Python commands
send_input({text: "import os", workspace_id: "python-dev", target_window: "ui"})
send_input({text: "print(os.getcwd())", workspace_id: "python-dev", target_window: "ui"})

// Check output
get_output({workspace_id: "python-dev", window_name: "ui"})

后台流程管理

// Start server in background
start_process({command: "npm run dev", workspace_id: "server"})

// Check server status
get_output({workspace_id: "server", window_name: "exec"})

// Stop server when done
stop_process({workspace_id: "server"})

多项目开发

// Frontend workspace
create_workspace({workspace_id: "frontend"})
execute_command({command: "cd /path/to/frontend", workspace_id: "frontend"})

// Backend workspace  
create_workspace({workspace_id: "backend"})
execute_command({command: "cd /path/to/backend", workspace_id: "backend"})

// Database workspace
create_workspace({workspace_id: "database"})
start_process({command: "mysql -u root -p", workspace_id: "database", target_window: "ui"})

项目结构

tmux-mcp/
├── src/
│   ├── server.js          # Main MCP server and tool definitions
│   ├── tmux-manager.js    # Tmux session and window management
│   └── index.js           # Entry point
├── bin/
│   └── tmux-mcp-server    # Executable script
├── package.json
└── README.md

故障排除

未找到Tmux

Error: tmux command not found

安装tmux: sudo apt install tmux (Ubuntu/Debian)或 brew install tmux (macOS)

创建工作区失败

Error: Failed to create workspace

检查tmux服务器是否正在运行,以及您是否有创建会话的权限

命令未响应

Check workspace status with get_output

使用 get_output 随着 window_name: "exec" 查看原始外壳状态

流程受阻

Use stop_process to send Ctrl+C

发送中断信号 stop_process 终止挂起进程

许可证

麻省理工学院

目录标签

目录标签

JavaScript进程管理开发工具Shell执行本地部署AI助手工作区隔离

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明sessionlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP