From 9b5d0fe80a612d770507b76aa7f5ef829d8e8928 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 11:33:01 -0500 Subject: [PATCH] Make Tool.Name required to match other protocol types (#1351) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com> --- src/ModelContextProtocol.Core/Protocol/Tool.cs | 2 +- tests/ModelContextProtocol.Tests/Protocol/ToolTests.cs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ModelContextProtocol.Core/Protocol/Tool.cs b/src/ModelContextProtocol.Core/Protocol/Tool.cs index dfce0ea..f7aec6e 100644 --- a/src/ModelContextProtocol.Core/Protocol/Tool.cs +++ b/src/ModelContextProtocol.Core/Protocol/Tool.cs @@ -15,7 +15,7 @@ public sealed class Tool : IBaseMetadata { /// [JsonPropertyName("name")] - public string Name { get; set; } = string.Empty; + public required string Name { get; set; } /// [JsonPropertyName("title")] diff --git a/tests/ModelContextProtocol.Tests/Protocol/ToolTests.cs b/tests/ModelContextProtocol.Tests/Protocol/ToolTests.cs index bfe9840..5b21605 100644 --- a/tests/ModelContextProtocol.Tests/Protocol/ToolTests.cs +++ b/tests/ModelContextProtocol.Tests/Protocol/ToolTests.cs @@ -95,7 +95,7 @@ public static class ToolTests [Fact] public static void ToolInputSchema_HasValidDefaultSchema() { - var tool = new Tool(); + var tool = new Tool { Name = "test" }; JsonElement jsonElement = tool.InputSchema; Assert.Equal(JsonValueKind.Object, jsonElement.ValueKind); @@ -119,7 +119,7 @@ public static class ToolTests public static void ToolInputSchema_RejectsInvalidSchemaDocuments(string invalidSchema) { using var document = JsonDocument.Parse(invalidSchema); - var tool = new Tool(); + var tool = new Tool { Name = "test" }; Assert.Throws(() => tool.InputSchema = document.RootElement); } @@ -133,6 +133,7 @@ public static class ToolTests using var document = JsonDocument.Parse(validSchema); Tool tool = new() { + Name = "test", InputSchema = document.RootElement };