Initial commit

This commit is contained in:
PederHP 2024-12-30 20:30:31 +01:00
commit fdbd94b3f9

View file

@ -0,0 +1,31 @@
namespace McpDotNet.Utils.Json;
using System.Text.Json;
using System.Text.Json.Serialization;
/// <summary>
/// Extensions for configuring System.Text.Json serialization options for MCP.
/// </summary>
public static class JsonSerializerOptionsExtensions
{
/// <summary>
/// Configures JsonSerializerOptions with MCP-specific settings and converters.
/// </summary>
/// <param name="options">The options to configure.</param>
/// <returns>The configured options.</returns>
public static JsonSerializerOptions ConfigureForMcp(this JsonSerializerOptions options)
{
// Add custom converters
options.Converters.Add(new JsonRpcMessageConverter());
options.Converters.Add(new ContentJsonConverter());
options.Converters.Add(new ResourceContentsJsonConverter());
options.Converters.Add(new JsonStringEnumConverter());
// Configure general options
options.PropertyNameCaseInsensitive = true;
options.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
options.NumberHandling = JsonNumberHandling.AllowReadingFromString;
return options;
}
}