mcp-rust-sdk

Rust SDK for the Model Context Protocol (MCP)

GitHubスター

133

ユーザー評価

未評価

お気に入り

0

閲覧数

1

フォーク

15

イシュー

2

README
⚠️ ⚠️ ⚠️ Please use the offical MCP Rust SDK
Model Context Protocol (MCP) Rust SDK

⚠️ Warning: This SDK is currently a work in progress and is not ready for production use.

A Rust implementation of the Model Context Protocol (MCP), designed for seamless communication between AI models and their runtime environments.

Rust CI/CD
crates.io
Documentation

Features
  • 🚀 Full implementation of MCP protocol specification
  • 🔄 Multiple transport layers (WebSocket, stdio)
  • ⚡ Async/await support using Tokio
  • 🛡️ Type-safe message handling
  • 🔍 Comprehensive error handling
  • 📦 Zero-copy serialization/deserialization
Installation

Add this to your Cargo.toml:

[dependencies]
mcp_rust_sdk = "0.1.0"
Quick Start
Client Example
use mcp_rust_sdk::{Client, transport::WebSocketTransport};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create a WebSocket transport
    let transport = WebSocketTransport::new("ws://localhost:8080").await?;
    
    // Create and connect the client
    let client = Client::new(transport);
    client.connect().await?;
    
    // Make requests
    let response = client.request("method_name", Some(params)).await?;
    
    Ok(())
}
Server Example
use mcp_rust_sdk::{Server, transport::StdioTransport};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create a stdio transport
    let (transport, _) = StdioTransport::new();
    
    // Create and start the server
    let server = Server::new(transport);
    server.start().await?;
    
    Ok(())
}
Transport Layers

The SDK supports multiple transport layers:

WebSocket Transport
  • Ideal for network-based communication
  • Supports both secure (WSS) and standard (WS) connections
  • Built-in reconnection handling
stdio Transport
  • Perfect for local process communication
  • Lightweight and efficient
  • Great for command-line tools and local development
Error Handling

The SDK provides comprehensive error handling through the Error type:

use mcp_rust_sdk::Error;

match result {
    Ok(value) => println!("Success: {:?}", value),
    Err(Error::Protocol(code, msg)) => println!("Protocol error {}: {}", code, msg),
    Err(Error::Transport(e)) => println!("Transport error: {}", e),
    Err(e) => println!("Other error: {}", e),
}
License

This project is licensed under the MIT License - see the LICENSE file for details.

作者情報
Derek Wang
Bite IncUnited States

21

フォロワー

57

リポジトリ

6

Gist

0

貢献数

関連するMCP
mcp-sdk logo

Minimalistic Rust Implementation Of Model Context Protocol from Anthropic

Rust
mcp-google-workspace logo

A Model Context Protocol (MCP) server built in Rust for interacting with Google Drive and Google Sheets.

Rust
lisply-mcp logo

Model Context Protocol (MCP) server to manage and talk to compliant "Lisply" lisp-speaking backend services

JavaScript