diff --git a/src/ModelContextProtocol.Core/Protocol/NotificationParams.cs b/src/ModelContextProtocol.Core/Protocol/NotificationParams.cs index 54432a4c..49899aa8 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 b45f55f7..4d2ced30 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 58b076dd..fd984da2 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; + } + } }