Bacchus VINE MCP 服务器
- 概要
该仓库实现了一个完整的 MCP 服务器,用于向 LLM 客户端提供对 VINE 任务图的访问、修改和执行能力。核心功能包括资源管理、工具注册与执行、以及对 Prompt 模板的渲染/提供。服务器使用 JSON-RPC 与客户端通信,提供标准化的 API。 - 主要功能点
- 资源与工具管理:托管和暴露对 VINE 文件的资源访问,以及注册可被 LLM 调用的工具集。
- VINE 文件操作:读取、验证、列出、查询、扩展引用节点(ref)、以及对任务图的增删改等变更。
- Prompts 与模板:提供用于与 LLM 交互的 Prompt 模板(Prompts),便于定义交互模式。
- JSON-RPC 通信:通过标准的 JSON-RPC 路由接收请求并返回结构化响应。
- 会话与能力声明:支持会话管理、能力声明,并对客户端提供资源清单与服务能力信息。
- 多传输协议支持:内置对 Stdio、SSE、WebSocket 等传输协议的适配与切换。
- 安装与运行
- 安装依赖:在该仓库的根目录,使用 Yarn 4(Berry)按仓库的工作区配置安装依赖(推荐使用仓库提供的 setup 及工作流)。
- 启动服务器:在命令行执行 node 包内 MCP 服务器的输出入口(dist/server.js),可结合 --cwd 指定工作目录以便相对 vine 文件路径解析。快速开始示例如下(不作为代码块提供,仅描述步骤):
- 进入仓库根目录,构建并启动 MCP 服务器:运行 npm/yarn 脚本以产出 dist/server.js,然后执行 node packages/mcp/dist/server.js。若需要让相对 vine 路径以某个工作目录为基准,可以附加 --cwd /path/to/project。
- 服务器配置(供 MCP 客户端参考,实际连接由客户端实现):客户端通常需要将服务器信息配置为一个简单的 JSON,包含服务器名称、启动命令及参数。配置示例(JSON 结构,纯描述性字段):
{
"serverName": "@bacchus/mcp", // MCP 服务器在客户端的标识名称
"command": "node", // 启动服务器的命令
"args": ["packages/mcp/dist/server.js"] // 启动参数(指向 MCP 服务器入口)
}
注:以上字段用于 MCP 客户端在启动时连接并与服务器建立会话,实际连接信息由客户端实现方使用,无需在服务器端暴露具体实现细节。
- 基本使用方法
- 初始化与连接:MCP 客户端通过 JSON-RPC 调用向服务器请求资源、执行工具、获取 Prompts 等;服务器响应 JSON-RPC 风格的结果或通知。
- 常用操作:读取 Vine 文件、验证结构、执行变更(添加/删除任务、修改状态、添加引用、扩展引用)、以及获取引用的子图等。
- 交互流程简述:客户端向 MCP 服务器请求 vine_read、vine_write、vine_expand、vine_next 等工具集合,通过服务器返回的结果来驱动 LLM 的进一步行为或对图进行更新。
- 安全与扩展:服务器实现了会话管理、能力声明及多传输协议,便于在不同环境(如本地、云端、浏览器环境等)下部署与对接。