1pub mod content;
60pub mod logging;
61#[cfg(feature = "macros")]
62pub mod macros;
63pub mod managers;
64pub mod protocol;
65pub mod registry;
66pub mod server;
67pub mod transport;
68pub mod utils;
69
70pub mod prelude {
72 pub use crate::protocol::capabilities::{ClientCapabilities, ServerCapabilities};
74 pub use crate::protocol::types::{
75 JsonRpcError, JsonRpcRequest, JsonRpcResponse, ToolAnnotations,
76 };
77
78 pub use crate::content::annotations::Annotations;
80 pub use crate::content::builder::{audio, image, resource, text};
81 pub use crate::content::resource::ResourceContent;
82 pub use crate::content::types::{
83 AudioContent, Content, ImageContent, ResourceLink, TextContent,
84 };
85
86 pub use crate::server::builder::{ServerBuilder, server};
88 pub use crate::server::core::Server;
89 pub use crate::server::multiplexer::{
90 ClientRequester, CreateMessageParams, CreateMessageResult, JsonRpcClientRequest,
91 ListRootsResult, ModelHint, ModelPreferences, MultiplexerError, RequestMultiplexer, Root,
92 SamplingContent, SamplingMessage,
93 };
94 pub use crate::server::profile::SessionProfile;
95 pub use crate::server::session::Session;
96 pub use crate::server::visibility::{
97 Environment, ExecutionContext, SimpleEnvironment, VisibilityContext,
98 };
99
100 pub use crate::content::prompt::{PromptContent, PromptMessage, PromptRole};
102
103 pub use crate::protocol::types::{
105 CompleteRequest, CompleteResult, CompletionArgument, CompletionInfo, CompletionRef,
106 CompletionValue,
107 };
108
109 pub use crate::utils::{
111 DEFAULT_PAGE_SIZE, PaginatedResult, base64_decode, base64_encode, byte_to_line_col,
112 collect_files, decode_cursor, encode_cursor, is_safe_path, paginate,
113 };
114
115 pub use crate::transport::traits::{
117 IncomingMessage, JsonRpcNotification, Transport, TransportError, TransportFuture,
118 };
119
120 pub use crate::registry::prompts::{
122 GetPromptResult, Prompt, PromptArgument, PromptError, PromptFuture, PromptInfo,
123 PromptManager,
124 };
125 pub use crate::registry::resources::{
126 Resource, ResourceError, ResourceInfo, ResourceManager, ResourceReadFuture,
127 ResourceRetryConfig, ResourceTemplate, ResourceTemplateInfo,
128 };
129 pub use crate::registry::tools::{
130 Tool, ToolBreakerConfig, ToolError, ToolFuture, ToolHelpers, ToolInfo, ToolLifecycleState,
131 ToolOutput, ToolPolicy, ToolRegistry,
132 };
133
134 pub use crate::server::middleware::{RateLimiter, RateLimiterConfig};
136
137 pub use crate::logging::{LogLevel, LoggerConfig, McpLogger, send_log_notification};
139
140 pub use crate::managers::cancellation::{CancellationManager, CancellationToken};
142 pub use crate::managers::completion::{
143 CompletionError, CompletionFuture, CompletionManager, CompletionProvider,
144 };
145 pub use crate::managers::progress::{ProgressToken, ProgressTracker};
146 pub use crate::managers::subscription::SubscriptionManager;
147 pub use crate::managers::task::{TaskError, TaskStore};
148
149 #[cfg(feature = "stdio")]
153 pub use crate::transport::stdio::StdioTransport;
154
155 #[cfg(feature = "http")]
157 pub use crate::transport::http::{HttpTransport, HttpTransportConfig, HttpTransportError};
158
159 #[cfg(feature = "macros")]
161 pub use crate::registry::router::{
162 McpPromptRouter, McpResourceRouter, McpResourceTemplateRouter, McpRouter, McpToolRouter,
163 prompt_info, prompt_info_with_args, tool_info, tool_info_with_output,
164 };
165
166 #[cfg(feature = "macros")]
168 pub use crate::macros::{
169 Ctx, FromExecutionContext, IntoToolResult, Parameters, PromptResult, ResourceResult,
170 ToolResult, assistant_image_message, assistant_message, blob_resource, prompt_messages,
171 prompt_with_description, schema_for, structured, text_resource, text_resource_with_mime,
172 user_image_message, user_message,
173 };
174
175 #[cfg(feature = "macros")]
177 pub use mcp_host_macros::{
178 mcp_prompt, mcp_resource, mcp_resource_template, mcp_router, mcp_tool,
179 };
180}