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 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.
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.