Skip to main content

McpServerConnect

Trait McpServerConnect 

Source
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§

Source

fn name(&self) -> String

The name of the MCP server, used to identify it in session responses.

Source

fn connect(&self, cx: McpConnectionTo<Counterpart>) -> DynConnectTo<Client>

Create a component to service a new MCP connection.

This is called each time an agent connects to this MCP server. The returned component will handle MCP protocol messages for that connection.

The McpConnectionTo provides access to the ACP connection context and the server’s ACP URL.

Implementations on Foreign Types§

Source§

impl<Counterpart: Role, S: ?Sized + McpServerConnect<Counterpart>> McpServerConnect<Counterpart> for Box<S>

Source§

fn name(&self) -> String

Source§

fn connect(&self, cx: McpConnectionTo<Counterpart>) -> DynConnectTo<Client>

Source§

impl<Counterpart: Role, S: ?Sized + McpServerConnect<Counterpart>> McpServerConnect<Counterpart> for Arc<S>

Source§

fn name(&self) -> String

Source§

fn connect(&self, cx: McpConnectionTo<Counterpart>) -> DynConnectTo<Client>

Implementors§