VirtualTabs MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • VirtualTabs MCP 服务器是 VirtualTabs VS Code 扩展的一部分,提供完整的 MCP 服务器实现。通过 MCP 协议,LLM 客户端可以读取资源、注册并执行工具、获取和渲染提示模板等,从而实现对工作空间中“虚拟标签/分组”的管理与上下文输出。
    • 服务器通过 JSON-RPC 与客户端通信,支持 ROOTS 协议以动态获取工作区路径,并提供日志控制、可扩展的工具集和可渲染的文档资源。
  • 主要功能点

    • MCP 核心能力
      • Tools:提供对分组、文件、书签、自动分组、模式创建等操作的工具集合,支持参数校验和错误分级。
      • Prompts:内置用于组织和清理工作区组的提示模板(可供 LM 问答流程使用)。
      • Resources:提供完整参考文档等资源内容的读取能力。
      • Roots:实现 MCP Roots 协议,允许客户端传递工作区根目录,服务器据此加载并管理工作区数据。
      • Logging:可由客户端动态设定日志等级,便于调试与审计。
    • 服务器实现要点
      • Bundled MCP server(dist/mcp/index.js)与 15+ 工具、提示、资源模块紧密整合,面向 AI 代理的组管理、文件访问和上下文导出等场景。
      • 强化安全与可扩展性:对文件路径进行工作区范围校验,支持相对路径(工作区相对路径),并对大文件/二进制内容进行处理约束以避免大规模输出时的性能问题。
      • 支持多种传输方式(如 STDIO),在 VS Code 之外的环境也能作为独立后端运行。
    • 资源与提示示例
      • 参考资源:VirtualTabs Complete Reference(文本型 Markdown 资源,包含数据结构、规则、工作区最佳实践等)。
      • 提示模板:organize(组织工作区分组)与 cleanup(清理无效引用)。
    • 集成与扩展性
      • 已对核心模型和工具进行抽象,后续可通过 MCP 客户端扩展更多工具、模板和资源。
      • 客户端配置示例(MCP 配置面板提供生成功能,本文档给出可操作的示意描述)。
  • 安装与运行

    • 系统要求
      • Node.js 环境(推荐最新版 LTS,支持 TypeScript 编译输出)。
    • 构建与运行步骤(简要)
        1. 安装依赖:在仓库根目录执行 npm install(若存在 package.json)。
        1. 构建 MCP 服务器:执行 TypeScript 编译,或使用仓库提供的构建脚本,将 mcp 相关代码编译输出到 dist/mcp/index.js。
        1. 启动服务器(STDIO 传输):node dist/mcp/index.js --workspace-root <你的工作区根目录>,也可以通过 MCP Roots 机制让客户端在连接时提供工作区根。
    • 使用 MCP 客户端配置(JSON)
      • MCP 客户端需要知道服务器启动命令与参数,用于与 MCP 服务器建立连接。以下为一个准确的示例描述,需结合实际路径替换成真实路径:
        • serverName: virtualtabs
        • command: node
        • args: ["/path/to/VirtualTabs/dist/mcp/index.js", "--workspace-root", "/path/to/workspace"]
      • 注释说明:
        • command 指定执行 MCP 服务器的命令
        • args 指定服务器可见的启动参数,包含 server 路径以及工作区根路径(通过 --workspace-root 指定)
        • 客户端在启动后即可通过 MCP JSON-RPC 与服务器进行交互(如 list_groups、create_group、explore_project、read_file、get_prompt、read_resource 等调用)
    • 基本使用方法
      • 启动后,LLM 客户端通过 MCP 协议发送请求,服务器返回 JSON-RPC 风格的响应或通知。
      • 常见操作场景:
        • 列出当前分组与摘要信息
        • 根据模式创建新分组并向其中添加文件
        • 在分组中创建书签、导出 AI 上下文、自动分组(按扩展名或日期)等
        • 通过根协议动态更新工作区根并持久化当前状态
      • 注意事项:
        • 使用 Roots 协议提供工作区根路径,若客户端不支持 Roots,则需要通过命令行参数传入工作区路径。
        • 遵循工具调用的参数约束与最大数组长度等安全边界,避免单次调用传入过多文件路径。

服务器信息