Model Context Protocol (MCP) Rust SDK

Model Context Protocol (MCP) Rust SDK

site icon
2025.04.10 6
RustAI 模型通信Rust SDK开发效率
mcp-sdk-rs 是一个 Rust 实现的 Model Context Protocol (MCP) SDK,旨在为 AI 模型与其运行时环境之间提供无缝通信。该 SDK 目前处于开发阶段,不建议在生产环境中使用。
View on GitHub

Overview

基本能力

产品定位

mcp-sdk-rs 是一个用于 AI 模型与运行时环境通信的 Rust SDK,支持多种传输层和异步操作。

核心功能

  • 🚀 完整的 MCP 协议规范实现
  • 🔄 多种传输层支持(WebSocket、stdio)
  • ⚡ 使用 Tokio 的异步/等待支持
  • 🛡️ 类型安全的消息处理
  • 🔍 全面的错误处理
  • 📦 零拷贝序列化/反序列化

适用场景

  • 网络通信(WebSocket)
  • 本地进程通信(stdio)
  • 命令行工具和本地开发

工具列表

  • WebSocketTransport: 用于网络通信,支持安全(WSS)和标准(WS)连接,内置重连处理。
  • StdioTransport: 用于本地进程通信,轻量级且高效。

常见问题解答

  • Q: 该 SDK 是否可用于生产环境? A: 目前该 SDK 处于开发阶段,不建议在生产环境中使用。

使用教程

使用依赖

确保已安装 Rust 和 Cargo。

安装教程

Cargo.toml 中添加以下依赖:

[dependencies]
mcp_sdk_rs = "0.1.0"

调试方式

客户端示例

use mcp_sdk_rs::{Client, transport::WebSocketTransport};

#[tokio::main]
async fn main() -> Result<(), Error> {
    let transport = WebSocketTransport::new(self.url.as_str())
        .await
        .map_err(|_| Error::Internal)?;

    let (request_tx, request_rx) = tokio::sync::mpsc::unbounded_channel();
    let (response_tx, response_rx) = tokio::sync::mpsc::unbounded_channel();

    let session = Session::new(Arc::new(transport), response_tx, request_rx, None);
    session.start().await.map_err(|_| Error::Internal)?;

    let client = Client::new(request_tx, response_rx);
    let response = client.request(
        "tools/call",
        Some(json!({
            "name": "methondName",
            "arguments": json!({})
        })),
    )
    .await?
}

服务器示例

use mcp_sdk_rs::{Server, transport::StdioTransport};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let (transport, _) = StdioTransport::new();

    let server = Server::new(transport);
    server.start().await?;

    Ok(())
}

许可证

该项目遵循 MIT 开源许可条款。