Expand description
Model Context Protocol (MCP) client support.
This module provides a client for connecting to MCP servers, allowing agents to use tools provided by external services.
§Overview
MCP (Model Context Protocol) is a protocol for connecting LLM applications to external tools and services. This module provides:
McpClient- Client for communicating with MCP serversMcpTransport- Trait for transport implementationsStdioTransport- Stdio-based transport (subprocess communication)McpToolBridge- Wrapper to use MCP tools as SDK tools
§Example
ⓘ
use agent_sdk::mcp::{McpClient, StdioTransport, register_mcp_tools};
use agent_sdk::ToolRegistry;
use std::sync::Arc;
// Spawn an MCP server process
let transport = StdioTransport::spawn("npx", &["-y", "@modelcontextprotocol/server-filesystem"]).await?;
// Create client and initialize
let client = Arc::new(McpClient::new(transport, "filesystem".to_string()).await?);
// Register all MCP tools with the agent
let mut registry = ToolRegistry::new();
register_mcp_tools(&mut registry, client).await?;§MCP Protocol
This implementation supports MCP protocol version 2024-11-05 and includes:
- JSON-RPC 2.0 communication
- Tool discovery via
tools/list - Tool execution via
tools/call - Automatic initialization handshake
Re-exports§
pub use client::McpClient;pub use protocol::JsonRpcError;pub use protocol::JsonRpcRequest;pub use protocol::JsonRpcResponse;pub use protocol::McpContent;pub use protocol::McpServerCapabilities;pub use protocol::McpToolCallResult;pub use protocol::McpToolDefinition;pub use tool_bridge::McpToolBridge;pub use tool_bridge::register_mcp_tools;pub use tool_bridge::register_mcp_tools_with_tiers;pub use transport::McpTransport;pub use transport::StdioTransport;
Modules§
- client
- MCP client implementation.
- protocol
- MCP JSON-RPC protocol types.
- tool_
bridge - Bridge MCP tools to SDK Tool trait.
- transport
- MCP transport implementations.