Crate mcpkit_server

Crate mcpkit_server 

Source
Expand description

Server implementation for the MCP SDK.

This crate provides the server-side implementation for the Model Context Protocol. It includes composable handler traits, a fluent builder API, and request routing.

§Overview

Building an MCP server involves:

  1. Implementing the ServerHandler trait (required)
  2. Implementing optional capability traits (ToolHandler, ResourceHandler, etc.)
  3. Using ServerBuilder to create a configured server
  4. Running the server with a transport

§Example

use mcpkit_server::{ServerBuilder, ServerHandler};
use mcpkit_core::capability::{ServerInfo, ServerCapabilities};

struct MyServer;

impl ServerHandler for MyServer {
    fn server_info(&self) -> ServerInfo {
        ServerInfo::new("my-server", "1.0.0")
    }

    fn capabilities(&self) -> ServerCapabilities {
        ServerCapabilities::new().with_tools()
    }
}

let server = ServerBuilder::new(MyServer).build();
assert!(server.capabilities().has_tools());

§Handler Traits

The server uses composable handler traits:

§Context

Handlers receive a Context that provides:

  • Request metadata (ID, progress token)
  • Client and server capabilities
  • Cancellation checking
  • Progress reporting
  • Notification sending

Re-exports§

pub use builder::FullServer;
pub use builder::MinimalServer;
pub use builder::NotRegistered;
pub use builder::Registered;
pub use builder::Server;
pub use builder::ServerBuilder;
pub use context::CancellationToken;
pub use context::CancelledFuture;
pub use context::Context;
pub use context::ContextData;
pub use context::NoOpPeer;
pub use context::Peer;
pub use handler::CompletionHandler;
pub use handler::ElicitationHandler;
pub use handler::LogLevel;
pub use handler::LoggingHandler;
pub use handler::PromptHandler;
pub use handler::ResourceHandler;
pub use handler::SamplingHandler;
pub use handler::ServerHandler;
pub use handler::TaskHandler;
pub use handler::ToolHandler;
pub use health::ComponentHealth;
pub use health::HealthChecker;
pub use health::HealthReport;
pub use health::HealthStatus;
pub use health::LivenessResponse;
pub use health::ReadinessResponse;
pub use metrics::MethodStats;
pub use metrics::MetricsSnapshot;
pub use metrics::ServerMetrics;
pub use router::route_prompts;
pub use router::route_resources;
pub use router::route_tools;
pub use server::RequestRouter;
pub use server::RuntimeConfig;
pub use server::ServerRuntime;
pub use server::ServerState;
pub use server::TransportPeer;

Modules§

builder
Fluent server builder for MCP servers.
capability
Capability handlers for MCP servers.
context
Request context for MCP handlers.
handler
Composable handler traits for MCP servers.
health
Health check utilities for MCP servers.
metrics
Server-level metrics for MCP servers.
prelude
Prelude module for convenient imports.
router
Request routing for MCP servers.
server
Server runtime for MCP servers.
state
Typestate connection management for MCP servers.