1pub mod content;
55pub mod logging;
56#[cfg(feature = "macros")]
57pub mod macros;
58pub mod managers;
59pub mod protocol;
60pub mod registry;
61pub mod server;
62pub mod transport;
63pub mod utils;
64
65pub mod prelude {
67 pub use crate::protocol::capabilities::{ClientCapabilities, ServerCapabilities};
69 pub use crate::protocol::types::{
70 JsonRpcError, JsonRpcRequest, JsonRpcResponse, ToolAnnotations,
71 };
72
73 pub use crate::content::annotations::Annotations;
75 pub use crate::content::builder::{audio, image, resource, text};
76 pub use crate::content::resource::ResourceContent;
77 pub use crate::content::types::{
78 AudioContent, Content, ImageContent, ResourceLink, TextContent,
79 };
80
81 pub use crate::server::builder::{server, ServerBuilder};
83 pub use crate::server::core::Server;
84 pub use crate::server::multiplexer::{
85 ClientRequester, CreateMessageParams, CreateMessageResult, JsonRpcClientRequest,
86 ListRootsResult, ModelHint, ModelPreferences, MultiplexerError, RequestMultiplexer, Root,
87 SamplingContent, SamplingMessage,
88 };
89 pub use crate::server::profile::SessionProfile;
90 pub use crate::server::session::Session;
91 pub use crate::server::visibility::{
92 Environment, ExecutionContext, SimpleEnvironment, VisibilityContext,
93 };
94
95 pub use crate::content::prompt::{PromptContent, PromptMessage, PromptRole};
97
98 pub use crate::protocol::types::{
100 CompleteRequest, CompleteResult, CompletionArgument, CompletionInfo, CompletionRef,
101 CompletionValue,
102 };
103
104 pub use crate::utils::{
106 base64_decode, base64_encode, byte_to_line_col, collect_files, decode_cursor,
107 encode_cursor, is_safe_path, paginate, PaginatedResult, DEFAULT_PAGE_SIZE,
108 };
109
110 pub use crate::transport::traits::{
112 IncomingMessage, JsonRpcNotification, Transport, TransportError,
113 };
114
115 pub use crate::registry::prompts::{
117 GetPromptResult, Prompt, PromptArgument, PromptError, PromptInfo, PromptManager,
118 };
119 pub use crate::registry::resources::{
120 Resource, ResourceError, ResourceInfo, ResourceManager, ResourceRetryConfig,
121 ResourceTemplate, ResourceTemplateInfo,
122 };
123 pub use crate::registry::tools::{
124 Tool, ToolBreakerConfig, ToolError, ToolHelpers, ToolInfo, ToolOutput, ToolRegistry,
125 };
126
127 pub use crate::server::middleware::{RateLimiter, RateLimiterConfig};
129
130 pub use crate::logging::{send_log_notification, LogLevel, LoggerConfig, McpLogger};
132
133 pub use crate::managers::cancellation::{CancellationManager, CancellationToken};
135 pub use crate::managers::completion::{CompletionError, CompletionManager, CompletionProvider};
136 pub use crate::managers::progress::{ProgressToken, ProgressTracker};
137 pub use crate::managers::subscription::SubscriptionManager;
138 pub use crate::managers::task::{TaskError, TaskStore};
139
140 #[cfg(feature = "stdio")]
144 pub use crate::transport::stdio::StdioTransport;
145
146 #[cfg(feature = "http")]
148 pub use crate::transport::http::{HttpTransport, HttpTransportConfig, HttpTransportError};
149
150 #[cfg(feature = "macros")]
152 pub use crate::registry::router::{tool_info, tool_info_with_output, McpToolRouter};
153
154 #[cfg(feature = "macros")]
156 pub use crate::macros::{
157 schema_for, structured, Ctx, IntoToolResult, Parameters, ToolResult,
158 };
159
160 #[cfg(feature = "macros")]
162 pub use mcp_host_macros::{mcp_tool, mcp_tool_router};
163}