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