Crate gestura_core_mcp

Crate gestura_core_mcp 

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