diff --git a/clients/web/src/components/groups/ToolResultPanel/ToolResultPanel.stories.tsx b/clients/web/src/components/groups/ToolResultPanel/ToolResultPanel.stories.tsx index 29a942ec..059b3994 100644 --- a/clients/web/src/components/groups/ToolResultPanel/ToolResultPanel.stories.tsx +++ b/clients/web/src/components/groups/ToolResultPanel/ToolResultPanel.stories.tsx @@ -89,3 +89,17 @@ export const MixedContent: Story = { result: mixedResult, }, }; + +export const ErrorResult: Story = { + args: { + result: { + isError: true, + content: [ + { + type: "text", + text: "ENOENT: no such file or directory, open '/data/missing.txt'", + }, + ], + }, + }, +}; diff --git a/clients/web/src/components/groups/ToolResultPanel/ToolResultPanel.tsx b/clients/web/src/components/groups/ToolResultPanel/ToolResultPanel.tsx index 13a41e91..8906de01 100644 --- a/clients/web/src/components/groups/ToolResultPanel/ToolResultPanel.tsx +++ b/clients/web/src/components/groups/ToolResultPanel/ToolResultPanel.tsx @@ -1,4 +1,4 @@ -import { Button, Group, Stack, Text, Title } from "@mantine/core"; +import { Alert, Button, Group, Stack, Text, Title } from "@mantine/core"; import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js"; import { ContentViewer } from "../../elements/ContentViewer/ContentViewer"; @@ -19,6 +19,11 @@ export function ToolResultPanel({ result, onClear }: ToolResultPanelProps) { Results Clear + {result.isError && ( + + Tool execution returned an error + + )} {result.content.length === 0 ? ( No results yet ) : (