1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! 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`](`crate::mcp_server::McpServerConnect`) to create custom MCP servers:
//!
//! ```rust,ignore
//! 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);
//! ```
pub use McpServerConnect;
pub use McpConnectionTo;
pub use ;
pub use McpServer;
pub use McpTool;
pub use ;