Source code for tigl_mcp.errors

"""Custom error types for MCP tooling."""

from __future__ import annotations

from typing import NoReturn, TypedDict


class MCPErrorPayload(TypedDict):
    """Structured JSON payload for MCP errors."""

    error: dict[str, object | None]


[docs] class MCPError(Exception): """Structured MCP error containing a JSON-friendly payload.""" def __init__( self, error_type: str, message: str, details: object | None = None ) -> None: """Create a structured MCP error payload.""" super().__init__(message) self.error: MCPErrorPayload = { "error": { "type": error_type, "message": message, "details": details, } }
[docs] def to_dict(self) -> MCPErrorPayload: """Return the structured error payload.""" return self.error
def raise_mcp_error( error_type: str, message: str, details: object | None = None ) -> NoReturn: """Raise an :class:`MCPError` with a structured payload.""" raise MCPError(error_type=error_type, message=message, details=details)