McpServiceRegistry

Struct McpServiceRegistry 

Source
pub struct McpServiceRegistry { /* private fields */ }
Expand description

Manages MCP services offered to successor proxies and agents.

Use the Self::add_mcp_server method to register MCP servers. For rmcp-based servers, use the sacp-rmcp crate which provides convenient extension methods.

This struct is a handle to the underlying registry. Cloning the struct produces a second handle to the same registry.

§Handling requests

You must add the registry (or a clone of it) to the JrHandlerChain so that it can intercept MCP requests. Typically you do this by providing it as an argument to the handler chain methods.

Implementations§

Source§

impl McpServiceRegistry

Source

pub fn new() -> Self

Creates a new empty MCP service registry

Source

pub fn add_mcp_server<C: Component>( &self, name: impl ToString, new_fn: impl Fn() -> C + Send + Sync + 'static, ) -> Result<(), Error>

Add an MCP server to the registry using a custom spawner.

This is the base method for adding MCP servers. Use this if you have a custom way to create Component instances for your MCP server.

For rmcp-based servers, use the sacp-rmcp crate which provides convenient extension methods.

§Parameters
  • name: The name of the server.
  • spawner: A trait object that can create Component instances.

Trait Implementations§

Source§

impl AsRef<McpServiceRegistry> for McpServiceRegistry

Source§

fn as_ref(&self) -> &McpServiceRegistry

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for McpServiceRegistry

Source§

fn clone(&self) -> McpServiceRegistry

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for McpServiceRegistry

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for McpServiceRegistry

Source§

fn default() -> McpServiceRegistry

Returns the “default value” for a type. Read more
Source§

impl JrMessageHandler for McpServiceRegistry

Source§

fn describe_chain(&self) -> impl Debug

Returns a debug description of the handler chain for diagnostics
Source§

async fn handle_message( &mut self, message: MessageAndCx, ) -> Result<Handled<MessageAndCx>, Error>

Attempt to claim an incoming message (request or notification). Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more