Expand description
§mcp-core
Core types and traits for the Model Context Protocol (MCP) SDK.
This crate provides the foundational building blocks for the MCP SDK:
- Protocol types: JSON-RPC 2.0 request/response/notification types
- MCP types: Tools, resources, prompts, tasks, content, sampling, elicitation
- Capability negotiation: Client and server capabilities
- Error handling: Unified
McpErrortype with rich diagnostics - Typestate connection: Compile-time enforced connection lifecycle
This crate is runtime-agnostic and does not depend on any async runtime. It can be used with Tokio, async-std, smol, or any other executor.
§Protocol Version
This crate implements MCP protocol version 2025-11-25.
§Example
use mcpkit_core::{
types::{Tool, ToolOutput, Content},
capability::{ServerCapabilities, ServerInfo},
state::Connection,
};
// Create a tool definition
let tool = Tool::new("search")
.description("Search the database")
.input_schema(serde_json::json!({
"type": "object",
"properties": {
"query": { "type": "string" }
},
"required": ["query"]
}));
// Create server capabilities
let caps = ServerCapabilities::new()
.with_tools()
.with_resources()
.with_tasks();
// Create server info
let info = ServerInfo::new("my-server", "1.0.0");§Feature Flags
This crate currently has no optional features. All functionality is included by default.
Re-exports§
pub use capability::ClientCapabilities;pub use capability::ClientInfo;pub use capability::InitializeRequest;pub use capability::InitializeResult;pub use capability::PROTOCOL_VERSION;pub use capability::SUPPORTED_PROTOCOL_VERSIONS;pub use capability::ServerCapabilities;pub use capability::ServerInfo;pub use capability::VersionNegotiationResult;pub use capability::is_version_supported;pub use capability::negotiate_version;pub use capability::negotiate_version_detailed;pub use error::JsonRpcError;pub use error::McpError;pub use error::McpResultExt;pub use protocol::Message;pub use protocol::Notification;pub use protocol::ProgressToken;pub use protocol::Request;pub use protocol::RequestId;pub use protocol::Response;pub use protocol_version::ProtocolVersion;pub use state::Closing;pub use state::Connected;pub use state::Connection;pub use state::Disconnected;pub use state::Initializing;pub use state::Ready;
Modules§
- auth
- OAuth 2.1 Authorization for MCP.
- capability
- Capability flags for MCP clients and servers.
- error
- Unified error handling for the MCP SDK.
- prelude
- Prelude module for convenient imports.
- protocol
- JSON-RPC 2.0 protocol types for the Model Context Protocol.
- protocol_
version - Protocol version types and negotiation.
- schema
- JSON Schema utilities for MCP type validation.
- state
- Typestate pattern for connection lifecycle management.
- types
- MCP-specific types for tools, resources, prompts, tasks, and content.