modelcontextprotocol_server/transport/
mod.rs1pub mod stdio;
3
4use async_trait::async_trait;
5use anyhow::Result;
6use mcp_protocol::messages::JsonRpcMessage;
7use tokio::sync::mpsc;
8
9#[async_trait]
11pub trait Transport: Send + Sync + 'static {
12 async fn start(&self, message_tx: mpsc::Sender<JsonRpcMessage>) -> Result<()>;
14
15 async fn send(&self, message: JsonRpcMessage) -> Result<()>;
17
18 async fn close(&self) -> Result<()>;
20
21 fn box_clone(&self) -> Box<dyn Transport>;
23}
24
25pub use stdio::StdioTransport;