README
🚀 Rust-MCP-SDK 文档
rust-mcp-sdk 是一个用于构建和管理 MCP(机器学习平台)服务的 Rust 库。它提供了服务器端和客户端的功能模块,还支持通过宏简化工具结构的创建和操作,能有效提升开发效率。
🚀 快速开始
当你将 rust-mcp-sdk 作为依赖项包含在项目中时,默认情况下会启用所有功能:
[dependencies]
rust-mcp-sdk = "0.2.0"
✨ 主要特性
可用功能
- server:激活 MCP 服务器功能,提供构建和管理 MCP 服务所需的模块和 API。
- client:激活 MCP 客户端功能,提供与 MCP 服务器通信的模块和 API。
- macros:提供用于简化 MCP 工具结构创建和操作的程序化宏。
默认行为
所有功能(server、client 和 macros)默认启用。
功能选择
只使用 server 功能
如果你只需要 MCP 服务器的功能,可以禁用默认功能并显式启用 server 特性。将以下内容添加到 Cargo.toml:
[dependencies]
rust-mcp-sdk = { version = "0.2.0", default-features = false, features = ["server","macros"] }
只使用 client 功能
如果你只需要 MCP 客户端的功能,可以禁用默认功能并显式启用 client 特性。将以下内容添加到 Cargo.toml:
[dependencies]
rust-mcp-sdk = { version = "0.2.0", default-features = false, features = ["client"] }
处理程序 trait 选择
rust-mcp-sdk 提供两种类型的处理程序 trait,用于处理 MCP 消息:
- mcp_server_handler:这是推荐的 trait,用于你的 MCP 项目。它提供对所有类型 MCP 消息的默认实现,例如处理初始化或响应心跳请求。你只需要重写和自定义与特定需求相关的 handler 函数。 参考 examples/hello-world-mcp-server/src/handler.rs 查看示例。
- mcp_server_handler_core:如果你需要对 MCP 消息有更多控制,可以考虑使用
mcp_server_handler_core。它提供三种主要方法来处理三种 MCP 消息类型:request、notification和error。尽管仍然在这些方法中提供类型安全的对象,但它允许你根据消息的类型和参数确定如何处理每条消息。 参考 examples/hello-world-mcp-server-core/src/handler.rs 查看示例。
⚠️ 重要提示
根据你选择
mcp_server_handler或mcp_server_handler_core,你需要使用相应的server_runtime::create_server()或server_runtime_core::create_server()方法。
客户端处理程序选择
- mcp_client_handler:推荐的 trait,提供对所有类型 MCP 客户端消息的默认实现。
- mcp_client_handler_core:如果你需要更多控制,可以使用此核心版本。
💻 使用示例
基础用法
服务器端示例
use mcp_sdk::server::{McpServer, McpMessage};
#[derive(Debug)]
struct MyServerHandler {
// 自定义状态或属性
}
impl McpServer for MyServerHandler {
fn handle_message(&mut self, message: &McpMessage) -> Result<(), Box<dyn Error>> {
// 处理消息的逻辑
println!("收到消息:{}", message);
Ok(())
}
}
客户端示例
use mcp_sdk::client::{McpClient, McpMessage};
#[derive(Debug)]
struct MyClientHandler {
// 自定义状态或属性
}
impl McpClient for MyClientHandler {
fn handle_response(&mut self, response: &McpMessage) -> Result<(), Box<dyn Error>> {
// 处理响应的逻辑
println!("收到响应:{}", response);
Ok(())
}
}
📦 安装指南
安装依赖
确保你已经安装了以下工具:
- Rust 编译器:
rustup install - 包管理器:
cargo install cargo-edit
添加依赖到 Cargo.toml
在你的项目中添加 rust-mcp-sdk 依赖:
[dependencies]
rust-mcp-sdk = "0.2.0"
运行示例
克隆仓库后,运行以下命令来运行示例项目:
cargo run --example my_example
📚 详细文档
提交代码
-
克隆仓库:
git clone https://github.com/rust-mcp-sdk/rust-mcp-sdk.git cd rust-mcp-sdk -
创建功能分支:
git checkout -b feature/my_new_feature -
编写代码并测试:
- 在
src/目录下添加新文件或修改现有文件。 - 在
examples/目录下添加示例项目(如果需要)。 - 运行测试套件:
cargo test
- 在
-
提交更改:
git add . git commit -m "feat: 添加新的功能" -
创建拉取请求:
- 转到 GitHub 仓库
- 点击“Pull Request”按钮
- 填写 PR 描述并提交
提交规范
遵循以下提交规范:
-
类型:
feat: 新功能的添加fix: 修复问题refactor: 代码重构test: 添加测试用例doc: 更新文档
-
描述:简明扼要地说明提交的内容。
-
范围:使用作用域,例如:
mcp-sdk: 核心库的更改examples: 示例项目的更改docs: 文档的更改
-
格式示例:
feat(mcp-sdk): 添加新的服务器端点支持 fix(doc): 修复文档中的拼写错误
贡献代码
- 提交代码时,请遵循提交规范。
- 为你的功能添加测试用例。
- 更新文档以反映你的更改。
📄 许可证
rust-mcp-sdk 是根据 MIT 许可证发布的。查看 LICENSE 文件获取详细信息。
扫码联系在线客服