单元格 MCP 服务器
用于管理Zellij终端工作区会话的综合模型上下文协议(MCP)服务器。此服务器为会话管理、窗格操作、选项卡控件、插件集成、布局管理和高级LLM完成检测提供了广泛的工具。
特性
🏗️ 会话管理
通过高级操作完成会话生命周期管理:
- 基本操作:列出、创建、附加、终止、删除会话
- 高级操作:克隆、重命名、切换、导出/导入会话配置
- 会话信息:详细的会话信息和健康监测
🔧 窗格管理
具有高级定位功能的全面窗格控制:
- 基本操作:创建、关闭、聚焦、调整大小、交换窗格
- 高级功能:堆叠窗格、浮动窗格控件、全屏切换
- 内容操作:清除、转储屏幕、编辑回滚、滚动控件
- 定位:精确的浮动坐标控制
📑 选项卡管理
带有导航和组织的完整选项卡生命周期:
- 选项卡操作:创建、关闭、重命名、移动选项卡
- 导航:按索引/名称、下一个/上一个导航转到选项卡
- 高级功能:查询选项卡名称,跨窗格同步输入
🔌 插件管理
全面的插件生态系统集成:
- 插件生命周期:启动、聚焦、启动/重新加载插件
- 高级选项:浮动、就地、跳过缓存配置
- 插件信息:列出别名、正在运行的插件、插件信息
- 配置:完整的插件配置支持
📐 布局管理
完整的布局系统,并经过验证:
- 布局操作:转储、保存、应用、加载布局
- 高级功能:带有布局的新选项卡,布局验证
- 布局发现:列出支持自定义目录的可用布局
🔄 管道系统
高级插件间通信:
- 基础管道:向插件发送数据,向所有插件广播
- 高级管道:响应捕获,基于文件的管道
- 动作管道:强制启动、跳过缓存、浮动选项
- 插件定位:特定插件URL定位
🤖 LLM完井检测
LLM工作流集成专用工具:
- 过程监控:监视管道、轮询进程、文件监视
- 超时管理:自动超时完成
- 包装脚本:LLM完井检测器包装
- 资源清理:自动清理检测资源
🛡️ 安全与性能
企业级安全和性能特征:
- 输入验证:全面的输入净化和验证
- 速率限制:每个工具可配置的速率限制
- 缓存:具有统计信息的智能缓存
- 健康监测:系统健康检查和诊断
安装
先决条件
- Node.js 18或更高版本
- Zellij已安装并在PATH中可用
- 主动终端环境
设置
# Clone the repository
git clone https://github.com/yourusername/zellij-mcp-server.git
cd zellij-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Make the script executable
chmod +x dist/index.js用法
使用克劳德桌面
将此添加到您的Claude Desktop配置文件中:
{
"mcpServers": {
"zellij": {
"command": "node",
"args": ["/path/to/zellij-mcp-server/dist/index.js"]
}
}
}直接使用
# Start the MCP server
npm start
# Development mode with watching
npm run dev工具类别
会话管理工具
| 工具 | 说明 |
|---|---|
zellij_list_sessions | 列出所有具有缓存的活动Zellij会话 |
zellij_new_session | 使用可选布局创建新会话 |
zellij_attach_session | 附加到现有会话 |
zellij_kill_session | 终止特定会话 |
zellij_delete_session | 删除特定会话 |
zellij_get_session_info | 获取详细的会话信息 |
zellij_export_session | 将会话配置导出为JSON |
zellij_import_session | 从JSON导出导入会话 |
zellij_clone_session | 克隆现有会话 |
zellij_rename_session | 重命名会话 |
zellij_switch_session | 切换到其他会话 |
窗格管理工具
| 工具 | 说明 |
|---|---|
zellij_new_pane | 创建一个具有高级选项的新窗格 |
zellij_close_pane | 关闭当前聚焦的窗格 |
zellij_focus_pane | 特定方向的焦点窗格 |
zellij_resize_pane | 调整聚焦窗格的大小 |
zellij_swap_panes | 沿指定方向移动/交换窗格 |
zellij_stack_panes | 按ID堆叠多个窗格 |
zellij_toggle_floating | 切换浮动窗格可见性 |
zellij_toggle_fullscreen | 切换聚焦窗格的全屏模式 |
zellij_pin_pane | 固定/取消固定浮动窗格 |
zellij_clear_pane | 清除聚焦窗格缓冲区 |
zellij_dump_screen | 将窗格屏幕内容转储到文件 |
zellij_edit_scrollback | 在默认编辑器中向后滚动编辑窗格 |
zellij_rename_pane | 重命名聚焦窗格 |
zellij_scroll | 在聚焦窗格中滚动 |
zellij_exec_in_pane | 在当前窗格中执行命令 |
zellij_write_to_pane | 将文本写入当前窗格 |
zellij_get_pane_info | 获取当前窗格布局信息 |
选项卡管理工具
| 工具 | 说明 |
|---|---|
zellij_new_tab | 创建新选项卡 |
zellij_close_tab | 关闭当前选项卡 |
zellij_rename_tab | 重命名当前选项卡 |
zellij_go_to_tab | 按索引转到选项卡 |
zellij_go_to_tab_name | 按名称转到选项卡 |
zellij_move_tab | 向左或向右移动选项卡 |
zellij_query_tab_names | 获取当前会话中的所有选项卡名称 |
zellij_toggle_sync_tab | 在窗格间切换同步输入 |
zellij_go_to_next_tab | 切换到下一个选项卡 |
zellij_go_to_previous_tab | 切换到上一个选项卡 |
插件管理工具
| 工具 | 说明 |
|---|---|
zellij_launch_plugin | 启动具有完整配置的插件 |
zellij_action_launch_plugin | 使用action命令启动插件 |
zellij_launch_or_focus_plugin | 智能插件激活 |
zellij_start_or_reload_plugin | 启动或重新加载插件 |
zellij_list_aliases | 列出可用插件别名 |
zellij_get_plugin_info | 获取插件信息 |
zellij_list_running_plugins | 列出当前正在运行的插件 |
布局管理工具
| 工具 | 说明 |
|---|---|
zellij_dump_layout | 将当前布局转储到stdout或文件 |
zellij_save_layout | 将当前布局保存到布局目录 |
zellij_apply_layout | 将布局应用于当前会话或新会话 |
zellij_list_layouts | 列出可用布局 |
zellij_load_layout | 加载并显示布局内容 |
zellij_new_tab_with_layout | 创建具有特定布局的新选项卡 |
zellij_validate_layout | 验证布局文件语法 |
管道系统工具
| 工具 | 说明 |
|---|---|
zellij_pipe | 使用高级选项通过管道将数据发送到插件 |
zellij_pipe_to_plugin | 将数据发送到特定插件 |
zellij_pipe_broadcast | 向所有监听插件广播数据 |
zellij_action_pipe | 具有动作级别选项的高级管道 |
zellij_pipe_with_response | 发送数据并捕获插件响应 |
zellij_pipe_from_file | 将文件内容传输到插件 |
LLM检测工具
| 工具 | 说明 |
|---|---|
zellij_watch_pipe | 观察管道中特定的超时模式 |
zellij_create_named_pipe | 创建用于双向通信的命名管道 |
zellij_pipe_with_timeout | 自动超时的管道命令输出 |
zellij_poll_process | 按PID轮询进程状态 |
zellij_watch_file | 通过模式匹配观察文件的变化 |
zellij_create_llm_wrapper | 创建LLM完成检测器包装脚本 |
zellij_cleanup_detection | 清理检测资源 |
系统工具
| 工具 | 说明 |
|---|---|
zellij_run_command | 在新窗格中运行命令 |
zellij_edit_file | Edit file in new 单元格窗格 |
zellij_switch_mode | 为所有连接的客户端切换输入模式 |
zellij_kill_all_sessions | 终止所有活动会话 |
zellij_delete_all_sessions | 删除所有会话 |
zellij_clear_cache | 清除MCP服务器缓存 |
zellij_get_cache_stats | 获取缓存统计信息 |
zellij_health_check | 执行系统健康检查 |
示例用法
创建开发会话
{
"name": "zellij_new_session",
"arguments": {
"session_name": "development",
"layout": "dev-layout"
}
}在面板中运行命令
{
"name": "zellij_run_command",
"arguments": {
"command": "npm run dev",
"direction": "right"
}
}插件管理
{
"name": "zellij_launch_plugin",
"arguments": {
"plugin_url": "file:~/.config/zellij/plugins/filepicker.wasm",
"floating": true,
"width": "50%",
"height": "50%"
}
}布局操作
{
"name": "zellij_save_layout",
"arguments": {
"layout_name": "my-dev-setup"
}
}LLM集成
创建LLM包装脚本
这 zellij_create_llm_wrapper 该工具生成智能包装脚本,为任何LLM命令提供强大的完成检测:
{
"name": "zellij_create_llm_wrapper",
"arguments": {
"wrapper_name": "claude-wrapper",
"llm_command": "claude chat",
"detect_marker": ">>",
"timeout_ms": 60000
}
}包装器提供了什么:
- 多信号检测:退出代码、完成标记和状态文件
- 自动超时处理:可配置的超时,具有优雅的清理功能
- 过程监控:实时状态跟踪和记录
- 信号处理:中断时的适当清理(信号情报、信号期限)
- 时间戳日志记录:用于调试的详细执行日志
生成的文件:
/tmp/llm-wrapper-{name}.sh-可执行包装器脚本/tmp/llm-status-{name}-带有时间戳的实时状态文件/tmp/llm-output-{name}-{pid}-捕获的输出(临时)
使用示例:
# After creating the wrapper, use it like:
/tmp/llm-wrapper-claude-wrapper.sh "Explain quantum computing"
# Monitor status in real-time:
tail -f /tmp/llm-status-claude-wrapper
# The wrapper handles timeouts, signals, and cleanup automatically状态跟踪:
running-LLM查询正在进行中complete:0-已成功完成timeout-查询超时error:N-退出代码N失败
建筑
安全功能
- 输入验证:所有输入都经过验证和消毒
- 速率限制:每个工具的速率限制(每分钟50个请求)
- 路径横向保护:文件路径验证阻止目录遍历
- 命令注入预防:命令清理和验证
性能特点
- 智能高速缓存:缓存会话列表和其他数据
- 异步操作:所有操作都是异步的
- 错误处理:针对特定错误类型的全面错误处理
- 资源清理:自动清理临时资源
错误处理
服务器包括针对特定错误类型的全面错误处理:
ValidationError:输入验证失败SecurityError:安全相关错误(速率限制等)ZellijError:Zellij特定命令失败
发展
项目结构
src/
├── index.ts # Main MCP server implementation
├── tools/ # Tool modules
│ ├── detection.ts # LLM completion detection tools
│ ├── layouts.ts # Layout management tools
│ ├── panes.ts # Pane management tools
│ ├── piping.ts # Piping system tools
│ ├── plugins.ts # Plugin management tools
│ └── sessions.ts # Session management tools
├── types/
│ └── zellij.ts # TypeScript type definitions
└── utils/
├── cache.ts # Caching utilities
├── command.ts # Command execution utilities
└── validator.ts # Input validation utilities建筑
# Development build with watching
npm run dev
# Production build
npm run build
# Start the built server
npm start测试
跑 ./test-workflow.sh 以验证检测系统功能。
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
支持
有关问题、疑问或贡献,请访问 .
