Rust Mcp Sdk

Rust Mcp Sdk

🚀 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 消息类型:requestnotificationerror。尽管仍然在这些方法中提供类型安全的对象,但它允许你根据消息的类型和参数确定如何处理每条消息。 参考 examples/hello-world-mcp-server-core/src/handler.rs 查看示例。

⚠️ 重要提示

根据你选择 mcp_server_handlermcp_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

📚 详细文档

提交代码

  1. 克隆仓库

    git clone https://github.com/rust-mcp-sdk/rust-mcp-sdk.git
    cd rust-mcp-sdk
    
  2. 创建功能分支

    git checkout -b feature/my_new_feature
    
  3. 编写代码并测试

    • src/ 目录下添加新文件或修改现有文件。
    • examples/ 目录下添加示例项目(如果需要)。
    • 运行测试套件:cargo test
  4. 提交更改

    git add .
    git commit -m "feat: 添加新的功能"
    
  5. 创建拉取请求

    • 转到 GitHub 仓库
    • 点击“Pull Request”按钮
    • 填写 PR 描述并提交

提交规范

遵循以下提交规范:

  1. 类型

    • feat: 新功能的添加
    • fix: 修复问题
    • refactor: 代码重构
    • test: 添加测试用例
    • doc: 更新文档
  2. 描述:简明扼要地说明提交的内容。

  3. 范围:使用作用域,例如:

    • mcp-sdk: 核心库的更改
    • examples: 示例项目的更改
    • docs: 文档的更改
  4. 格式示例

    feat(mcp-sdk): 添加新的服务器端点支持
    fix(doc): 修复文档中的拼写错误
    

贡献代码

  • 提交代码时,请遵循提交规范。
  • 为你的功能添加测试用例。
  • 更新文档以反映你的更改。

📄 许可证

rust-mcp-sdk 是根据 MIT 许可证发布的。查看 LICENSE 文件获取详细信息。

  • 0 关注
  • 0 收藏,33 浏览
  • system 提出于 2025-10-03 12:39

相似服务问题

相关AI产品