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;
+ }
+ }
}