pub struct McpAdapter { /* private fields */ }Expand description
MCP protocol adapter – dispatches MCP tool calls through ServiceApi.
Implementations§
Source§impl McpAdapter
impl McpAdapter
Sourcepub fn new(api: Arc<dyn ServiceApi>) -> Self
pub fn new(api: Arc<dyn ServiceApi>) -> Self
Create a new MCP adapter bound to the given service API.
Sourcepub async fn handle_tool_call(
&self,
tool_name: &str,
arguments: Value,
) -> Result<Value, Box<dyn Error + Send + Sync>>
pub async fn handle_tool_call( &self, tool_name: &str, arguments: Value, ) -> Result<Value, Box<dyn Error + Send + Sync>>
Handle an MCP tool_call by routing through the service API.
MCP tool names map to service.method via either underscore or
dot separator (e.g. "kernel_status" -> ("kernel", "status")).
Sourcepub async fn list_tools(&self) -> Vec<Value>
pub async fn list_tools(&self) -> Vec<Value>
List available tools (mapped from services).
Auto Trait Implementations§
impl Freeze for McpAdapter
impl !RefUnwindSafe for McpAdapter
impl Send for McpAdapter
impl Sync for McpAdapter
impl Unpin for McpAdapter
impl UnsafeUnpin for McpAdapter
impl !UnwindSafe for McpAdapter
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> 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 more