turbomcp-client 3.0.8

MCP client with full protocol support, bidirectional communication, and plugin middleware
Documentation
//! MCP client core implementation
//!
//! This module contains the decomposed client implementation with focused
//! modules for different responsibilities:
//!
//! - `core`: Main `Client<T>` implementation and connection management
//! - `protocol`: ProtocolClient for JSON-RPC communication
//! - `dispatcher`: Message routing for bidirectional communication
//! - `config`: Configuration types and utilities
//! - `operations`: MCP operations (tools, resources, prompts, etc.)
//! - `systems`: Supporting systems (handlers, plugins, connection)
//!
//! Note: `Client<T>` is now cloneable via `Arc<ClientInner<T>>` - no need for SharedClient!

// Core modules
pub(crate) mod config;
pub(crate) mod core;
mod dispatcher;
mod manager;
mod protocol;
mod tasks_test;

// Operations modules
pub mod operations;

// Design Note: Module decomposition is complete for 2.0.0
//
// The client module is decomposed into focused submodules:
// - config: Connection and initialization configuration
// - core: Core client implementation
// - manager: Session and connection management
// - operations: MCP operation implementations (tools, prompts, resources)
// - protocol: Protocol-level communication
//
// Further decomposition (shared, systems) is not currently needed.
// The current structure balances cohesion and simplicity.

// Re-export main types for backwards compatibility
pub use config::{ConnectionConfig, InitializeResult};
pub use manager::{ConnectionInfo, ConnectionState, ManagerConfig, ServerGroup, SessionManager};