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, 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::is_version_supported;
pub use capability::negotiate_version;
pub use capability::negotiate_version_detailed;
pub use capability::ClientCapabilities;
pub use capability::ClientInfo;
pub use capability::InitializeRequest;
pub use capability::InitializeResult;
pub use capability::ServerCapabilities;
pub use capability::ServerInfo;
pub use capability::VersionNegotiationResult;
pub use capability::PROTOCOL_VERSION;
pub use capability::SUPPORTED_PROTOCOL_VERSIONS;
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.