Crate mcpkit_core

Crate mcpkit_core 

Source
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 McpError type 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, 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.
debug
Debug and tracing utilities for MCP protocol development.
error
Unified error handling for the MCP SDK.
extension
Protocol extension infrastructure.
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.