基本能力
产品定位
mcp-sdk-rs 是一个用于 AI 模型与运行时环境通信的 Rust SDK,支持多种传输层和异步操作。
核心功能
- 🚀 完整的 MCP 协议规范实现
- 🔄 多种传输层支持(WebSocket、stdio)
- ⚡ 使用 Tokio 的异步/等待支持
- 🛡️ 类型安全的消息处理
- 🔍 全面的错误处理
- 📦 零拷贝序列化/反序列化
适用场景
- 网络通信(WebSocket)
- 本地进程通信(stdio)
- 命令行工具和本地开发
工具列表
- WebSocketTransport: 用于网络通信,支持安全(WSS)和标准(WS)连接,内置重连处理。
- StdioTransport: 用于本地进程通信,轻量级且高效。
常见问题解答
- Q: 该 SDK 是否可用于生产环境?
A: 目前该 SDK 处于开发阶段,不建议在生产环境中使用。
使用教程
使用依赖
确保已安装 Rust 和 Cargo。
安装教程
在 Cargo.toml
中添加以下依赖:
toml
[dependencies]
mcp_sdk_rs = "0.1.0"
调试方式
客户端示例
```rust
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?
}
```
服务器示例
```rust
use mcp_sdk_rs::{Server, transport::StdioTransport};
[tokio::main]
async fn main() -> Result<(), Box
let (transport, _) = StdioTransport::new();
let server = Server::new(transport);
server.start().await?;
Ok(())
}
```