traitclaw_mcp/lib.rs
1//! MCP (Model Context Protocol) client for the `TraitClaw` AI agent framework.
2//!
3//! Connects to MCP servers over stdio or SSE transport, discovers tools via
4//! `tools/list`, and routes tool calls via `tools/call`. MCP tools implement
5//! `ErasedTool` so they work seamlessly alongside native tools.
6//!
7//! # Quick Start
8//!
9//! ```rust,no_run
10//! use traitclaw_mcp::McpServer;
11//!
12//! # async fn example() -> traitclaw_core::Result<()> {
13//! let server = McpServer::stdio("npx", &["@modelcontextprotocol/server-filesystem"]).await?;
14//! let tools = server.tools(); // Vec<Arc<dyn ErasedTool>>
15//! # Ok(())
16//! # }
17//! ```
18
19#![deny(missing_docs)]
20#![allow(clippy::redundant_closure)]
21
22mod multi_server;
23mod protocol;
24mod registry;
25mod server;
26mod tool;
27
28pub use multi_server::{MultiServerMcpRegistry, MultiServerMcpRegistryBuilder};
29pub use registry::McpToolRegistry;
30pub use server::McpServer;
31pub use tool::McpTool;
32
33/// Prelude re-exports for convenient use.
34pub mod prelude {
35 pub use super::{
36 McpServer, McpTool, McpToolRegistry, MultiServerMcpRegistry, MultiServerMcpRegistryBuilder,
37 };
38}