Source code for duck.contrib.mcp.exceptions

"""
Exceptions module for the MCP module.
"""


[docs] class MCPError(Exception): """ Base exception for MCP-related errors. """
[docs] class InvalidMCPKindError(MCPError): """ Raised when an unsupported MCP kind is encountered. """
[docs] class MCPCapabilityExistsError(MCPError): """ Raised when attempting to register an MCP capability that is already registered. """
[docs] class MCPCapabilityNotRegistered(MCPError): """ Raised when attempting to unregister an MCP capability that is not registered. """
[docs] class MCPSseNotInitializedError(MCPError): """ Raised when attempting to do an operation before SSE is initiated. """
[docs] class SessionError(MCPError): """ Raised on session related exceptions. """
[docs] class MCPCapabilityDependencyError(MCPError): """ Raised when a capability requires another capability that is not registered. Example: SamplingCapability requires ServerRequestsCapability. """ def __init__( self, capability: str, required_capability: str, ): """ Initialize the capability dependency error. Args: capability: The capability that has the missing dependency. required_capability: The capability that is required but unavailable. """ super().__init__( f"Capability '{capability}' requires capability " f"'{required_capability}', but it is not registered." ) self.capability = capability self.required_capability = required_capability