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::{JsonRpcError, JsonRpcRequest, JsonRpcResponse};
70
71 pub use crate::content::annotations::Annotations;
73 pub use crate::content::builder::{audio, image, resource, text};
74 pub use crate::content::resource::ResourceContent;
75 pub use crate::content::types::{
76 AudioContent, Content, ImageContent, ResourceLink, TextContent,
77 };
78
79 pub use crate::server::builder::{server, ServerBuilder};
81 pub use crate::server::core::Server;
82 pub use crate::server::multiplexer::{
83 ClientRequester, CreateMessageParams, CreateMessageResult, JsonRpcClientRequest,
84 ListRootsResult, ModelHint, ModelPreferences, MultiplexerError, RequestMultiplexer, Root,
85 SamplingContent, SamplingMessage,
86 };
87 pub use crate::server::profile::SessionProfile;
88 pub use crate::server::session::Session;
89 pub use crate::server::visibility::{
90 Environment, ExecutionContext, SimpleEnvironment, VisibilityContext,
91 };
92
93 pub use crate::content::prompt::{PromptContent, PromptMessage, PromptRole};
95
96 pub use crate::protocol::types::{
98 CompleteRequest, CompleteResult, CompletionArgument, CompletionInfo, CompletionRef,
99 CompletionValue,
100 };
101
102 pub use crate::utils::{
104 base64_decode, base64_encode, byte_to_line_col, collect_files, is_safe_path,
105 };
106
107 pub use crate::transport::traits::{
109 IncomingMessage, JsonRpcNotification, Transport, TransportError,
110 };
111
112 pub use crate::registry::prompts::{
114 GetPromptResult, Prompt, PromptArgument, PromptError, PromptInfo, PromptManager,
115 };
116 pub use crate::registry::resources::{
117 Resource, ResourceError, ResourceInfo, ResourceManager, ResourceRetryConfig,
118 ResourceTemplate, ResourceTemplateInfo,
119 };
120 pub use crate::registry::tools::{
121 Tool, ToolBreakerConfig, ToolError, ToolHelpers, ToolInfo, ToolRegistry,
122 };
123
124 pub use crate::server::middleware::{RateLimiter, RateLimiterConfig};
126
127 pub use crate::logging::{send_log_notification, LogLevel, LoggerConfig, McpLogger};
129
130 pub use crate::managers::cancellation::{CancellationManager, CancellationToken};
132 pub use crate::managers::completion::{CompletionError, CompletionManager, CompletionProvider};
133 pub use crate::managers::progress::{ProgressToken, ProgressTracker};
134 pub use crate::managers::subscription::SubscriptionManager;
135 pub use crate::managers::task::{TaskError, TaskStore};
136
137 #[cfg(feature = "stdio")]
141 pub use crate::transport::stdio::StdioTransport;
142
143 #[cfg(feature = "http")]
145 pub use crate::transport::http::{HttpTransport, HttpTransportConfig, HttpTransportError};
146
147 #[cfg(feature = "macros")]
149 pub use crate::registry::router::{tool_info, McpToolRouter};
150
151 #[cfg(feature = "macros")]
153 pub use crate::macros::{schema_for, Ctx, IntoToolResult, Parameters, ToolResult};
154
155 #[cfg(feature = "macros")]
157 pub use mcp_host_macros::{mcp_tool, mcp_tool_router};
158}