pub struct SoloMcpServer { /* private fields */ }Expand description
The MCP server. Cheap to clone — every field is Arc-cloneable.
Implementations§
Source§impl SoloMcpServer
impl SoloMcpServer
pub fn new( write: WriteHandle, pool: ReaderPool, embedder: Arc<dyn Embedder>, hnsw: Arc<dyn VectorIndex + Send + Sync>, ) -> Self
Source§impl SoloMcpServer
impl SoloMcpServer
Sourcepub async fn dispatch_tool(
&self,
name: &str,
args_value: Value,
) -> Result<CallToolResult, McpError>
pub async fn dispatch_tool( &self, name: &str, args_value: Value, ) -> Result<CallToolResult, McpError>
Direct tool-dispatch path used by both call_tool (the
ServerHandler trait method, behind the rmcp protocol layer) and
in-process tests that don’t want to spin up a full transport pair.
Bypasses RequestContext (which requires a Peer not constructible
outside rmcp internals).
Sourcepub fn dispatch_list_tools(&self) -> Vec<Tool>
pub fn dispatch_list_tools(&self) -> Vec<Tool>
List the tools this server exposes. Mirrors ServerHandler::list_tools
without requiring a RequestContext.
Trait Implementations§
Source§impl Clone for SoloMcpServer
impl Clone for SoloMcpServer
Source§fn clone(&self) -> SoloMcpServer
fn clone(&self) -> SoloMcpServer
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl ServerHandler for SoloMcpServer
impl ServerHandler for SoloMcpServer
fn get_info(&self) -> ServerInfo
async fn list_tools( &self, _request: PaginatedRequestParam, _context: RequestContext<RoleServer>, ) -> Result<ListToolsResult, McpError>
async fn call_tool( &self, request: CallToolRequestParam, _context: RequestContext<RoleServer>, ) -> Result<CallToolResult, McpError>
fn ping( &self, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + Send
fn initialize( &self, request: InitializeRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<InitializeResult, ErrorData>> + Send
fn complete( &self, request: CompleteRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CompleteResult, ErrorData>> + Send
fn set_level( &self, request: SetLevelRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + Send
fn get_prompt( &self, request: GetPromptRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<GetPromptResult, ErrorData>> + Send
fn list_prompts( &self, request: Option<PaginatedRequestParamInner>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListPromptsResult, ErrorData>> + Send
fn list_resources( &self, request: Option<PaginatedRequestParamInner>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListResourcesResult, ErrorData>> + Send
fn list_resource_templates( &self, request: Option<PaginatedRequestParamInner>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListResourceTemplatesResult, ErrorData>> + Send
fn read_resource( &self, request: ReadResourceRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ReadResourceResult, ErrorData>> + Send
fn subscribe( &self, request: SubscribeRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + Send
fn unsubscribe( &self, request: UnsubscribeRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + Send
fn on_cancelled( &self, notification: CancelledNotificationParam, ) -> impl Future<Output = ()> + Send
fn on_progress( &self, notification: ProgressNotificationParam, ) -> impl Future<Output = ()> + Send
fn on_initialized(&self) -> impl Future<Output = ()> + Send
fn on_roots_list_changed(&self) -> impl Future<Output = ()> + Send
fn get_peer(&self) -> Option<Peer<RoleServer>>
fn set_peer(&mut self, peer: Peer<RoleServer>)
Auto Trait Implementations§
impl Freeze for SoloMcpServer
impl !RefUnwindSafe for SoloMcpServer
impl Send for SoloMcpServer
impl Sync for SoloMcpServer
impl Unpin for SoloMcpServer
impl UnsafeUnpin for SoloMcpServer
impl !UnwindSafe for SoloMcpServer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<R, S> DynService<R> for Swhere
R: ServiceRole,
S: Service<R>,
impl<R, S> DynService<R> for Swhere
R: ServiceRole,
S: Service<R>,
fn handle_request( &self, request: <R as ServiceRole>::PeerReq, context: RequestContext<R>, ) -> Pin<Box<dyn Future<Output = Result<<R as ServiceRole>::Resp, ErrorData>> + Send + '_>>
fn handle_notification( &self, notification: <R as ServiceRole>::PeerNot, ) -> Pin<Box<dyn Future<Output = Result<(), ErrorData>> + Send + '_>>
fn get_peer(&self) -> Option<Peer<R>>
fn set_peer(&mut self, peer: Peer<R>)
fn get_info(&self) -> <R as ServiceRole>::Info
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<H> Service<RoleServer> for Hwhere
H: ServerHandler,
impl<H> Service<RoleServer> for Hwhere
H: ServerHandler,
async fn handle_request( &self, request: <RoleServer as ServiceRole>::PeerReq, context: RequestContext<RoleServer>, ) -> Result<<RoleServer as ServiceRole>::Resp, ErrorData>
async fn handle_notification( &self, notification: <RoleServer as ServiceRole>::PeerNot, ) -> Result<(), ErrorData>
fn get_peer(&self) -> Option<Peer<RoleServer>>
fn set_peer(&mut self, peer: Peer<RoleServer>)
fn get_info(&self) -> <RoleServer as ServiceRole>::Info
Source§impl<S> ServiceExt<RoleServer> for Swhere
S: Service<RoleServer>,
impl<S> ServiceExt<RoleServer> for Swhere
S: Service<RoleServer>,
fn serve_with_ct<T, E, A>( self, transport: T, ct: CancellationToken, ) -> impl Future<Output = Result<RunningService<RoleServer, S>, E>> + Send
Source§fn into_dyn(self) -> Box<dyn DynService<R>>
fn into_dyn(self) -> Box<dyn DynService<R>>
Convert this service to a dynamic boxed service Read more