From 59c3d9b52659f448167a2eb72cd2092dd740476c Mon Sep 17 00:00:00 2001 From: Mike Kistler Date: Tue, 25 Nov 2025 11:22:02 -0800 Subject: [PATCH] Helper method to merge additional metadata into requests, results, and notifications --- .../Protocol/NotificationParams.cs | 17 +++++++++++++++++ .../Protocol/RequestParams.cs | 17 +++++++++++++++++ .../Protocol/Result.cs | 17 +++++++++++++++++ 3 files changed, 51 insertions(+) diff --git a/src/ModelContextProtocol.Core/Protocol/NotificationParams.cs b/src/ModelContextProtocol.Core/Protocol/NotificationParams.cs index 54432a4c2..49899aa83 100644 --- a/src/ModelContextProtocol.Core/Protocol/NotificationParams.cs +++ b/src/ModelContextProtocol.Core/Protocol/NotificationParams.cs @@ -21,4 +21,21 @@ private protected NotificationParams() /// [JsonPropertyName("_meta")] public JsonObject? Meta { get; set; } + + /// + /// Merges additional metadata into the existing Meta object. + /// + /// The additional metadata to merge. + public void MergeMeta(JsonObject additionalMeta) + { + if (Meta == null) + { + Meta = new JsonObject(); + } + + foreach (var kvp in additionalMeta) + { + Meta[kvp.Key] = kvp.Value; + } + } } \ No newline at end of file diff --git a/src/ModelContextProtocol.Core/Protocol/RequestParams.cs b/src/ModelContextProtocol.Core/Protocol/RequestParams.cs index b45f55f7a..4d2ced308 100644 --- a/src/ModelContextProtocol.Core/Protocol/RequestParams.cs +++ b/src/ModelContextProtocol.Core/Protocol/RequestParams.cs @@ -65,4 +65,21 @@ public ProgressToken? ProgressToken } } } + + /// + /// Merges additional metadata into the existing Meta object. + /// + /// The additional metadata to merge. + public void MergeMeta(JsonObject additionalMeta) + { + if (Meta == null) + { + Meta = new JsonObject(); + } + + foreach (var kvp in additionalMeta) + { + Meta[kvp.Key] = kvp.Value; + } + } } diff --git a/src/ModelContextProtocol.Core/Protocol/Result.cs b/src/ModelContextProtocol.Core/Protocol/Result.cs index 58b076ddb..fd984da2b 100644 --- a/src/ModelContextProtocol.Core/Protocol/Result.cs +++ b/src/ModelContextProtocol.Core/Protocol/Result.cs @@ -21,4 +21,21 @@ private protected Result() /// [JsonPropertyName("_meta")] public JsonObject? Meta { get; set; } + + /// + /// Merges additional metadata into the existing Meta object. + /// + /// The additional metadata to merge. + public void MergeMeta(JsonObject additionalMeta) + { + if (Meta == null) + { + Meta = new JsonObject(); + } + + foreach (var kvp in additionalMeta) + { + Meta[kvp.Key] = kvp.Value; + } + } }