使用说明(简明易懂,便于开发者快速上手):

  • 项目简介

    • 该仓库实现了一个基于 MCP(Model Context Protocol)的服务器端框架,核心职责是向 LLM 客户端提供上下文信息与能力,包括资源的托管与访问、工具的注册与执行,以及对 Prompt 模板的定义与渲染。服务器与客户端通过 JSON-RPC 进行请求/响应通信,支持会话管理、能力声明以及多种传输协议(如 STDIO、SSE、WebSocket 等)。
  • 主要功能点

    • MCP 核心接口实现:实现了 list_resources、read_resource、list_tools、call_tool 等 MCP 请求处理路径,返回标准的 JSON-RPC 响应。
    • 资源与工具管理:提供资源的读取与集合、工具的注册与执行,方便 LLM 通过 MCP 调用外部功能。
    • 工具与模板描述:通过 tool_schemas 提供丰富的工具描述和输入/输出 schema,支持工具的远程调用及结果返回。
    • 与 Subagents 集成:内置对 Subagent 的对接能力,允许跨后端执行并在 MCP 层统一调度与事件跟踪。
    • 测试覆盖:存在端到端测试用例驗證 MCP 工作流、工具调用和代理服务行为,确保服务器端实现的可靠性。
  • 安装步骤

    • 在已安装 Rust 的环境中构建并运行:
      • 使用 CLI 方式(推荐):执行 skrills serve 启动 MCP 服务器(需按仓库文档配置依赖环境变量)。
      • 或直接从源码运行服务器二进制(开发调试时):
        • cargo build --workspace
        • cargo run -p skrills-server serve
    • 环境准备要点:
      • 配置 OpenAI/Codex/Claude 等后端的 API 访问密钥与基地址(若要真实通信)。
      • 如需测试,请按仓库提供的 README/文档配置合适的环境变量并启动服务。
  • 服务器配置(JSON 配置示例,非代码形式) 配置目标:向 MCP 客户端暴露一个名称为 Skrills-MCP 的服务器实例,指定启动命令与参数,以及可选传输协议。以下信息适用于需要与 MCP 客户端对接的客户端描述,不属于代码实现本身,仅用于客户端连接配置参考。

    { "server_name": "skrills-mcp-server", "command": "skrills", "args": ["serve"], "transport_protocols": ["stdio", "sse", "websocket"], "description": "Skrills MCP 服务器端,提供资源、工具和提示模板的上下文服务", "notes": "确保环境变量按仓库文档设置,例如后端 API keys、基地址等;客户端需使用此 server_name、command 与 args 进行连接配置" }

    说明:

    • server_name: MCP 客户端在连接时可用于区分不同的 MCP 服务。
    • command / args: MCP 服务器启动命令及参数,客户端无需关心具体实现细节,只需要正确的 server_id/地址(如果通过网络传输的实现)即可。
    • transport_protocols: 建议列出服务器支持的传输协议,客户端可按需要选择(如 STDIO、Server-Sent Events、WebSocket 等)。
    • 该仓库的实现核心通过 ServerHandler trait 处理 MCP 请求,具备标准 MCP 请求/响应能力,并能向客户端暴露资源、工具和提示模板等能力。
  • 基本使用方法

    • 启动服务器后,LLM 客户端通过 MCP 协议向服务器发出请求,例如读取资源、执行工具、获取 Prompt 信息等。
    • 客户端可以按照 MCP 约定的 JSON-RPC 进行通信,服务器会返回标准的响应结构或发送通知。
    • 运行中可结合仓库中的端到端测试用例验证工具的注册、资源读取、以及运行 Subagent 的流程。
  • 运行与验证要点

    • 服务器端实现了对 MCP 的核心接口的响应逻辑:列出资源、读取资源、列出工具、调用工具等。
    • 通过 server/tests 的端到端示例可以看到实际的 MCP 场景调用与子代理(Subagent)的协作流程,确保 MCP 客户端能正确地与服务器端进行交互。
    • 如需扩展,请参考 tool_schemas.rs、handler.rs 中的实现点,新增工具、资源类型或自定义前后处理逻辑。
  • 重要注意事项

    • MCP 客户端并不需要知道服务器的内部实现细节,只需要知道服务器名称、启动命令以及连接参数即可。
    • 安全性与认证(如 API Key、鉴权等)需要在具体后端实现中妥善处理,当前代码框架提供了可拓展的接口与策略。

信息

分类

AI与计算