#![cfg_attr(docsrs, feature(doc_cfg))]
#![deny(missing_docs)]
#![warn(clippy::all)]
#![allow(
clippy::module_name_repetitions,
clippy::must_use_candidate,
clippy::return_self_not_must_use,
clippy::struct_excessive_bools,
clippy::missing_panics_doc,
clippy::missing_errors_doc,
clippy::default_trait_access,
clippy::missing_const_for_fn,
clippy::use_self,
clippy::uninlined_format_args
)]
pub mod testing;
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const CRATE_NAME: &str = env!("CARGO_PKG_NAME");
pub use turbomcp_macros::{description, prompt, resource, server, tool};
pub use turbomcp_core::context::RequestContext;
pub use turbomcp_core::error::{McpError, McpResult};
pub use turbomcp_core::handler::McpHandler;
pub use turbomcp_types::{
IntoPromptResult, IntoResourceResult, IntoToolResult, Message, Prompt, PromptArgument,
PromptResult, Resource, ResourceContents, ResourceLink, ResourceResult, Role, SamplingContent,
SamplingContentBlock, ServerInfo, Tool, ToolInputSchema, ToolResult,
};
pub use turbomcp_server::McpHandlerExt;
pub use turbomcp_server::McpServerExt;
pub use turbomcp_server::ServerBuilder;
pub use turbomcp_server::ProtocolConfig;
pub use turbomcp_server::ServerConfig;
pub use turbomcp_server::ServerConfigBuilder;
pub use turbomcp_server::Transport;
pub use turbomcp_protocol::CallToolRequest;
pub use turbomcp_protocol::CallToolResult;
pub use turbomcp_protocol::ClientCapabilities;
pub use turbomcp_protocol::Image;
pub use turbomcp_protocol::InitializeRequest;
pub use turbomcp_protocol::InitializeResult;
pub use turbomcp_protocol::IntoToolError;
pub use turbomcp_protocol::IntoToolResponse;
pub use turbomcp_protocol::Json;
pub use turbomcp_protocol::JsonRpcError;
pub use turbomcp_protocol::JsonRpcNotification;
pub use turbomcp_protocol::JsonRpcRequest;
pub use turbomcp_protocol::JsonRpcResponse;
pub use turbomcp_protocol::MessageId;
pub use turbomcp_protocol::ServerCapabilities;
pub use turbomcp_protocol::Text;
pub use turbomcp_protocol::ToolError;
#[cfg(feature = "auth")]
pub use turbomcp_auth as auth;
#[cfg(feature = "dpop")]
pub use turbomcp_dpop as dpop;
#[cfg(feature = "telemetry")]
pub use turbomcp_telemetry as telemetry;
#[cfg(feature = "client-integration")]
pub use turbomcp_client;
#[doc(hidden)]
pub mod __macro_support {
#[cfg(feature = "http")]
pub use axum;
pub use schemars;
pub use serde_json;
pub use tokio;
pub use tower;
pub use tracing;
pub use uuid;
pub use turbomcp_core;
pub use turbomcp_protocol;
pub use turbomcp_server;
pub use turbomcp_transport;
pub use turbomcp_types;
}
pub mod prelude {
pub use super::{description, prompt, resource, server, tool};
pub use super::{CRATE_NAME, VERSION};
pub use super::{
McpError, McpHandler, McpHandlerExt, McpResult, McpServerExt, ProtocolConfig,
ServerBuilder, ServerConfig, ServerConfigBuilder, Transport,
};
pub use super::{
IntoPromptResult, IntoResourceResult, IntoToolResult, PromptResult, ResourceResult,
ToolResult,
};
pub use super::{
CallToolRequest, CallToolResult, Message, Prompt, PromptArgument, RequestContext, Resource,
ResourceContents, Role, ServerInfo, Tool, ToolInputSchema,
};
pub use super::{Image, IntoToolError, IntoToolResponse, Json, Text, ToolError};
pub use serde::{Deserialize, Serialize};
pub use serde_json;
#[cfg(feature = "http")]
#[cfg_attr(docsrs, doc(cfg(feature = "http")))]
pub use turbomcp_transport::streamable_http::{
StreamableHttpConfig, StreamableHttpConfigBuilder,
};
#[cfg(feature = "http")]
#[cfg_attr(docsrs, doc(cfg(feature = "http")))]
pub use turbomcp_transport::streamable_http_client::{
RetryPolicy, StreamableHttpClientConfig, StreamableHttpClientTransport,
};
#[cfg(feature = "websocket")]
#[cfg_attr(docsrs, doc(cfg(feature = "websocket")))]
pub use turbomcp_transport::websocket_bidirectional::{
WebSocketBidirectionalConfig, WebSocketBidirectionalTransport,
};
#[cfg(feature = "tcp")]
#[cfg_attr(docsrs, doc(cfg(feature = "tcp")))]
pub use turbomcp_transport::tcp::{TcpTransport, TcpTransportBuilder};
#[cfg(all(unix, feature = "unix"))]
#[cfg_attr(docsrs, doc(cfg(all(unix, feature = "unix"))))]
pub use turbomcp_transport::unix::{UnixTransport, UnixTransportBuilder};
#[cfg(feature = "telemetry")]
#[cfg_attr(docsrs, doc(cfg(feature = "telemetry")))]
pub use turbomcp_telemetry::{TelemetryConfig, TelemetryConfigBuilder, TelemetryGuard};
#[cfg(feature = "client-integration")]
#[cfg_attr(docsrs, doc(cfg(feature = "client-integration")))]
pub use turbomcp_client::{Client, ClientBuilder, ClientCapabilities};
pub use crate::testing::{McpTestClient, McpToolResultAssertions, ToolResultAssertions};
}