Remove special-casing of string enumerables in McpServerTool (#699)

We special-case string enumerables, translating them to an array of text content blocks, but other enumerables just get serialized, and there's a reasonable expectation that returning a string[] would produce a JSON array of strings. Just delete the special-casing.
This commit is contained in:
Stephen Toub 2025-08-13 13:05:42 -04:00 • committed by GitHub
commit 70960e1f1b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -356,9 +356,8 @@ public partial class McpServerToolTests
var result = await tool.InvokeAsync(
new RequestContext<CallToolRequestParams>(mockServer.Object),
TestContext.Current.CancellationToken);
Assert.Equal(2, result.Content.Count);
Assert.Equal("42", Assert.IsType<TextContentBlock>(result.Content[0]).Text);
Assert.Equal("43", Assert.IsType<TextContentBlock>(result.Content[1]).Text);
Assert.Single(result.Content);
Assert.Equal("""["42","43"]""", Assert.IsType<TextContentBlock>(result.Content[0]).Text);
}
[Fact]