ChatShell MCP 服务器示例
使用说明
- 项目简介
- 该仓库中包含一个完整的 MCP 服务器示例,使用 rmcp 框架实现了 MCP 的核心能力(资源、工具、提示模板等),并提供了一个可运行的服务器实例。服务器端实现了 MCP 的关键接口,如获取服务器信息、列出资源、读取资源、初始化会话等,支持通过 HTTP 传输进行 JSON-RPC 通信。
- 主要功能点
- 资源管理:能够托管并暴露本地资源,供 LLM 客户端访问读取。
- 工具注册与执行:允许将外部工具注册到服务器,LLM 可以调用并把结果回传。
- 提示模板与渲染:支持按需渲染与组合 Prompt 模板,提供统一的交互模式。
- 会话管理与能力声明:服务器对会话进行管理,并声明自身能力。
- 多传输协议:服务器端实现了基于 HTTP 的传输以及可扩展的 STDIO/流式传输等能力。
- JSON-RPC 通信:遵循 MCP 的请求/响应格式,支持标准化的客户端-服务交互。
- 安装与运行
- 进入包含 MCP 服务器示例的目录并安装依赖:
- 需要 Rust 与 Cargo 环境。
- 运行示例服务器(RPC 服务):
- 在代码所在目录执行:cargo run --example rmcp
- 服务器启动后监听在 localhost:8080,用于 MCP 客户端连接。
- 服务器配置(MCP 客户端连接所需的配置示例,JSON 格式)
- 注意:以下配置用于 MCP 客户端连接说明,不是服务器代码。MCP 客户端通过该 JSON 配置连接到服务器。 { "server_name": "chat_shell_rmcpsrv", "command": "cargo", "args": ["run", "--example", "rmcp"] // 启动 MCP 服务器的命令及参数 } 说明:
- server_name: 服务器对外标识名,便于客户端做识别和路由。
- command/args: 启动服务器的命令与参数说明,客户端会使用该信息发起连接(无需在客户端执行该命令的代码实现)。
- 基本使用方法
- 启动 MCP 服务器后,MCP 客户端可以通过标准的 JSON-RPC 请求与服务器进行交互,进行资源获取、工具调用、提示渲染等。
- 客户端应按照 MCP 规范发送请求,服务器返回对应的 JSON-RPC 响应,并可根据需要发出通知。
- 如需扩展,服务器实现提供了对多种传输协议的支持,确保能在不同环境中与 LLM 客户端对接。
- 备注
- 本示例聚焦于 MCP 服务器端实现与运行,可作为理解和对接 MCP 客户端的参考。实际使用中,结合具体的客户端框架进行 JSON-RPC 的封装与解析即可。