Rs快速MCP🦀
模型上下文协议(MCP)的高性能异步优先Rust实现
特性✨
- 🚀 高性能:基于
tokio和actix-web用于非阻塞I/O。 - �️ 内存安全:利用Rust的所有权模型实现无崩溃执行。
- 🔌 灵活运输:完全支持Stdio(管道)和SSE(HTTP)传输。
- 🔒 安全:内置身份验证(OAuth、OIDC、JWT)和速率限制。
- � 零成本抽象:具有最小运行时开销的类型安全接口。
- � 综合示例:准备运行工具、资源和身份验证示例。
建筑
rs-fast-mcp/
├── src/
│ ├── utilities/ # Common helpers (LruCache, JSON Schema)
│ ├── tools/ # Tool management (Execution, Validation)
│ ├── prompts/ # Prompt templates and execution
│ ├── resources/ # Resource management (URI templates, Reading)
│ ├── client/ # MCP Client SDK (Transport, Session)
│ ├── server/ # MCP Server implementation
│ │ ├── core.rs # Core server logic & Builder
│ │ ├── middleware/ # Auth, Rate Limiting, Caching
│ │ ├── transport/ # Stdio and HTTP/SSE transports
│ │ └── auth/ # Authentication providers (OIDC, OAuth, etc.)
│ ├── mcp/ # Protocol types and message definitions
│ ├── cli/ # Command-line interface definitions
│ └── lib.rs # Library entry point
├── examples/ # Usage examples (demos, integrations)
├── tests/ # Integration tests
├── specs/ # Specifications (Gemini)
├── Cargo.toml # Project configuration
└── README.md # This file测试结果总结
132测试 跨单元、集成和文档测试——全部通过:
✅ 服务器模块:43项测试通过
- 核心服务器生命周期,Stdio/SSE传输
- 身份验证(谷歌、GitHub、OIDC、Auth0、AWS Cognito)
- 中间件(速率限制、缓存、日志记录)
- 请求处理、挂载、代理、寿命挂钩
- 上下文状态管理,更改报告标志
- 重复策略序列化
✅ 客户端模块:7项测试通过
- 客户端-服务器集成、错误处理、超时
- 传输实例化、身份验证注入
- 代理和采样支持
✅ 工具模块:20项测试通过
- 注册、执行、验证
- 重复处理(错误、忽略、替换)、模糊匹配、统计
- 工具构建器(新的,add_parameter,带_handler,模式结构)
✅ 资源模块:14项测试通过
- 管理、阅读、模板
- 订阅、订阅/取消订阅、统计信息、筛选
- 重复策略(错误,忽略)
✅ 提示与验证:14项测试通过
- 快速管理、模式验证
- 输入验证(必填字段、类型、URI)
- 重复策略(错误、忽略、替换)
- 快速执行(未找到错误路径)
✅ 核心和公用事业:16项测试通过
- 设置加载、JSON模式、配置
- LogLevel解析(有效/无效),从env加载标签
- 错误变量构造和显示
- 图像/音频内容块生成
✅ MCP协议类型:15项测试通过
- ContentBlock序列化/反序列化(文本、图像、音频)
- 角色、通知、响应往返
- 资源内容(text/blob),请求ID变量
- MCPConfig CRUD、传输推理、服务器功能
✅ 文件测试:3项测试通过
- 库入口点、ServerBuilder、RateLimitMiddleware
核心组件
1.协议类型(src/mcp/)
为所有MCP协议消息、结构和功能提供强大的、与serde兼容的定义。
2.服务器模块(src/server/)
的核心 rs-fast-mcp。管理服务器生命周期,通过以下方式处理传入请求 Stdio 或 Http 传输和编排工具、资源和提示。包括对以下内容的中间件支持:
- 认证:通用
AuthProvider特性与谷歌、Azure、OCI、Supabase、WorkOS、Scalekit的实现。 - 速率限制:令牌桶算法。
- 缓存:自动结果缓存。
3.客户端模块(src/client/)
一个强大的异步客户端,用于连接到MCP服务器。支持:
- 发现:列出工具、提示和资源。
- 执行:调用工具、获取提示、阅读资源。
- 运输:Stdio和SSE之间无缝切换。
4.经理(src/tools, src/resources, src/prompts)
用于注册、查找和执行具有内置验证(JSON模式)的MCP原语的专用管理器。
安装📦
将此添加到您的 Cargo.toml:
[dependencies]
rs-fast-mcp = { git = "https://github.com/neuron-ng/rs-fast-mcp.git" }建立和运行
构建项目
cargo build --release运行测试
cargo test使用CLI
rs-fast-mcp 包括用于服务和检查的CLI。
# Start a server (echo example)
cargo run -- serve --transport stdio
# Connect as a client
cargo run -- client --server-url http://localhost:8000/sse
# Inspect a server
cargo run -- inspect例子
我们提供了一套全面的示例来帮助您开始:
| 示例 | 描述 | 命令 |
|---|---|---|
simple_server | 基本Echo服务器 | cargo run --example simple_server |
demo | 全面的Stdio演示 | cargo run --example demo |
filesystem | 文件操作工具 | cargo run --example filesystem |
calculator_server | 数学工具 | cargo run --example calculator_server |
http_demo | HTTP/SSE传输 | cargo run --example http_demo |
auth_demo | 身份验证中间件集成 | cargo run --example auth_demo |
smart_home | WebSocket/状态模拟 | cargo run --example smart_home |
complex_inputs | 嵌套架构验证 | cargo run --example complex_inputs |
atproto_server | AT协议客户端 | cargo run --example atproto_server |
google_oauth_demo | 谷歌OAuth | cargo run --example google_oauth_demo |
github_oauth_demo | GitHub OAuth | cargo run --example github_oauth_demo |
authkit_dcr | 自定义路线和DCR | cargo run --example authkit_dcr |
详细规格请参见 specs/gemini/.
依赖项
- 东京:异步运行时
- actix网络:HTTP服务器框架
- 序列化与反序列化:序列化/反序列化
- reqwest:HTTP客户端
- 异步特性:异步特性支持
- 拍手:CLI参数解析
比较🐍 🐫 🦀
| 特性 | Ox快速MCP(OCaml) | Rs快速MCP(Rust) | FastMCP(Python) |
|---|---|---|---|
| 类型安全 | ✅ 强静态 | ✅ 强静态 | ❌ 运行时间 |
| 异步模型 | ✅ LWT | ✅ 东京 | ✅ 异步 |
| 演出✅ 本地 | 🚀 本地(最高) | ❌ 翻译 | |
| 生态系统 | 🐫 OCaml | 🦀 板条箱.io | 🐍 PyPI |
| 错误处理 | ✅ 结果类型 | ✅ 结果类型 | ❌ 例外情况 |
Rust实现的好处🦀
- 零成本异步:
tokio提供行业标准的高性能异步执行。 - 生态系统:直接进入广阔的crates.io生态系统(例如。,
reqwest对于OAuth,sqlx对于DB)。 - 工具:Cargo提供一流的构建、测试和依赖关系管理。
- 互操作:易于嵌入其他应用程序或编译为WASM(未来潜力)。
贡献🤝
我们欢迎捐款!
- 分叉 存储库。
- 创建 一个特征分支。
- 实施 您通过测试所做的更改。
- 提交 拉取请求。
请参阅 specs/ 建筑指导目录。
版本历史📈
- v0.1.0 (当前):
- 完整的OCaml端口已完成。 - Stdio和HTTP传输。 - 已实现所有身份验证提供程序。 - 综合示例套件。
许可证📄
Apache-2.0许可证-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
*搬运工❤️ 从OCaml到Rust*
