Expand description
MCP (Model Context Protocol) Module
This module provides enhanced MCP support for aster-rust, aligned with
- Connection Management: Multi-transport support (stdio, HTTP, SSE, WebSocket), automatic reconnection, heartbeat monitoring
- Configuration Management: Global and project-level configs, validation, change notifications
- Lifecycle Management: Server process management, auto-restart, health checks
- Tool Management: Tool discovery, caching, argument validation, batch calls
§Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Agent / CLI │
├─────────────────────────────────────────────────────────────────┤
│ ExtensionManager │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ McpConnection │ │ McpLifecycle │ │ McpConfig │ │
│ │ Manager │ │ Manager │ │ Manager │ │
│ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │ │
│ ┌────────┴────────────────────┴────────────────────┴────────┐ │
│ │ McpToolManager │ │
│ └────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ Transport Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ Stdio │ │ HTTP │ │ SSE │ │ WebSocket │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────────┘§Example
ⓘ
use aster::mcp::{McpError, McpResult, TransportType, McpServerConfig};
// Create a server configuration
let config = McpServerConfig {
transport_type: TransportType::Stdio,
command: Some("npx".to_string()),
args: Some(vec!["-y".to_string(), "@modelcontextprotocol/server-filesystem".to_string()]),
enabled: true,
..Default::default()
};Re-exports§
pub use config_manager::ConfigChangeCallback;pub use config_manager::ConfigEvent;pub use config_manager::ConfigManager;pub use config_manager::McpConfigFile;pub use config_manager::McpConfigManager;pub use connection_manager::ConnectionEvent;pub use connection_manager::ConnectionManager;pub use connection_manager::McpConnectionManager;pub use connection_manager::PendingRequestInfo;pub use error::McpError;pub use error::McpErrorCode;pub use error::McpResult;pub use error::StructuredError;pub use integration::McpIntegration;pub use lifecycle_manager::LifecycleEvent;pub use lifecycle_manager::LifecycleManager;pub use lifecycle_manager::McpLifecycleManager;pub use lifecycle_manager::StartOptions;pub use lifecycle_manager::StopOptions;pub use logging::LogCallback;pub use logging::McpLogEntry;pub use logging::McpLogger;pub use resource_manager::McpResource;pub use resource_manager::McpResourceManager;pub use resource_manager::McpResourceTemplate;pub use resource_manager::ResourceCacheEntry;pub use resource_manager::ResourceContent;pub use resource_manager::ResourceEvent;pub use resource_manager::ResourceManager;pub use tool_manager::ArgValidationResult;pub use tool_manager::CallInfo;pub use tool_manager::McpTool;pub use tool_manager::McpToolManager;pub use tool_manager::ToolCall;pub use tool_manager::ToolCallResult;pub use tool_manager::ToolManager;pub use tool_manager::ToolResultContent;pub use transport::BoxedTransport;pub use transport::HttpTransport;pub use transport::McpErrorData;pub use transport::McpMessage;pub use transport::McpNotification;pub use transport::McpRequest;pub use transport::McpResponse;pub use transport::StdioTransport;pub use transport::Transport;pub use transport::TransportConfig;pub use transport::TransportEvent;pub use transport::TransportFactory;pub use transport::TransportState;pub use transport::WebSocketTransport;pub use types::ConfigManagerOptions;pub use types::ConfigScope;pub use types::ConnectionOptions;pub use types::ConnectionStatus;pub use types::HealthCheckResult;pub use types::LifecycleOptions;pub use types::McpConnection;pub use types::McpLogLevel;pub use types::McpServerConfig;pub use types::McpServerInfo;pub use types::ServerProcess;pub use types::ServerState;pub use types::ServerValidationResult;pub use types::TransportType;pub use types::ValidationResult;pub use cancellation::CancellableRequest;pub use cancellation::CancellationEvent;pub use cancellation::CancellationReason;pub use cancellation::CancellationResult;pub use cancellation::CancellationStats;pub use cancellation::CancellationToken;pub use cancellation::CancelledNotification;pub use cancellation::McpCancellationManager;pub use cancellation::RequestDuration;pub use notifications::create_progress_params;pub use notifications::McpNotificationManager;pub use notifications::Notification;pub use notifications::NotificationEvent;pub use notifications::NotificationFilter;pub use notifications::NotificationStats;pub use notifications::NotificationType;pub use notifications::ProgressNotification;pub use notifications::ProgressState;pub use roots::create_root_from_path;pub use roots::get_default_roots_config;pub use roots::McpRootsManager;pub use roots::Root;pub use roots::RootEvent;pub use roots::RootInfo;pub use roots::RootPermissions;pub use roots::RootsConfig;pub use roots::RootsStats;
Modules§
- cancellation
- MCP Cancellation Module
- config_
manager - MCP Configuration Manager
- connection_
manager - MCP Connection Manager
- error
- MCP Error types
- integration
- MCP Integration Module
- lifecycle_
manager - MCP Lifecycle Manager
- logging
- MCP Logging Module
- notifications
- MCP Notifications Module
- resource_
manager - MCP Resource Manager
- roots
- MCP Roots Module
- tool_
manager - MCP Tool Manager
- transport
- MCP Transport Layer
- types
- MCP Core Types
Type Aliases§
- Json
Object - A JSON object type alias for convenient handling of JSON data.