Add WithTools/Prompts overloads that accept McpServerTool/Prompts (#319)

To avoid folks needing to know how you should be registering tool instances into DI.
This commit is contained in:
Stephen Toub 2025-04-16 15:06:19 -04:00 • committed by GitHub
commit b0cd6541ce
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -25,10 +25,10 @@ public class McpClientExtensionsTests : ClientServerTestBase
for (int f = 0; f < 10; f++)
{
string name = $"Method{f}";
services.AddSingleton(McpServerTool.Create((int i) => $"{name} Result {i}", new() { Name = name }));
mcpServerBuilder.WithTools([McpServerTool.Create((int i) => $"{name} Result {i}", new() { Name = name })]);
}
services.AddSingleton(McpServerTool.Create([McpServerTool(Destructive = false, OpenWorld = true)] (string i) => $"{i} Result", new() { Name = "ValuesSetViaAttr" }));
services.AddSingleton(McpServerTool.Create([McpServerTool(Destructive = false, OpenWorld = true)] (string i) => $"{i} Result", new() { Name = "ValuesSetViaOptions", Destructive = true, OpenWorld = false, ReadOnly = true }));
mcpServerBuilder.WithTools([McpServerTool.Create([McpServerTool(Destructive = false, OpenWorld = true)] (string i) => $"{i} Result", new() { Name = "ValuesSetViaAttr" })]);
mcpServerBuilder.WithTools([McpServerTool.Create([McpServerTool(Destructive = false, OpenWorld = true)] (string i) => $"{i} Result", new() { Name = "ValuesSetViaOptions", Destructive = true, OpenWorld = false, ReadOnly = true })]);
}
[Theory]