Turul MCP 框架(Rust-Beta 实现)
使用说明(Markdown 格式)
-
项目简介
- Turul MCP 框架是一套用 Rust 实现的 MCP 服务器端框架,目标是提供一个标准化的上下文服务后端,向 LLM 客户端暴露 Resources、Tools、Prompts 等能力,并通过 JSON-RPC 与客户端交互。支持多种传输模式(如流式 HTTP、SSE、AWS Lambda),并具备会话管理、任务跑法、通知广播等企业级特性。
-
主要功能点
- 资源管理(Resources):对静态资源与模板资源进行托管与访问,支持模板变量提取。
- 工具注册与执行(Tools):通过函数式、派生宏、构建器等方式注册工具,并支持通过 MCP 调用执行。
- 提示模板(Prompts):定义和渲染面向 LLM 的提示模板。
- 流式传输与传输协议:支持现代的 Streamable HTTP、SSE、以及 AWS Lambda 的服务器端集成;提供对 MCP 版本的尊重性路由和兼容层。
- 会话与存储(Session & Storage):提供会话创建、持久化、TTL 清理等机制,以及对任务的存储和恢复。
- 事件通知(Notifications):通过 SSE 将服务器端事件广播或按会话订阅进行推送。
- 服务器端实现与客户端示例:包含核心服务器、HTTP 服务器、Lambda 集成等多种示例与测试用例,方便集成与验证。
-
安装步骤
- 克隆仓库并进入项目根目录
- 构建整个工作区:cargo build --workspace
- 运行集成合规性测试(示例命令):cargo test -p turul-mcp-framework-integration-tests --test compliance
- 运行简单示例服务器(示例名称多样,可以选择 Core、Resource、Prompts 等):cargo run -p minimal-server
- 如需本地浏览器/LLM 集成测试,请参考 README 中的快速测试和示例服务器清单
-
服务器配置(用于 MCP 客户端连接的配置信息,采用 JSON 结构,描述服务器在运行时的必要信息) { "serverName": "turul-mcp-core", "command": "cargo run -p comprehensive-server --", "args": [ "--port", "8002", "--transport", "http-streamable", "--storage-backend", "InMemory", "--sse", "true" ], "notes": "使用 MCP 2025-11-25 版本,启用流式 HTTP(Streamable HTTP)传输,开启 SSE/通知。" }
-
基本使用方法
- 启动服务器
- 选择核心服务器(如 comprehensive-server)或最简示例,使用上述命令行参数运行。
- 与 MCP 客户端建立连接
- 客户端通过 MCP 的 JSON-RPC 2.0 规范向服务器的 /mcp 入口发送初始化 initialize 请求,包含协议版本 "2025-11-25"、能力声明和客户端信息。
- 调用工具/读取资源
- 客户端可以通过 tools/list、tools/call、resources/list、resources/read 等方法与服务器交互,获取资源、执行工具并接收结果。
- 使用高度定制的交互
- 通过 prompts、elicitations、notifications 等能力对话流程进行更复杂的 LLM 交互与协作。
- 测试与部署
- 本仓库提供大量测试与示例服务器,建议在开发阶段使用集成测试(cargo test --workspace),在本地或云环境按需部署 Lambda/API 网关等。
- 启动服务器
-
重要提示
- MCP 客户端配置应以服务器提供的 JSON-RPC 交互为准,客户端无需依赖服务器内部实现细节。
- MCP 版本 negotiating、传输选择与安全性(如鉴权、中继、CORS、SSE 等)均在框架中有实现和示例。
- 本实现包含多种传输模式的兼容性,要求在实际部署时正确配置对应的传输组件和环境。