fix: prevent duplicate rendering when tool returns both mcp-ui and mcp-apps resources (#6378)

This commit is contained in:
Andrew Harvard
2026-01-07 16:03:19 -05:00
committed by GitHub
parent 847cabb964
commit 5e116e3cbc
@@ -163,6 +163,12 @@ export default function ToolCallWithResponse({
return null;
}
const requestWithMeta = toolRequest as ToolRequestWithMeta;
const resultWithMeta = toolResponse?.toolResult as ToolResultWithMeta;
const hasMcpAppResourceURI = Boolean(
requestWithMeta._meta?.ui?.resourceUri || resultWithMeta?.value?._meta?.ui?.resourceUri
);
return (
<>
<div
@@ -181,7 +187,8 @@ export default function ToolCallWithResponse({
/>
</div>
{/* MCP UI — Inline */}
{toolResponse?.toolResult &&
{!hasMcpAppResourceURI &&
toolResponse?.toolResult &&
getToolResultContent(toolResponse.toolResult).map((content, index) => {
const resourceContent = isEmbeddedResource(content)
? { ...content, type: 'resource' as const }
@@ -203,7 +210,7 @@ export default function ToolCallWithResponse({
}
})}
{sessionId && (
{hasMcpAppResourceURI && sessionId && (
<McpAppWrapper
toolRequest={toolRequest}
toolResponse={toolResponse}