#![deny(missing_docs)]
#![warn(missing_debug_implementations)]
#![warn(clippy::all)]
#![allow(
clippy::module_name_repetitions,
clippy::must_use_candidate,
clippy::return_self_not_must_use,
clippy::struct_excessive_bools,
clippy::default_trait_access
)]
mod builder;
mod composite;
mod config;
mod context;
mod handler;
pub mod middleware;
mod router;
mod visibility;
pub mod transport;
pub use visibility::{VisibilityLayer, VisibilitySessionGuard};
pub use composite::CompositeHandler;
pub use middleware::{McpMiddleware, MiddlewareStack, Next};
pub use builder::{McpServerExt, ServerBuilder, Transport};
pub use config::{
CapabilityValidation, ClientCapabilities, ConfigValidationError, ConnectionCounter,
ConnectionGuard, ConnectionLimits, OriginValidationConfig, ProtocolConfig, ProtocolVersion,
RateLimitConfig, RateLimiter, RequiredCapabilities, SUPPORTED_PROTOCOL_VERSIONS, ServerConfig,
ServerConfigBuilder,
};
pub use context::{RequestContext, TransportType};
pub use handler::McpHandlerExt;
pub use router::{
JsonRpcIncoming, JsonRpcOutgoing, apply_adapter_to_response, parse_request, route_request,
route_request_versioned, route_request_with_config, serialize_response,
};
pub use turbomcp_core::handler::McpHandler;
#[doc(hidden)]
pub mod __macro_support {
pub use schemars;
pub use serde_json;
pub use tokio;
pub use tracing;
pub use uuid;
pub use turbomcp_core;
pub use turbomcp_protocol;
pub use turbomcp_types;
}
pub mod prelude {
pub use super::{
CompositeHandler, McpHandler, McpHandlerExt, McpMiddleware, McpServerExt, MiddlewareStack,
VisibilityLayer, VisibilitySessionGuard,
};
pub use super::{ServerBuilder, Transport};
pub use super::{RequestContext, TransportType};
pub use super::{
ConnectionLimits, OriginValidationConfig, ProtocolConfig, RateLimitConfig, RateLimiter,
RequiredCapabilities, ServerConfig, ServerConfigBuilder,
};
pub use turbomcp_core::error::{McpError, McpResult};
pub use turbomcp_types::{
IntoPromptResult,
IntoResourceResult,
IntoToolResult,
Message,
Prompt,
PromptArgument,
PromptResult,
Resource,
ResourceContents,
ResourceResult,
ServerInfo,
Tool,
ToolInputSchema,
ToolResult,
};
}