RayClaw MCP 服务端实现
使用说明(Markdown格式)
-
项目简介
- RayClaw 深度集成了 MCP(Model Context Protocol)服务器端实现,核心职责是向大语言模型(LLM)客户端提供标准化的上下文信息与能力,包括资源/工具/提示模板的托管与渲染,以及通过 JSON-RPC 的请求响应交互。服务器支持多种传输协议(stdio、Streamable HTTP),并具备会话管理、能力声明和健康检查等特性,方便在多通道、分布式场景中作为后端上下文服务框架使用。
-
主要功能点
- MCP 协议核心:实现初始化、请求响应、协议协商、工具调用等 JSON-RPC 交互流程。
- 传输通道:支持 stdio 与 streamable_http(HTTP 传输),并具备对两种传输的适配与切换能力。
- 工具管理:提供对 MCP 工具的缓存、列举与调用能力,支持远程工具调用。
- 协议与健康:默认协议版本可全局/按服务器覆盖,提供健康探针和工具缓存刷新机制。
- 与 RayClaw 生态整合:MCP 服务器与 RayClaw 的其他组件(如 AC P、LLM、内存、调度等)协同工作,形成端到端的上下文服务。
- 容错与重连:对网络/进程异常实现重连、错误处理与日志输出,确保长期运行稳定。
-
安装步骤
- 从源码编译(包含所有特性):
- cargo build --release --features all
- 运行可执行文件(本地开发环境示例):
- 使用 cargo run -- start 启动(需在 rayclaw.data/mcp.json 配置 MCP 服务)
- 如需构建带前端/所有通道的完整版本,请使用 --features all 选项。
- 从源码编译(包含所有特性):
-
服务器配置(示例配置,供 MCP 客户端了解连接信息,不包含客户端代码)
-
服务端名称:filesystem
-
传输方式:stdio
-
启动命令与参数示例(注释说明,便于理解)
-
服务器名称: filesystem
-
启动命令: npx
-
启动参数: -y @modelcontextprotocol/server-filesystem .
-
说明: 通过 stdio 传输,RayClaw 将向该 MCP 服务器发送初始化、工具调用等 JSON-RPC 请求。
-
服务端名称:remote
-
传输方式:streamable_http
-
端点:http://127.0.0.1:8080/mcp
-
说明: 通过 HTTP 传输,RayClaw 将通过远程端点进行 MCP 交互,及获取工具清单等能力。
实际使用时,请将以上信息写入 rayclaw.data/mcp.json(JSON 结构与仓库示例一致),以便 MCP 客户端在启动时加载并与 MCP 服务端建立连接。
-
-
基本使用方法
- 启动阶段
- 确保 rayclaw 配置与 mcp.json 就绪(如前述示例的 filesystem/remote 配置)。
- 运行 rayclaw start,服务端将根据配置自动建立与 MCP 客户端的通信,并加载工具缓存、建立协议协商。
- 运行后端监控
- 检查日志输出,关注 MCP 服务器连接和工具加载情况,确保“connected”相关日志出现。
- 客户端交互
- MCP 客户端通过 JSON-RPC 向服务器请求资源、调用工具、获取 Prompts 等,服务器返回标准的 JSON-RPC 响应。
- 维护与扩展
- 新增 MCP 服务器时,在 rayclaw.data/mcp.json 增加对应的 server 配置,程序启动后会自动建立连接并缓存工具清单。
- 启动阶段