Describe the bug
Invoking a tool which accept an array fails with a serialization error on Native AOT.
To Reproduce
Call a tool which accepts an array as a parameter, for example read_multiple_files from https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem. I used the MS extensions AI integration and used FunctionInvokingChatClient.
Expected behavior
I would expect the default serializer context to provide List<object>.
Logs
System.NotSupportedException: JsonTypeInfo metadata for type 'System.Collections.Generic.List`1[System.Object]' was not provided by TypeInfoResolver of type '[ModelContextProtocol.McpJsonUtilities+JsonContext, Microsoft.Extensions.AI.AIJsonUtilities+JsonContext]'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
at System.Text.Json.ThrowHelper.ThrowNotSupportedException_NoMetadataForType(Type type, IJsonTypeInfoResolver resolver)
at System.Text.Json.JsonSerializerOptions.GetTypeInfoInternal(Type type, Boolean ensureConfigured, Nullable`1 ensureNotNull, Boolean resolveIfMutable, Boolean fallBackToNearestAncestorType)
at System.Text.Json.JsonSerializerOptions.GetTypeInfoForRootType(Type type, Boolean fallBackToNearestAncestorType)
at System.Text.Json.JsonSerializerOptions.TryGetPolymorphicTypeInfoForRootType(Object rootValue, JsonTypeInfo& polymorphicTypeInfo)
at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.Serialize(Utf8JsonWriter writer, T& rootValue, Object rootValueBoxed)
at System.Text.Json.JsonSerializer.WriteElement[TValue](TValue& value, JsonTypeInfo`1 jsonTypeInfo)
at System.Text.Json.JsonSerializer.SerializeToElement[TValue](TValue value, JsonTypeInfo`1 jsonTypeInfo)
Additional context
I think the problem is caused by the fact the parameter value gets deserialized as List<object> by MS Extensions AI.
I know this can likely be worked around by manually providing the List<object> serialization metadata or even by converting the value to some known type, but I thought reporting this may be a good idea.
Describe the bug
Invoking a tool which accept an array fails with a serialization error on Native AOT.
To Reproduce
Call a tool which accepts an array as a parameter, for example
read_multiple_filesfrom https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem. I used the MS extensions AI integration and usedFunctionInvokingChatClient.Expected behavior
I would expect the default serializer context to provide
List<object>.Logs
Additional context
I think the problem is caused by the fact the parameter value gets deserialized as
List<object>by MS Extensions AI.I know this can likely be worked around by manually providing the
List<object>serialization metadata or even by converting the value to some known type, but I thought reporting this may be a good idea.