Forge
csharpf583a481
1using System.Collections.Frozen;
2using System.Text.Json;
3
4namespace AIGuiders.SampleMcp;
5
6internal static class ToolHandlers
7{
8 internal static string Handle(string name, IReadOnlyDictionary<string, JsonElement> args)
9 {
10 args ??= FrozenDictionary<string, JsonElement>.Empty;
11 return name switch
12 {
13 "hello" => HandleHello(args),
14 _ => throw new ArgumentException($"Unknown tool: {name}", nameof(name)),
15 };
16 }
17
18 private static string HandleHello(IReadOnlyDictionary<string, JsonElement> args)
19 {
20 var who = args.TryGetValue("name", out var el) && el.ValueKind == JsonValueKind.String
21 ? el.GetString()
22 : null;
23
24 who = string.IsNullOrWhiteSpace(who) ? "world" : who.Trim();
25 return $"Hello, {who}!";
26 }
27}
28
29
View only · write via MCP/CIDE