turul_http_mcp_server/
lib.rs1pub mod cors;
18pub mod handler;
19pub mod json_rpc_responses;
20pub mod mcp_session;
21pub mod notification_bridge;
22pub mod protocol;
23pub mod server;
24pub mod session_handler;
25pub mod sse;
26pub mod stream_manager;
27pub mod streamable_http;
28
29#[cfg(test)]
30mod tests;
31
32pub use cors::CorsLayer;
34pub use handler::McpHttpHandler;
35pub use notification_bridge::{
36 BroadcastError, NotificationBroadcaster, SharedNotificationBroadcaster,
37 StreamManagerNotificationBroadcaster,
38};
39pub use protocol::{
40 extract_last_event_id, extract_protocol_version, extract_session_id, McpProtocolVersion,
41};
42pub use server::{HttpMcpServer, HttpMcpServerBuilder, ServerConfig, ServerStats};
43pub use session_handler::{SessionMcpHandler, SessionSseStream};
44pub use stream_manager::{StreamConfig, StreamError, StreamManager, StreamStats};
45pub use streamable_http::{StreamableHttpContext, StreamableHttpHandler};
46
47pub use turul_mcp_json_rpc_server::{JsonRpcDispatcher, JsonRpcHandler};
49pub use turul_mcp_protocol::*;
50
51pub type Result<T> = std::result::Result<T, HttpMcpError>;
53
54#[derive(Debug, thiserror::Error)]
56pub enum HttpMcpError {
57 #[error("HTTP error: {0}")]
58 Http(#[from] hyper::Error),
59
60 #[error("JSON-RPC error: {0}")]
61 JsonRpc(#[from] turul_mcp_json_rpc_server::JsonRpcError),
62
63 #[error("MCP protocol error: {0}")]
64 Mcp(#[from] turul_mcp_protocol::McpError),
65
66 #[error("Serialization error: {0}")]
67 Serialization(#[from] serde_json::Error),
68
69 #[error("IO error: {0}")]
70 Io(#[from] std::io::Error),
71
72 #[error("Invalid request: {0}")]
73 InvalidRequest(String),
74}