使用说明(简明易懂,便于开发者快速上手):
-
项目简介
- 该仓库实现了一个基于 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/文档配置合适的环境变量并启动服务。
- 在已安装 Rust 的环境中构建并运行:
-
服务器配置(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与计算