1pub mod protocol;
8pub mod content;
9pub mod server;
10pub mod managers;
11pub mod registry;
12pub mod transport;
13pub mod logging;
14pub mod utils;
15
16pub mod prelude {
18 pub use crate::protocol::types::{JsonRpcRequest, JsonRpcResponse, JsonRpcError};
20 pub use crate::protocol::capabilities::{ServerCapabilities, ClientCapabilities};
21
22 pub use crate::content::types::{Content, TextContent, ImageContent, AudioContent, ResourceLink};
24 pub use crate::content::resource::ResourceContent;
25 pub use crate::content::annotations::Annotations;
26 pub use crate::content::builder::{text, image, audio, resource};
27
28 pub use crate::server::core::Server;
30 pub use crate::server::builder::{ServerBuilder, server};
31 pub use crate::server::session::Session;
32 pub use crate::server::visibility::{ExecutionContext, VisibilityContext, Environment, SimpleEnvironment};
33 pub use crate::server::profile::SessionProfile;
34 pub use crate::server::multiplexer::{
35 ClientRequester, RequestMultiplexer, MultiplexerError, JsonRpcClientRequest,
36 Root, ListRootsResult,
37 SamplingMessage, SamplingContent, ModelPreferences, ModelHint,
38 CreateMessageParams, CreateMessageResult,
39 };
40
41 pub use crate::registry::tools::{Tool, ToolRegistry, ToolInfo, ToolError, ToolBreakerConfig, ToolHelpers};
43 pub use crate::registry::resources::{Resource, ResourceTemplate, ResourceManager, ResourceInfo, ResourceTemplateInfo, ResourceError, ResourceRetryConfig};
44 pub use crate::registry::prompts::{Prompt, PromptManager, PromptInfo, PromptArgument, PromptError, GetPromptResult};
45
46 pub use crate::content::prompt::{PromptMessage, PromptRole, PromptContent};
48
49 pub use crate::server::middleware::{RateLimiter, RateLimiterConfig};
51
52 pub use crate::logging::{LogLevel, McpLogger, LoggerConfig, send_log_notification};
54
55 pub use crate::managers::progress::{ProgressTracker, ProgressToken};
57
58 pub use crate::utils::{collect_files, byte_to_line_col, is_safe_path, base64_encode, base64_decode};
60
61 pub use crate::transport::traits::{Transport, TransportError, JsonRpcNotification, IncomingMessage};
63
64 #[cfg(feature = "stdio")]
65 pub use crate::transport::stdio::StdioTransport;
66
67 #[cfg(feature = "http")]
68 pub use crate::transport::http::{HttpTransport, HttpTransportConfig, HttpTransportError};
69}