Source code for ralph.mcp.tools.tool_result
"""Serializable MCP tool result."""
from __future__ import annotations
from dataclasses import dataclass
from ralph.mcp.multimodal.artifacts import (
AudioContent,
DocumentContent,
ImageContent,
PdfContent,
ResourceReferenceContent,
VideoContent,
)
from .tool_content import ToolContent
type ContentBlock = (
ToolContent
| ImageContent
| PdfContent
| DocumentContent
| AudioContent
| VideoContent
| ResourceReferenceContent
)
[docs]
@dataclass(frozen=True)
class ToolResult:
"""Serializable MCP tool result."""
content: list[ContentBlock]
is_error: bool | None = None
[docs]
def to_dict(self) -> dict[str, object]:
"""Serialize the result to an MCP-compatible dictionary."""
return {
"content": [item.to_dict() for item in self.content],
"isError": self.is_error,
}