Expand description
Composable MCP server builder for zero-boilerplate capability composition.
This crate provides a builder pattern for composing MCP servers from individual
capability providers, eliminating the boilerplate of implementing ServerHandler
and manually delegating methods.
§Overview
Instead of implementing the full ServerHandler trait and delegating methods,
you can compose a server from individual providers:
use rmcp_server_builder::{Server, ServerBuilder};
use rmcp::model::Implementation;
// Compose a server with tools from one provider and prompts from another
let server = ServerBuilder::new()
.info(Implementation::from_build_env())
.instructions("You have access to a glTF 2.0 API...")
.tools(openapi_server)
.prompts(my_prompts)
.build();§Provider Traits
Each MCP capability has a corresponding provider trait:
ToolsProvider-list_tools,call_toolPromptsProvider-list_prompts,get_promptResourcesProvider-list_resources,list_resource_templates,read_resource,subscribe,unsubscribeCompletionProvider-completeLoggingProvider-set_levelServerInfoProvider-get_info(required)
§Blanket Implementations
Any type implementing ServerHandler automatically implements all provider traits,
so existing servers can be used as providers without modification.
§Capability Auto-Detection
The composed server automatically sets capability flags based on which providers
are configured. If you set a tools provider, capabilities.tools will be enabled.
Structs§
- Implementation
- Server
- A composable MCP server that routes requests to individual capability providers.
- Server
Builder - Builder for constructing a composed MCP server.
- Server
Capabilities - Builder
- Simple
Info - A simple server info provider that wraps an Implementation.
- Unset
- Marker for an unset provider.
Traits§
- Completion
Provider - Provider for completion capability.
- Logging
Provider - Provider for logging capability.
- Prompts
Provider - Provider for prompts capability.
- Resources
Provider - Provider for resources capability.
- Server
Handler - Server
Info Provider - Provider for server info and initialization.
- Tools
Provider - Provider for tools capability.