From d429b0bf649542feda66f5bc7d3f146fba40d61f Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sat, 21 Feb 2026 07:54:06 -0500 Subject: [PATCH] Fix _meta properties to use JsonObject (#1341) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com> --- src/ModelContextProtocol.Core/Protocol/Root.cs | 4 ++-- tests/ModelContextProtocol.Tests/Protocol/RootTests.cs | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ModelContextProtocol.Core/Protocol/Root.cs b/src/ModelContextProtocol.Core/Protocol/Root.cs index 465d998..0a86aaf 100644 --- a/src/ModelContextProtocol.Core/Protocol/Root.cs +++ b/src/ModelContextProtocol.Core/Protocol/Root.cs @@ -1,5 +1,5 @@ using System.Diagnostics.CodeAnalysis; -using System.Text.Json; +using System.Text.Json.Nodes; using System.Text.Json.Serialization; namespace ModelContextProtocol.Protocol; @@ -35,5 +35,5 @@ public sealed class Root /// This is reserved by the protocol for future use. /// [JsonPropertyName("_meta")] - public JsonElement? Meta { get; set; } + public JsonObject? Meta { get; set; } } diff --git a/tests/ModelContextProtocol.Tests/Protocol/RootTests.cs b/tests/ModelContextProtocol.Tests/Protocol/RootTests.cs index 8f5bbe6..1ffe13f 100644 --- a/tests/ModelContextProtocol.Tests/Protocol/RootTests.cs +++ b/tests/ModelContextProtocol.Tests/Protocol/RootTests.cs @@ -1,5 +1,6 @@ using ModelContextProtocol.Protocol; using System.Text.Json; +using System.Text.Json.Nodes; namespace ModelContextProtocol.Tests.Protocol; @@ -12,7 +13,7 @@ public static class RootTests { Uri = "file:///home/user/project", Name = "My Project", - Meta = JsonDocument.Parse("""{"custom":"data"}""").RootElement.Clone() + Meta = new JsonObject { ["custom"] = "data" } }; string json = JsonSerializer.Serialize(original, McpJsonUtilities.DefaultOptions); @@ -22,7 +23,7 @@ public static class RootTests Assert.Equal("file:///home/user/project", deserialized.Uri); Assert.Equal("My Project", deserialized.Name); Assert.NotNull(deserialized.Meta); - Assert.Equal("data", deserialized.Meta.Value.GetProperty("custom").GetString()); + Assert.Equal("data", (string?)deserialized.Meta["custom"]); } [Fact]