Skip to main content

Module mcp

Module mcp 

Source
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:

§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.