rmcp integration for Agent Client Protocol MCP servers.
This crate bridges rmcp-based MCP server implementations with the ACP MCP server framework from agent-client-protocol. It lets you define MCP tools in Rust or use any rmcp service as an MCP server in an ACP proxy.
Use the McpServerExt trait to build an MCP server with tools:
use agent_client_protocol::mcp_server::McpServer;
use agent_client_protocol_rmcp::McpServerExt;
let server = McpServer::builder("my-tools").build();Or create an MCP server from an rmcp service:
use agent_client_protocol::mcp_server::McpServer;
use agent_client_protocol_rmcp::McpServerExt;
let server = McpServer::from_rmcp("my-server", MyRmcpService::new);
// Use as a handler in a proxy
Proxy.builder()
.with_mcp_server(server)
.connect_to(transport)
.await?;This crate is separate from agent-client-protocol to avoid coupling the core protocol crate to the rmcp dependency. This allows:
agent-client-protocolto remain focused on the ACP protocolagent-client-protocol-rmcpto trackrmcpupdates independently- Breaking changes in
rmcponly require updating this crate
rmcp is a public dependency of this crate: its types appear in the public API (e.g. McpServerExt::from_rmcp). Each major release of rmcp therefore requires a major release of this crate, independent of the other agent-client-protocol crates.
| agent-client-protocol-rmcp | rmcp |
|---|---|
| 2.x | 2.x |
| 1.x | 1.x |
- agent-client-protocol — Core ACP protocol types and traits
- agent-client-protocol-tokio — Tokio utilities for spawning agent processes
Apache-2.0