Expand description
Model Context Protocol implementation for Gestura.
This crate owns Gestura’s MCP protocol layer for protocol version
2025-11-25, including the protocol data model, client/server plumbing,
discovery and caching, connection lifecycle, notifications, prompt registry,
and local integration helpers.
§Responsibilities
- MCP client and server implementations
- service discovery, caching, and registry helpers
- session lifecycle and notification delivery
- prompt resources and prompt registry access
- MCP-specific configuration, errors, and inspection helpers
§Boundary with gestura-core
Higher-level agent orchestration stays in gestura-core. This crate focuses
on implementing the MCP protocol surface itself so it can evolve as a
cohesive domain.
Most application code should import MCP items through gestura_core::mcp::*
unless it specifically needs to depend on this domain crate directly.
Re-exports§
pub use client::McpClient;pub use client::McpClientRegistry;pub use client::get_mcp_client_registry;pub use config::McpJsonFile;pub use config::McpScope;pub use config::McpServerEntry;pub use config::McpTool;pub use config::McpTransportType;pub use config::import_claude_desktop_servers;pub use discovery::CacheStats as McpCacheStats;pub use discovery::CachedTool;pub use discovery::McpDiscoveryManager;pub use discovery::McpServerConfig;pub use discovery::ServerInfo as McpServerInfo;pub use discovery::ServerState;pub use integrator::LocalMcp;pub use integrator::McpIntegrator;pub use integrator::MdhResource;pub use integrator::TokenInfo;pub use integrator::get_mcp;pub use integrator::mdh_translate;pub use lifecycle::SessionManager;pub use lifecycle::create_session_manager;pub use notifications::McpLogger;pub use notifications::McpNotification;pub use notifications::NotificationReceiver;pub use notifications::NotificationSender;pub use notifications::OperationProgress;pub use notifications::ProgressTracker;pub use notifications::create_notification_channel;pub use prompts::PromptRegistry;pub use prompts::RegisteredPrompt;pub use provision::ProvisionResult;pub use provision::ProvisionStatus;pub use provision::provision_mcp_server;pub use registry::PopularMcpServer;pub use registry::RegistryBrowseEntry;pub use registry::RegistryBrowsePage;pub use registry::browse_mcp_registry;pub use registry::list_popular_mcp_servers;pub use registry::normalize_mcp_server_name;pub use server::JsonRpcError;pub use server::JsonRpcRequest;pub use server::JsonRpcResponse;pub use server::McpRequestContext;pub use server::McpResourceHandler;pub use server::McpServer;pub use server::McpToolHandler;pub use types::CancelledNotification;pub use types::ClientCapabilities;pub use types::ClientInfo;pub use types::EmbeddedResource;pub use types::InitializeParams;pub use types::InitializeResult;pub use types::LogLevel;pub use types::LoggingCapability;pub use types::LoggingMessage;pub use types::PROTOCOL_VERSION;pub use types::PingParams;pub use types::PingResult;pub use types::ProgressNotification;pub use types::ProgressToken;pub use types::Prompt;pub use types::PromptArgument;pub use types::PromptContent;pub use types::PromptMessage;pub use types::PromptRole;pub use types::PromptsCapability;pub use types::PromptsGetParams;pub use types::PromptsGetResult;pub use types::PromptsListParams;pub use types::PromptsListResult;pub use types::Resource;pub use types::ResourceAnnotations;pub use types::ResourceContent;pub use types::ResourceReference;pub use types::ResourcesCapability;pub use types::ResourcesListParams;pub use types::ResourcesListResult;pub use types::ResourcesReadParams;pub use types::ResourcesReadResult;pub use types::ServerCapabilities;pub use types::ServerInfo;pub use types::SessionState;pub use types::TextContent;pub use types::Tool;pub use types::ToolAnnotations;pub use types::ToolResultContent;pub use types::ToolsCallParams;pub use types::ToolsCallResult;pub use types::ToolsCapability;pub use types::ToolsListParams;pub use types::ToolsListResult;pub use types::error_codes;pub use types::mcp_error_codes;
Modules§
- client
- MCP Client — connects to external MCP servers and invokes tools.
- cmd_
utils - config
- MCP server configuration types.
- discovery
- MCP Tool Discovery and Registry
- error
- Error types (compatibility wrapper).
- execution_
mode - Execution-mode primitives used for tool categorization and permission checks.
- integrator
- MCP Integrator - Token management and tool exposure Provides McpIntegrator trait and LocalMcp implementation for tool exposure, dual authentication, and MDH translation.
- lifecycle
- MCP Lifecycle Management Handles initialize/initialized handshake, ping, and shutdown.
- notifications
- MCP Notifications - Progress, logging, and cancellation Provides notification handling for long-running operations.
- prompts
- MCP Prompts - Templated messages and workflows Provides prompt definitions for voice commands and common workflows.
- provision
- MCP server provisioning — runtime availability checks and package pre-installation.
- registry
- MCP Registry integration — popular server discovery.
- server
- MCP JSON-RPC server (transport-agnostic)
- tool_
inspection - Tool inspection primitives used for MCP discovery metadata.
- types
- MCP Protocol Types (Version 2025-11-25) Defines all types for MCP protocol compliance including capabilities, lifecycle messages, prompts, and notifications.