pub trait McpServerConnect<Counterpart: Role>:
Send
+ Sync
+ 'static {
// Required methods
fn name(&self) -> String;
fn connect(&self, cx: McpConnectionTo<Counterpart>) -> DynConnectTo<Client>;
}Expand description
Trait for types that can create MCP server connections.
Implement this trait to create custom MCP servers. Each call to connect
should return a new ConnectTo that serves MCP requests for a single
connection.
§Example
ⓘ
use agent_client_protocol::mcp_server::{McpServerConnect, McpConnectionTo};
use agent_client_protocol::{DynConnectTo, role::Role};
struct MyMcpServer {
name: String,
}
impl<R: Role> McpServerConnect<R> for MyMcpServer {
fn name(&self) -> String {
self.name.clone()
}
fn connect(&self, cx: McpConnectionTo<R>) -> DynConnectTo<role::mcp::Client> {
// Create and return a component that handles MCP requests
DynConnectTo::new(MyMcpComponent::new(cx))
}
}Required Methods§
Sourcefn connect(&self, cx: McpConnectionTo<Counterpart>) -> DynConnectTo<Client>
fn connect(&self, cx: McpConnectionTo<Counterpart>) -> DynConnectTo<Client>
Create a component to service a new MCP connection.
This is called each time an MCP client connects to this server. The returned component will handle MCP protocol messages for that connection.
McpConnectionTo distinguishes a direct MCP connection from an
ACP-attached connection and provides the corresponding host connection.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".