From 1b49523e01fb68aba63c2771cf36deab052a94d7 Mon Sep 17 00:00:00 2001 From: Josh Rubin Date: Tue, 30 Sep 2025 14:31:12 -0400 Subject: [PATCH] Added fix to always convert all items of a content list to content blocks --- src/fastmcp/tools/tool.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/fastmcp/tools/tool.py b/src/fastmcp/tools/tool.py index a4b20d5bb..721917abf 100644 --- a/src/fastmcp/tools/tool.py +++ b/src/fastmcp/tools/tool.py @@ -544,15 +544,10 @@ def _convert_to_content( if all(isinstance(item, ContentBlock) for item in result): return result - # If any item is a ContentBlock, convert non-ContentBlock items to TextContent - # without aggregating them - if any(isinstance(item, ContentBlock) for item in result): - return [ - _convert_to_single_content_block(item, serializer) - if not isinstance(item, ContentBlock) - else item - for item in result - ] - - # If none of the items are ContentBlocks, aggregate all items into a single TextContent - return [TextContent(type="text", text=_serialize_with_fallback(result, serializer))] + # Convert items that are not ContentBlocks + return [ + _convert_to_single_content_block(item, serializer) + if not isinstance(item, ContentBlock) + else item + for item in result + ]