fix: prevent duplicate rendering when tool returns both mcp-ui and mcp-apps resources (#6378)
This commit is contained in:
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user