1pub mod content;
53pub mod logging;
54#[cfg(feature = "macros")]
55pub mod macros;
56pub mod managers;
57pub mod protocol;
58pub mod registry;
59pub mod server;
60pub mod transport;
61pub mod utils;
62
63pub mod prelude {
65 pub use crate::protocol::capabilities::{ClientCapabilities, ServerCapabilities};
67 pub use crate::protocol::types::{
68 JsonRpcError, JsonRpcRequest, JsonRpcResponse, ToolAnnotations,
69 };
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::{ServerBuilder, server};
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 DEFAULT_PAGE_SIZE, PaginatedResult, base64_decode, base64_encode, byte_to_line_col,
105 collect_files, decode_cursor, encode_cursor, is_safe_path, paginate,
106 };
107
108 pub use crate::transport::traits::{
110 IncomingMessage, JsonRpcNotification, Transport, TransportError, TransportFuture,
111 };
112
113 pub use crate::registry::prompts::{
115 GetPromptResult, Prompt, PromptArgument, PromptError, PromptFuture, PromptInfo,
116 PromptManager,
117 };
118 pub use crate::registry::resources::{
119 Resource, ResourceError, ResourceInfo, ResourceManager, ResourceReadFuture,
120 ResourceRetryConfig, ResourceTemplate, ResourceTemplateInfo,
121 };
122 pub use crate::registry::tools::{
123 Tool, ToolBreakerConfig, ToolError, ToolFuture, ToolHelpers, ToolInfo, ToolLifecycleState,
124 ToolOutput, ToolPolicy, ToolRegistry,
125 };
126
127 pub use crate::server::middleware::{RateLimiter, RateLimiterConfig};
129
130 pub use crate::logging::{LogLevel, LoggerConfig, McpLogger, send_log_notification};
132
133 pub use crate::managers::cancellation::{CancellationManager, CancellationToken};
135 pub use crate::managers::completion::{
136 CompletionError, CompletionFuture, CompletionManager, CompletionProvider,
137 };
138 pub use crate::managers::progress::{ProgressToken, ProgressTracker};
139 pub use crate::managers::subscription::SubscriptionManager;
140 pub use crate::managers::task::{TaskError, TaskStore};
141
142 #[cfg(feature = "stdio")]
146 pub use crate::transport::stdio::StdioTransport;
147
148 #[cfg(feature = "http")]
150 pub use crate::transport::http::{HttpTransport, HttpTransportConfig, HttpTransportError};
151
152 #[cfg(feature = "macros")]
154 pub use crate::registry::router::{
155 McpPromptRouter, McpResourceRouter, McpResourceTemplateRouter, McpRouter, McpToolRouter,
156 prompt_info, prompt_info_with_args, tool_info, tool_info_with_output,
157 };
158
159 #[cfg(feature = "macros")]
161 pub use crate::macros::{
162 Ctx, FromExecutionContext, IntoToolResult, Parameters, PromptResult, ResourceResult,
163 ToolResult, assistant_image_message, assistant_message, blob_resource, prompt_messages,
164 prompt_with_description, schema_for, structured, text_resource, text_resource_with_mime,
165 user_image_message, user_message,
166 };
167
168 #[cfg(feature = "macros")]
170 pub use mcp_host_macros::{
171 mcp_prompt, mcp_resource, mcp_resource_template, mcp_router, mcp_tool,
172 };
173}