Seren Model Context Protocol 服务端实现

使用说明(Markdown格式)

  • 项目简介

    • Seren MCP 服务器端实现,是 Seren Desktop(TAURI+Rust)中的一个模块,负责按照 MCP 标准处理请求、返回响应,并对外暴露资源读取、工具执行、以及提示模板等能力的服务端功能。支持通过标准的 JSON-RPC 与客户端通信,具备会话管理、能力声明以及多服务器协作能力。
  • 主要功能点

    • 处理 MCP JSON-RPC 请求与响应:实现初始化、工具列举、工具调用、资源读取等核心方法,遵循 MCP 的请求/响应格式。
    • 资源与工具管理:提供对 MCP 服务器上的资源浏览、工具执行等能力。
    • 多服务器支持:可连接并管理多个 MCP 服务器实例,便于分布式/多环境使用。
    • OAuth 与认证:支持 MCP 服务器与发布端的 OAuth 流程,便于受保护工具的使用。
    • 会话与状态管理:维护会话状态、工具执行流程、以及错误处理等。
    • 可扩展性与安全性:通过沙箱、环境变量注入等手段,确保对外部工具的受控执行。
  • 安装与运行步骤

    • 先决条件
      • 具备 Rust 开发环境与 TAURI 框架的构建能力。
      • 依赖 Seren Gateway/OpenClaw 等相关组件时,请确保对应环境就绪。
    • 构建运行
      • 将代码仓库克隆到本地或服务器。
      • 在项目根目录下执行常规构建流程(根据项目实际工作流,如 Rust + TAURI 的打包包含前端部分的构建)。确保在目标平台上构建出 MCP 服务器可执行文件。
      • 启动 MCP 服务器(需要提供启动命令与参数,详见下方服务器配置示例)。MCP 服务器通常作为独立进程运行,向 MCP 客户端暴露 JSON-RPC 服务。
  • 服务器配置(MCP 客户端需要的最少信息) 说明:MCP 客户端需要的配置信息用于建立与 MCP 服务器的连接。配置以 JSON 形式提供,包含 serverName、command 与 args 等字段,指明要启动的 MCP 服务器进程及启动参数。下面给出符合仓库实现的示例信息与字段释义,帮助你准备配置而不涉及具体代码。

    { "serverName": "seren-mcp", "command": "./path/to/seren-mcp-binary", "args": ["start"], "notes": "seren-mcp 二进制在打包时放置在嵌入运行时 bin 目录,启动参数为 'start'。请将 command 指向实际的 MCP 服务器可执行文件路径。若采用嵌入式运行时,请确保 PATH 已包含嵌入的 node/git 路径以便服务器可执行所需工具。" }

    备注与说明

    • serverName: MCP 服务器的唯一标识名,客户端用于区分不同服务器。
    • command: MCP 服务器可执行文件的路径或可直接执行的二进制名。根据打包平台不同,该路径可能指向 embedded-runtime/bin/ seren-mcp(如果使用打包好的 MCP 服务二进制)或其他你部署的二进制。
    • args: 启动参数数组,常见为 ["start"],具体依服务器实现而定。
    • 该配置仅用于 MCP 客户端与 MCP 服务器建立连接使用,不是 Seren Desktop 的内部前端代码的一部分。
  • 基本使用方法

    • 启动 MCP 服务器:根据上述配置执行 command 与 args,确保服务器进程正常启动。
    • 客户端连接:MCP 客户端使用 JSON-RPC 协议向 MCP 服务器发送请求,如读取资源、调用工具、读取资源等,并接收 JSON-RPC 响应。
    • 会话与能力声明:服务器在建立会话时应提供能力声明,后续请求中遵循 MCP 协议约定。
    • 监控与调试:通过日志与 API 状态接口,监控服务器状态、工具执行结果及错误信息。
  • 使用案例要点

    • MCP 服务器应能接收以下核心请求并返回相应结果:initialize、tools/list、tools/call、resources/list、resources/read、以及必要的通知/init/initialized 等。
    • 支持多服务器时,客户端可通过 serverName 区分不同的 MCP 服务器,进行并行或按需调用。

服务器信息