1pub mod error;
36pub mod protocol;
37pub mod types;
38
39#[cfg(feature = "server")]
42pub mod server;
43
44#[cfg(any(feature = "stdio", feature = "sse"))]
47pub mod transport;
48
49pub use error::{ErrorCode, ErrorData, McpError, McpResult};
52
53pub use protocol::{
54 JsonRpcError, JsonRpcMessage, JsonRpcNotification, JsonRpcRequest, JsonRpcResponse,
55 ProgressToken, RequestId, JSONRPC_VERSION, MCP_PROTOCOL_VERSION,
56};
57
58pub use types::{
59 content::{
60 AudioContent, BlobResourceContents, Content, EmbeddedResource, ImageContent,
61 ResourceContents, TextContent, TextResourceContents,
62 },
63 messages::{
64 CallToolRequest, GetPromptRequest, GetPromptResult, InitializeRequest, InitializeResult,
65 ListPromptsResult, ListResourcesResult, ListToolsResult, ReadResourceRequest,
66 ReadResourceResult,
67 },
68 prompt::{Prompt, PromptArgument, PromptMessage, PromptMessageRole},
69 resource::{Resource, ResourceTemplate},
70 sampling::{CreateMessageRequest, CreateMessageResult, ModelPreferences, SamplingMessage},
71 tool::{CallToolResult, Tool, ToolAnnotations},
72 ClientCapabilities, ClientInfo, Implementation, LoggingLevel, ServerCapabilities, ServerInfo,
73};
74
75#[cfg(feature = "server")]
76pub use server::{
77 builder::{McpServerBuilder, PromptDef, ResourceDef, ToolDef},
78 core::McpServer,
79 extract::{Extension, Json, State},
80 handler::{IntoToolResult, ToolHandler},
81 session::Session,
82};
83
84#[cfg(feature = "stdio")]
85pub use transport::stdio::{ServeStdioExt, StdioTransport};
86
87#[cfg(feature = "sse")]
88pub use transport::sse::{ServeSseExt, SseTransport};
89
90pub use mcp_kit_macros::{prompt, resource, tool};
92
93pub use schemars::{self, JsonSchema};
95pub use serde::{Deserialize, Serialize};
96pub use serde_json;
97
98#[cfg(feature = "stdio")]
99pub use tokio;
100
101pub mod prelude {
105 pub use crate::{serde_json, Deserialize, JsonSchema, Serialize};
106 pub use crate::{
107 CallToolResult, Content, GetPromptResult, ImageContent, McpError, McpResult, Prompt,
108 PromptArgument, PromptMessage, PromptMessageRole, ReadResourceResult, Resource,
109 ResourceContents, ResourceTemplate, TextContent, Tool, ToolAnnotations,
110 };
111 pub use mcp_kit_macros::tool;
112
113 #[cfg(feature = "server")]
114 pub use crate::{
115 Json, McpServer, McpServerBuilder, PromptDef, ResourceDef, Session, State, ToolDef,
116 };
117
118 #[cfg(feature = "stdio")]
119 pub use crate::ServeStdioExt;
120
121 #[cfg(feature = "sse")]
122 pub use crate::ServeSseExt;
123}
124
125#[doc(hidden)]
128pub mod __private {
129 pub use crate::error::{McpError, McpResult};
130 pub use crate::types::{
131 messages::{CallToolRequest, GetPromptRequest, ReadResourceRequest},
132 prompt::{GetPromptResult, Prompt, PromptArgument},
133 resource::{ReadResourceResult, Resource, ResourceTemplate},
134 tool::CallToolResult,
135 };
136 pub use schemars;
137 pub use serde_json;
138
139 #[cfg(feature = "server")]
140 pub use crate::server::handler::{BoxFuture, IntoToolResult};
141
142 #[cfg(feature = "server")]
143 pub use crate::server::builder::{PromptDef, ResourceDef};
144}