pub struct ServerBuilder<H, Tools, Resources, Prompts, Tasks> { /* private fields */ }Expand description
Builder for constructing MCP servers with specific capabilities.
Uses the typestate pattern with 5 type parameters to track registered handlers at compile time:
H: Base server handler (always required)Tools: Tool handler stateResources: Resource handler statePrompts: Prompt handler stateTasks: Task handler state
When a capability is not registered, its type parameter is NotRegistered.
When registered, it becomes Registered<T> where T is the handler type.
Implementations§
Source§impl<H: ServerHandler> ServerBuilder<H, NotRegistered, NotRegistered, NotRegistered, NotRegistered>
impl<H: ServerHandler> ServerBuilder<H, NotRegistered, NotRegistered, NotRegistered, NotRegistered>
Source§impl<H, T, R, P, K> ServerBuilder<H, T, R, P, K>where
H: ServerHandler,
impl<H, T, R, P, K> ServerBuilder<H, T, R, P, K>where
H: ServerHandler,
Sourcepub fn capabilities(self, caps: ServerCapabilities) -> Self
pub fn capabilities(self, caps: ServerCapabilities) -> Self
Override the capabilities advertised by this server.
By default, capabilities are derived from the base handler. Use this to customize or extend those capabilities.
Sourcepub const fn get_capabilities(&self) -> &ServerCapabilities
pub const fn get_capabilities(&self) -> &ServerCapabilities
Get a reference to the current capabilities.
Source§impl<H, R, P, K> ServerBuilder<H, NotRegistered, R, P, K>where
H: ServerHandler,
impl<H, R, P, K> ServerBuilder<H, NotRegistered, R, P, K>where
H: ServerHandler,
Sourcepub fn with_tools<TH: ToolHandler>(
self,
tools: TH,
) -> ServerBuilder<H, Registered<TH>, R, P, K>
pub fn with_tools<TH: ToolHandler>( self, tools: TH, ) -> ServerBuilder<H, Registered<TH>, R, P, K>
Register a tool handler.
This method is only available when no tool handler has been registered yet. Attempting to register tools twice will result in a compile error.
Source§impl<H, T, P, K> ServerBuilder<H, T, NotRegistered, P, K>where
H: ServerHandler,
impl<H, T, P, K> ServerBuilder<H, T, NotRegistered, P, K>where
H: ServerHandler,
Sourcepub fn with_resources<RH: ResourceHandler>(
self,
resources: RH,
) -> ServerBuilder<H, T, Registered<RH>, P, K>
pub fn with_resources<RH: ResourceHandler>( self, resources: RH, ) -> ServerBuilder<H, T, Registered<RH>, P, K>
Register a resource handler.
This method is only available when no resource handler has been registered yet.
Source§impl<H, T, R, K> ServerBuilder<H, T, R, NotRegistered, K>where
H: ServerHandler,
impl<H, T, R, K> ServerBuilder<H, T, R, NotRegistered, K>where
H: ServerHandler,
Sourcepub fn with_prompts<PH: PromptHandler>(
self,
prompts: PH,
) -> ServerBuilder<H, T, R, Registered<PH>, K>
pub fn with_prompts<PH: PromptHandler>( self, prompts: PH, ) -> ServerBuilder<H, T, R, Registered<PH>, K>
Register a prompt handler.
This method is only available when no prompt handler has been registered yet.
Source§impl<H, T, R, P> ServerBuilder<H, T, R, P, NotRegistered>where
H: ServerHandler,
impl<H, T, R, P> ServerBuilder<H, T, R, P, NotRegistered>where
H: ServerHandler,
Sourcepub fn with_tasks<KH: TaskHandler>(
self,
tasks: KH,
) -> ServerBuilder<H, T, R, P, Registered<KH>>
pub fn with_tasks<KH: TaskHandler>( self, tasks: KH, ) -> ServerBuilder<H, T, R, P, Registered<KH>>
Register a task handler.
Tasks are long-running operations that can be tracked, monitored, and cancelled.
This method is only available when no task handler has been registered yet.
Source§impl<H, T, R, P, K> ServerBuilder<H, T, R, P, K>
impl<H, T, R, P, K> ServerBuilder<H, T, R, P, K>
Auto Trait Implementations§
impl<H, Tools, Resources, Prompts, Tasks> Freeze for ServerBuilder<H, Tools, Resources, Prompts, Tasks>
impl<H, Tools, Resources, Prompts, Tasks> RefUnwindSafe for ServerBuilder<H, Tools, Resources, Prompts, Tasks>where
H: RefUnwindSafe,
Tools: RefUnwindSafe,
Resources: RefUnwindSafe,
Prompts: RefUnwindSafe,
Tasks: RefUnwindSafe,
impl<H, Tools, Resources, Prompts, Tasks> Send for ServerBuilder<H, Tools, Resources, Prompts, Tasks>
impl<H, Tools, Resources, Prompts, Tasks> Sync for ServerBuilder<H, Tools, Resources, Prompts, Tasks>
impl<H, Tools, Resources, Prompts, Tasks> Unpin for ServerBuilder<H, Tools, Resources, Prompts, Tasks>
impl<H, Tools, Resources, Prompts, Tasks> UnwindSafe for ServerBuilder<H, Tools, Resources, Prompts, Tasks>where
H: UnwindSafe,
Tools: UnwindSafe,
Resources: UnwindSafe,
Prompts: UnwindSafe,
Tasks: UnwindSafe,
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more