diff --git a/src/ModelContextProtocol/AIContentExtensions.cs b/src/ModelContextProtocol/AIContentExtensions.cs index b6d09a2..bbdf4d5 100644 --- a/src/ModelContextProtocol/AIContentExtensions.cs +++ b/src/ModelContextProtocol/AIContentExtensions.cs @@ -178,18 +178,6 @@ public static class AIContentExtensions return [.. contents.Select(ToAIContent)]; } - /// Extracts the data from a as a Base64 string. - internal static string GetBase64Data(this DataContent dataContent) - { -#if NET - return Convert.ToBase64String(dataContent.Data.Span); -#else - return MemoryMarshal.TryGetArray(dataContent.Data, out ArraySegment segment) ? - Convert.ToBase64String(segment.Array!, segment.Offset, segment.Count) : - Convert.ToBase64String(dataContent.Data.ToArray()); -#endif - } - internal static Content ToContent(this AIContent content) => content switch { @@ -201,7 +189,7 @@ public static class AIContentExtensions DataContent dataContent => new() { - Data = dataContent.GetBase64Data(), + Data = dataContent.Base64Data.ToString(), MimeType = dataContent.MediaType, Type = dataContent.HasTopLevelMediaType("image") ? "image" : diff --git a/src/ModelContextProtocol/Client/McpClientExtensions.cs b/src/ModelContextProtocol/Client/McpClientExtensions.cs index 70b382d..59aac7f 100644 --- a/src/ModelContextProtocol/Client/McpClientExtensions.cs +++ b/src/ModelContextProtocol/Client/McpClientExtensions.cs @@ -976,7 +976,7 @@ public static class McpClientExtensions { Type = dc.HasTopLevelMediaType("image") ? "image" : "audio", MimeType = dc.MediaType, - Data = dc.GetBase64Data(), + Data = dc.Base64Data.ToString(), }; } } diff --git a/src/ModelContextProtocol/Server/AIFunctionMcpServerResource.cs b/src/ModelContextProtocol/Server/AIFunctionMcpServerResource.cs index f0d430e..a8c478b 100644 --- a/src/ModelContextProtocol/Server/AIFunctionMcpServerResource.cs +++ b/src/ModelContextProtocol/Server/AIFunctionMcpServerResource.cs @@ -400,7 +400,7 @@ internal sealed class AIFunctionMcpServerResource : McpServerResource DataContent dc => new() { - Contents = [new BlobResourceContents() { Uri = request.Params!.Uri, MimeType = dc.MediaType, Blob = dc.GetBase64Data() }], + Contents = [new BlobResourceContents() { Uri = request.Params!.Uri, MimeType = dc.MediaType, Blob = dc.Base64Data.ToString() }], }, string text => new() @@ -429,7 +429,7 @@ internal sealed class AIFunctionMcpServerResource : McpServerResource { Uri = request.Params!.Uri, MimeType = dc.MediaType, - Blob = dc.GetBase64Data() + Blob = dc.Base64Data.ToString() }, _ => throw new InvalidOperationException($"Unsupported AIContent type '{ac.GetType()}' returned from resource function."), diff --git a/src/ModelContextProtocol/Server/McpServerExtensions.cs b/src/ModelContextProtocol/Server/McpServerExtensions.cs index 0736b86..8626d8a 100644 --- a/src/ModelContextProtocol/Server/McpServerExtensions.cs +++ b/src/ModelContextProtocol/Server/McpServerExtensions.cs @@ -110,7 +110,7 @@ public static class McpServerExtensions { Type = dataContent.HasTopLevelMediaType("image") ? "image" : "audio", MimeType = dataContent.MediaType, - Data = dataContent.GetBase64Data(), + Data = dataContent.Base64Data.ToString(), }, }); break;