File tree Expand file tree Collapse file tree
src/ModelContextProtocol.Core/Server Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -537,22 +537,26 @@ typeProperty.ValueKind is not JsonValueKind.String ||
537537 return null ;
538538 }
539539
540- JsonNode ? nodeResult = aiFunctionResult switch
540+ JsonElement ? elementResult = aiFunctionResult switch
541541 {
542- JsonNode node => node ,
543- JsonElement jsonElement => JsonSerializer . SerializeToNode ( jsonElement , McpJsonUtilities . JsonContext . Default . JsonElement ) ,
544- _ => JsonSerializer . SerializeToNode ( aiFunctionResult , AIFunction . JsonSerializerOptions . GetTypeInfo ( typeof ( object ) ) ) ,
542+ JsonElement jsonElement => jsonElement ,
543+ JsonNode node => node . Deserialize ( McpJsonUtilities . JsonContext . Default . JsonElement ) ,
544+ null => null ,
545+ _ => JsonSerializer . SerializeToElement ( aiFunctionResult , AIFunction . JsonSerializerOptions . GetTypeInfo ( typeof ( object ) ) ) ,
545546 } ;
546547
547548 if ( _structuredOutputRequiresWrapping )
548549 {
549- nodeResult = new JsonObject
550+ JsonNode ? resultNode = elementResult is { } je
551+ ? JsonSerializer . SerializeToNode ( je , McpJsonUtilities . JsonContext . Default . JsonElement )
552+ : null ;
553+ return new JsonObject
550554 {
551- [ "result" ] = nodeResult
552- } ;
555+ [ "result" ] = resultNode
556+ } . Deserialize ( McpJsonUtilities . JsonContext . Default . JsonElement ) ;
553557 }
554558
555- return nodeResult ? . Deserialize ( McpJsonUtilities . JsonContext . Default . JsonElement ) ;
559+ return elementResult ;
556560 }
557561
558562 private static CallToolResult ConvertAIContentEnumerableToCallToolResult ( IEnumerable < AIContent > contentItems , JsonElement ? structuredContent )
You can’t perform that action at this time.
0 commit comments