终端会话管理服务器

一个提供对tmux终端会话程序化控制的MCP服务器,适用于SSH访问、命令执行和终端自动化等场景。

  • by MediocreTriumph
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 MediocreTriumph/tmux-mcp

使用说明

Tmux MCP服务器

一种MCP(模型上下文协议)服务器,提供对tmux终端会话的编程控制。使Claude(或其他MCP客户端)能够创建、管理tmux会话并与之交互,以实现SSH访问、命令执行和终端自动化。

特性

  • 创建和管理tmux会话
  • 向会话发送命令
  • 捕获窗格输出
  • 拆分窗口和管理窗格
  • 通过MCP工具完全控制终端会话

安装

先决条件

  • Node.js(v16或更高版本)
  • tmux已安装在您的系统上
  • 对于Windows:安装了tmux的WSL2

设置

  1. 克隆或下载此存储库
  2. 安装依赖项:
npm install
  1. 使服务器可执行:
chmod +x src/index.js

配置

将服务器添加到Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "tmux": {
      "command": "node",
      "args": ["/absolute/path/to/tmux-mcp-server/src/index.js"]
    }
  }
}

对于Windows上的WSL2,您可以使用 wsl 要运行服务器,请执行以下操作:

{
  "mcpServers": {
    "tmux": {
      "command": "wsl",
      "args": ["node", "/home/username/tmux-mcp-server/src/index.js"]
    }
  }
}

更新配置后重新启动Claude Desktop。

可用工具

tmux_create_session

创建新的tmux会话。

  • session_name (可选):会话名称
  • start_directory (可选):起始目录

tmux_list_sessions

列出所有活动的tmux会话及其详细信息。

tmux_send_keys

向会话发送按键/命令。

  • session_name (必填):目标会话名称
  • keys (必填):要发送的密钥或命令
  • literal (可选):如果为true,则不附加Enter

tmux_capture_pane

捕获窗格的可见内容。

  • session_name (必填):目标会话名称
  • pane_index (可选):窗格索引(默认值:“0”)
  • lines (可选):从滚动开始的行数(全部为-1)

tmux_kill_session

终止tmux会话。

  • session_name (必填):杀死会话

tmux_split_indow

拆分窗口以创建新窗格。

  • session_name (必填):目标会话名称
  • vertical (可选):如果为真,则垂直拆分(并排)

tmux_select_pane

在会话中选择特定窗格。

  • session_name (必填):目标会话名称
  • pane_index (必需):要选择的窗格索引

tmux_list_panes

列出会话中的所有窗格及其详细信息。

  • session_name (必填):目标会话名称

用法示例

SSH到CML控制台服务器

Claude: Create a tmux session named "cml-console"
Claude: Send SSH command to connect to CML console server
Claude: Capture pane to see login prompt
Claude: Send credentials
Claude: Send "open router1" to access device console
Claude: Capture pane to see device output
Claude: Send configuration commands

监控多个设备

Claude: Create session "monitoring"
Claude: Split window vertically
Claude: Select pane 0, SSH to device1
Claude: Select pane 1, SSH to device2
Claude: Capture both panes to see simultaneous output

用例

  • CML设备访问:SSH到CML控制台服务器和访问节点控制台
  • 配置管理:向网络设备发送命令并捕获输出
  • 故障排除:网络问题的交互式调试
  • 自动化:编写复杂的终端工作流脚本
  • 测试:CLI应用程序的自动测试
  • 监控:同时观看多个终端会话

故障排除

会话未出现

确保tmux已安装并可在PATH中访问:

which tmux
tmux -V

WSL2连接问题

确保您可以从WSL2运行tmux:

wsl tmux new-session -d -s test
wsl tmux list-sessions
wsl tmux kill-session -t test

命令未执行

检查会话是否存在:

tmux list-sessions

许可证

麻省理工学院