Files
labyricorn-site/labyricorn_mcp/errors.py
T
Labyricorn fe6025fa63
Deploy production / deploy (push) Successful in 21s
Add local repository MCP server
2026-08-23 10:48:33 -07:00

28 lines
726 B
Python

"""Structured errors safe to return to MCP clients."""
from __future__ import annotations
from dataclasses import dataclass, field
from typing import Any
@dataclass
class LabyricornMcpError(Exception):
code: str
message: str
details: dict[str, Any] = field(default_factory=dict)
def __str__(self) -> str:
return self.message
def as_dict(self) -> dict[str, Any]:
result: dict[str, Any] = {"code": self.code, "message": self.message}
if self.details:
result["details"] = self.details
return result
def require(condition: bool, code: str, message: str, **details: Any) -> None:
if not condition:
raise LabyricornMcpError(code, message, details)