Expand description
Composable handler traits for MCP servers.
This module defines the traits that MCP servers can implement to handle different protocol capabilities. Unlike monolithic handler approaches, these traits are composable - implement only what you need.
§Overview
ServerHandler: Minimal required trait for all serversToolHandler: Handle tool discovery and executionResourceHandler: Handle resource discovery and readingPromptHandler: Handle prompt discovery and renderingTaskHandler: Handle long-running task operationsSamplingHandler: Handle sampling requests (client-to-server)ElicitationHandler: Handle elicitation requests (client-to-server)
§Example
use mcpkit_server::{ServerHandler, ServerBuilder};
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_eq!(server.server_info().name, "my-server");Enums§
- LogLevel
- Log levels for MCP logging.
Traits§
- Completion
Handler - Handler for completion suggestions.
- Elicitation
Handler - Handler for elicitation requests (structured user input).
- Logging
Handler - Handler for logging operations.
- Prompt
Handler - Handler for prompt-related operations.
- Resource
Handler - Handler for resource-related operations.
- Sampling
Handler - Handler for sampling requests (server-initiated LLM calls).
- Server
Handler - Core server handler trait - required for all MCP servers.
- Task
Handler - Handler for task-related operations.
- Tool
Handler - Handler for tool-related operations.