Skip to main content

Crate turbomcp_grpc

Crate turbomcp_grpc 

Source
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;server
pub use client::McpGrpcClient;client
pub use layer::McpGrpcLayer;

Modules§

clientclient
gRPC client implementation for MCP
convert
Type conversion utilities between MCP and proto types
error
Error types for gRPC transport
layer
Tower Layer integration for gRPC transport
proto
Generated protobuf types for MCP
serverserver
gRPC server implementation for MCP