使用说明

项目简介

Tabby MCP Server 插件为 Tabby 终端带来了 Model Context Protocol (MCP) 服务器功能。通过该插件,你可以将 AI 助手无缝连接到你的终端,实现通过 AI 控制终端、执行命令、访问终端输出等高级功能,从而实现 AI 驱动的终端自动化和控制。

主要功能点

  • AI 连接: 允许 AI 助手连接到你的本地终端环境。
  • MCP 服务器: 内置完整的 Model Context Protocol 服务器实现,遵循 MCP 标准协议。
  • 终端控制: 使 AI 能够执行终端命令并读取终端输出,实现自动化任务。
  • 会话管理: 支持查看和管理 SSH 会话列表,方便 AI 了解当前终端环境。
  • 命令中止: 提供安全中止正在运行的命令的功能,避免失控操作。
  • 缓冲区访问: 允许 AI 检索终端缓冲区内容,获取上下文信息。

安装步骤

  1. 安装 Tabby 终端: 如果尚未安装,请先安装 Tabby 终端
  2. 克隆仓库: 使用 Git 克隆 'tabby-mcp-server' 仓库到本地:
    git clone https://github.com/thuanpham582002/tabby-mcp-server.git
    cd tabby-mcp-server
  3. 构建 Docker 镜像: 使用 Docker 构建插件镜像:
    docker build -t tabby-mcp .
  4. 运行 Docker 容器并复制插件: 运行 Docker 容器,并将构建好的插件文件复制到 Tabby 插件目录:
    docker run -v $(pwd)/build:/output tabby-mcp
    bash scripts/copy_to_plugin_folder.sh
    注意: 'scripts/copy_to_plugin_folder.sh' 脚本可能需要根据你的 Tabby 插件目录位置进行调整。

服务器配置

Tabby MCP Server 插件配置在 Tabby 终端的设置中进行。打开 Tabby 设置 (Settings),在插件 (Plugins) 选项卡中找到 "MCP" 插件进行配置。

以下是 MCP 客户端连接 Tabby MCP Server 时所需的配置信息示例 (JSON 格式):

{
  "mcpServers": {
    "Tabby MCP Server": {
      "url": "http://localhost:3001/sse"
    }
  }
}
  • server name: 自定义的 MCP 服务器名称,例如 "Tabby MCP Server"。
  • url: MCP 服务器的 SSE 端点 URL。默认配置为 'http://localhost:3001/sse'。如果修改了 Tabby MCP Server 的端口或主机地址,请相应地更新此 URL。

基本使用方法

  1. 启动 Tabby 终端: 确保 Tabby 终端已启动。
  2. 启动 MCP 服务器: Tabby MCP Server 插件默认配置为在 Tabby 启动时自动启动 MCP 服务器。你也可以在 Tabby 设置中手动启动或停止 MCP 服务器。
  3. 配置 MCP 客户端: 在你的 AI 客户端 (例如 Claude, GPT 等) 中,配置 MCP 服务器连接信息,使用上面提供的 JSON 配置示例,并将 URL 指向你的 Tabby MCP Server 地址 (默认为 'http://localhost:3001/sse')。
  4. 使用 AI 控制终端: 现在你的 AI 客户端应该能够通过 MCP 协议与 Tabby MCP Server 通信,并使用 'exec_command' 等工具来控制终端会话,例如执行命令、获取终端输出等。

API 参考 - 可用工具 (Tools)

| 工具名称 (Tool Name) | 描述 (Description) | 参数 (Parameters) | |-----------------------------|-----------------------------------------|---------------------------------------------------| | 'get_ssh_session_list' | 获取当前 Tabby 终端中所有 SSH 会话的列表 | 无参数 | | 'exec_command' | 在指定的终端会话中执行命令并返回输出 | 'command' (string): 要执行的命令, 'tabId' (string, 可选): 目标终端会话 ID (从 'get_ssh_session_list' 获取) | | 'get_terminal_buffer' | 获取指定终端会话的缓冲区内容 | 'tabId' (string): 目标终端会话 ID, 'startLine' (number, 可选): 起始行号 (从底部开始), 'endLine' (number, 可选): 结束行号 (从底部开始) | | 'abort_command' | 中止当前正在运行的命令 | 无参数 |

信息

分类

桌面与硬件