From fc75b64c268dbb7978a7c73916ff5a4b07d91786 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 21 Feb 2026 18:10:06 +0000
Subject: [PATCH 1/2] Initial plan
From ea43a0a96b4b17c407aea441709a4c999c6db20f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 21 Feb 2026 18:14:48 +0000
Subject: [PATCH 2/2] Clarify ToolAnnotations null semantics in XML
documentation
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
---
.../Protocol/ToolAnnotations.cs | 22 +++++++++----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/ModelContextProtocol.Core/Protocol/ToolAnnotations.cs b/src/ModelContextProtocol.Core/Protocol/ToolAnnotations.cs
index 1e8324b88..6a3cc4f03 100644
--- a/src/ModelContextProtocol.Core/Protocol/ToolAnnotations.cs
+++ b/src/ModelContextProtocol.Core/Protocol/ToolAnnotations.cs
@@ -33,11 +33,11 @@ public sealed class ToolAnnotations
/// Gets or sets a value that indicates whether the tool can perform destructive updates to its environment.
///
///
- /// The default is .
+ /// if the tool can perform destructive updates to its environment;
+ /// if the tool performs only additive updates;
+ /// if unspecified, in which case clients should assume .
///
///
- /// If , the tool can perform destructive updates to its environment.
- /// If , the tool performs only additive updates.
/// This property is most relevant when the tool modifies its environment (ReadOnly = false).
///
[JsonPropertyName("destructiveHint")]
@@ -49,8 +49,8 @@ public sealed class ToolAnnotations
///
///
/// if calling the tool repeatedly with the same arguments
- /// has no additional effect on the environment; if it does.
- /// The default is .
+ /// has no additional effect on the environment; if it does;
+ /// if unspecified, in which case clients should assume .
///
///
/// This property is most relevant when the tool modifies its environment (ReadOnly = false).
@@ -62,9 +62,9 @@ public sealed class ToolAnnotations
/// Gets or sets a value that indicates whether this tool can interact with an "open world" of external entities.
///
///
- /// if the tool can interact with an unpredictable or dynamic set of entities (like web search).
- /// if the tool's domain of interaction is closed and well-defined (like memory access).
- /// The default is .
+ /// if the tool can interact with an unpredictable or dynamic set of entities (like web search);
+ /// if the tool's domain of interaction is closed and well-defined (like memory access);
+ /// if unspecified, in which case clients should assume .
///
[JsonPropertyName("openWorldHint")]
public bool? OpenWorldHint { get; set; }
@@ -73,9 +73,9 @@ public sealed class ToolAnnotations
/// Gets or sets a value that indicates whether this tool modifies its environment.
///
///
- /// if the tool only performs read operations without changing state.
- /// if the tool can make modifications to its environment.
- /// The default is .
+ /// if the tool only performs read operations without changing state;
+ /// if the tool can make modifications to its environment;
+ /// if unspecified, in which case clients should assume .
///
///
///