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 配置面板提供生成功能,本文档给出可操作的示意描述)。
- MCP 核心能力
-
安装与运行
- 系统要求
- Node.js 环境(推荐最新版 LTS,支持 TypeScript 编译输出)。
- 构建与运行步骤(简要)
-
- 安装依赖:在仓库根目录执行 npm install(若存在 package.json)。
-
- 构建 MCP 服务器:执行 TypeScript 编译,或使用仓库提供的构建脚本,将 mcp 相关代码编译输出到 dist/mcp/index.js。
-
- 启动服务器(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 等调用)
- MCP 客户端需要知道服务器启动命令与参数,用于与 MCP 服务器建立连接。以下为一个准确的示例描述,需结合实际路径替换成真实路径:
- 基本使用方法
- 启动后,LLM 客户端通过 MCP 协议发送请求,服务器返回 JSON-RPC 风格的响应或通知。
- 常见操作场景:
- 列出当前分组与摘要信息
- 根据模式创建新分组并向其中添加文件
- 在分组中创建书签、导出 AI 上下文、自动分组(按扩展名或日期)等
- 通过根协议动态更新工作区根并持久化当前状态
- 注意事项:
- 使用 Roots 协议提供工作区根路径,若客户端不支持 Roots,则需要通过命令行参数传入工作区路径。
- 遵循工具调用的参数约束与最大数组长度等安全边界,避免单次调用传入过多文件路径。
- 系统要求