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 配置,程序启动后会自动建立连接并缓存工具清单。

服务器信息