From 1f126d92fdb9dfba13cf895d69ee4366ce7f0169 Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Tue, 8 Apr 2025 21:43:59 -0400 Subject: [PATCH] Avoid propagating server tool exception message to client --- src/ModelContextProtocol/Server/AIFunctionMcpServerTool.cs | 2 +- .../Configuration/McpServerBuilderExtensionsToolsTests.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ModelContextProtocol/Server/AIFunctionMcpServerTool.cs b/src/ModelContextProtocol/Server/AIFunctionMcpServerTool.cs index 0f33c8e41..ad37f37d6 100644 --- a/src/ModelContextProtocol/Server/AIFunctionMcpServerTool.cs +++ b/src/ModelContextProtocol/Server/AIFunctionMcpServerTool.cs @@ -270,7 +270,7 @@ public override async Task InvokeAsync( return new CallToolResponse() { IsError = true, - Content = [new() { Text = e.Message, Type = "text" }], + Content = [new() { Text = $"An error occurred invoking '{request.Params?.Name}'.", Type = "text" }], }; } diff --git a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsToolsTests.cs b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsToolsTests.cs index a93a3090e..57e6eb818 100644 --- a/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsToolsTests.cs +++ b/tests/ModelContextProtocol.Tests/Configuration/McpServerBuilderExtensionsToolsTests.cs @@ -376,7 +376,7 @@ public async Task Returns_IsError_Content_When_Tool_Fails() Assert.True(result.IsError); Assert.NotNull(result.Content); Assert.NotEmpty(result.Content); - Assert.Contains("Test error", result.Content[0].Text); + Assert.Contains("An error occurred", result.Content[0].Text); } [Fact]