From 6a38242fc2b66e46414f6953e4eeaee5dbc4da05 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Tue, 17 Feb 2026 16:05:01 -0500
Subject: [PATCH] Clarify request-scoped tool semantics in
CreateMessageRequestParams (#1295)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
---
.../Protocol/CreateMessageRequestParams.cs | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/ModelContextProtocol.Core/Protocol/CreateMessageRequestParams.cs b/src/ModelContextProtocol.Core/Protocol/CreateMessageRequestParams.cs
index 07f52e6..2c029ba 100644
--- a/src/ModelContextProtocol.Core/Protocol/CreateMessageRequestParams.cs
+++ b/src/ModelContextProtocol.Core/Protocol/CreateMessageRequestParams.cs
@@ -137,12 +137,19 @@ public sealed class CreateMessageRequestParams : RequestParams
///
/// Gets or sets tools that the model can use during generation.
///
+ ///
+ /// The tool definitions in this array are scoped to this sampling request.
+ /// They do not need to correspond to tools registered on the server via .
+ ///
[JsonPropertyName("tools")]
public IList? Tools { get; set; }
///
/// Gets or sets controls for how the model uses tools.
///
+ ///
+ /// This controls whether and how the model uses the request-scoped during sampling.
+ ///
[JsonPropertyName("toolChoice")]
public ToolChoice? ToolChoice { get; set; }