Expand description
TurboMCP gRPC Transport
High-performance gRPC transport for the Model Context Protocol (MCP). Built on tonic for async/await support and full HTTP/2 capabilities.
§Features
- Server: gRPC server implementation with streaming notifications
- Client: gRPC client with automatic reconnection
- Tower Integration: Composable middleware via Tower
- TLS: Optional TLS 1.3 support via rustls
§Quick Start
§Server
ⓘ
use turbomcp_grpc::server::McpGrpcServer;
use turbomcp_types::Tool;
let server = McpGrpcServer::builder()
.add_tool(Tool { name: "hello".into(), ..Default::default() })
// .tool_handler(MyHandler) // implements ToolHandler
.build();
tonic::transport::Server::builder()
.add_service(server.into_service())
.serve("[::1]:50051".parse()?)
.await?;§Client
ⓘ
use turbomcp_grpc::client::McpGrpcClient;
let mut client = McpGrpcClient::connect("http://[::1]:50051").await?;
client.initialize().await?;
let result = client
.call_tool("hello", Some(serde_json::json!({"name": "World"})))
.await?;Re-exports§
pub use error::GrpcError;pub use error::GrpcResult;pub use server::McpGrpcServer;serverpub use client::McpGrpcClient;clientpub use layer::McpGrpcLayer;