Expand description
MCP server support for providing MCP tools over ACP Runtime-agnostic MCP server support for providing MCP tools over ACP.
This module provides the infrastructure for attaching MCP servers to ACP connections without tying the core SDK to a particular MCP implementation or async runtime.
§Building MCP servers with tools
The agent-client-protocol-rmcp crate provides the builder APIs for MCP
tools backed by the rmcp crate.
§Custom MCP Server Implementations
You can implement McpServerConnect to create custom MCP servers:
ⓘ
use agent_client_protocol::mcp_server::{McpConnectionTo, McpServer, McpServerConnect};
use agent_client_protocol::{DynConnectTo, NullRun, Role, role};
struct MyCustomServer;
impl<R: Role> McpServerConnect<R> for MyCustomServer {
fn name(&self) -> String {
"my-custom-server".to_string()
}
fn connect(&self, cx: McpConnectionTo<R>) -> DynConnectTo<role::mcp::Client> {
// Return a component that serves MCP requests
DynConnectTo::new(my_mcp_component(cx))
}
}
let server = McpServer::new(MyCustomServer, NullRun);Structs§
- McpConnection
To - Context about the ACP and MCP connection available to an MCP server.
- McpServer
- An MCP server that can be attached to ACP connections.
- McpTool
Metadata - Runtime-neutral metadata for an MCP tool.
- McpTool
Registry - Runtime-neutral registry for MCP tools.
- Registered
McpTool - A registered MCP tool that can be dispatched with erased JSON values.
Enums§
- Enabled
Tools - Tracks which tools are enabled.
Traits§
- McpServer
Connect - Trait for types that can create MCP server connections.
- McpTool
- Trait for defining MCP tools.
Functions§
- tool_fn
- Create a stateless function-backed MCP tool and its concurrent responder.
- tool_
fn_ mut - Create a “single-threaded” function-backed MCP tool and its responder.
Type Aliases§
- McpTool
Schema - JSON Schema object used to describe MCP tool inputs and outputs.