Grove MCP 服务端
使用说明(简要指南,帮助快速接入 MCP 客户端)
-
项目简介 Grove 提供一个基于 MCP 的后端服务器,专为与 LLM 客户端的交互设计。服务器实现了对资源、工具与 Prompt 的统一管理与访问,允许 LLM 客户端通过 JSON-RPC 调用读取任务上下文、读取笔记、获取评审评论、批量回复评审、以及完成任务等操作。
-
主要功能点
- MCP 核心:实现 MCP 的基本请求/响应结构,使用 JSON-RPC 进行通信。
- GROVE 工具集成:提供 grove_status、grove_read_notes、grove_read_review、grove_reply_review、grove_complete_task 等工具接口,供 LLM 调用以获取上下文、读取笔记/评审、返还或提交评审、完成任务等。
- 安全与上下文:通过环境变量(如 GROVE_TASK_ID、GROVE_PROJECT、GROVE_WORKTREE 等)读取并构建当前任务上下文,确保工具调用在正确的任务上下文中执行。
- 服务器实现方式:当前实现基于 stdio 传输,适合与 MCP 客户端在同一进程或管道内通信。
- 与 Grove 生态的结合点:结合现有的任务/笔记/评审数据存储,提供一致的后端行为。
-
安装与运行
- 直接运行方式(开发/调试): 在仓库根目录,执行 cargo run --bin grove -- mcp
- 通过已安装的 Grove 二进制运行(生产/集成场景): grove mcp
- 说明 服务器通过标准输入/输出进行 JSON-RPC 通信,客户端应连接并按照 MCP 规范进行请求/响应。
-
服务器配置(客户端需要,不是 Grove 的运行参数) MCP 客户端需要知道服务器的连接信息以建立连接。以下 JSON 配置示例用于 MCP 客户端注册 Grove 服务器,请替换为实际部署环境中的值: { "server_name": "grove", "command": "grove", "args": ["mcp"] } 注释说明:
- server_name:服务器的名称标识,客户端据此识别对应的 MCP 服务器。
- command:启动服务器的命令,在本实现中可使用 grove(对应 cargo 安装后的可执行文件名)。
- args:启动参数,此处为 ["mcp"],用于指定启动 MCP 服务的子命令。 以上配置是 MCP 客户端所需的连接信息, Grove 的 MCP 服务器本身并不需要该配置来运行,但用于说明如何将 Grove 服务器暴露给 MCP 客户端使用。
-
基本使用方法
- 启动 Grove MCP 服务器后,MCP 客户端发送标准 JSON-RPC 请求,如 grove_status、grove_read_notes、grove_read_review、grove_reply_review、grove_complete_task 等。
- 客户端解析服务器响应的 JSON-RPC 结果,并据此在 LLM 推理流程中接入上下文与外部功能。
- Grove 服务器通过环境变量读取当前任务信息,实现多任务并发场景下的上下文提供与工具执行。
-
开发与扩展
- 服务器实现了 grove_status、grove_read_notes、grove_read_review、grove_reply_review、grove_complete_task 等工具的处理逻辑。
- 未来可扩展支持其他传输协议(如 WebSocket、SSE)以及更多资源/工具类型的 JSON-RPC 接口。
-
注意事项
- MCP 客户端应确保在调用 grove_read_notes、grove_read_review 等工具前,先执行 grove_status,验证是否在 Grove 的任务上下文中。
- 当前实现以 STDIO 传输为主,适合在本地或管道中的集成场景使用。