kuri (栗 or くり)

kuri (栗 or くり)

site icon
2025.04.19 9
RustMCP 服务器框架Rust 开发工具开发效率
kuri 是一个用于构建 Model Context Protocol (MCP) 服务器的框架,专注于开发者的易用性和代码清晰度。MCP 允许大型语言模型(LLM)执行预定义的函数(称为“工具”),这些工具可以获取数据并产生副作用(例如与外部世界交互)。kuri 的设计目标是提供极佳的 Rust 编程体验,使 MCP 服务器开发变得简单而高效。
View on GitHub

Overview

基本能力

产品定位

kuri 是一个用于构建 MCP 服务器的 Rust 框架,旨在简化 MCP 服务器的开发过程,提供高性能和可靠性。

核心功能

  1. 工具和提示定义:通过简单的 Rust 函数定义工具和提示,支持异步操作。
  2. 类型安全:利用 Rust 的强类型系统确保代码的正确性。
  3. 中间件支持:基于 tower 生态系统的中间件,支持超时、跟踪、错误处理等功能。
  4. 协议支持:支持 MCP 核心生命周期、工具和提示功能,未来计划支持 HTTP 传输和更多可选特性。

适用场景

  1. 开发 MCP 服务器:为 LLM 提供自定义工具和提示。
  2. 高性能服务:利用 Rust 的性能优势构建可靠的 MCP 服务器。
  3. 中间件集成:需要复用 tower 生态系统中的中间件和工具的场景。

工具列表

  1. calculator:执行基本算术运算的工具。
  2. summarise_text:生成文本摘要提示的工具。

常见问题解答

  1. 如何定义工具和提示?:通过 #[tool]#[prompt] 宏定义工具和提示,并描述其功能和参数。
  2. 如何注册工具和提示?:使用 MCPServiceBuilder 注册工具和提示,然后构建服务。
  3. 支持的传输方式?:目前支持 stdin/stdout 传输,未来计划支持 HTTP 传输。

使用教程

使用依赖

Cargo.toml 中添加以下依赖:

[dependencies]
kuri = "0.1"
async-trait = "0.1"
schemars = "0.8"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tokio = { version = "1", features = ["full"] }

安装教程

  1. 创建一个新的 Rust 项目:
cargo new my_mcp_server
cd my_mcp_server
  1. 编辑 Cargo.toml 文件,添加上述依赖。
  2. 编写工具和提示的定义代码(参考示例代码)。
  3. 构建并运行项目:
cargo run

调试方式

  1. 使用 tokio 的调试工具跟踪异步操作。
  2. 通过日志中间件记录请求和响应。
  3. 使用 cargo test 运行单元测试。

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。