csharp-sdk/samples/anthropic/tools/ToolsConsole/McpToolExtensions.cs
2025-03-08 17:18:09 +01:00

39 lines
No EOL
1.1 KiB
C#

using Anthropic.SDK.Common;
using System.Text.Json;
using System.Text.Json.Nodes;
namespace McpDotNet;
public static class McpToolExtensions
{
public static IList<Anthropic.SDK.Common.Tool> ToAnthropicTools(this IEnumerable<McpDotNet.Protocol.Types.Tool> tools)
{
if (tools is null)
{
throw new ArgumentNullException(nameof(tools));
}
List<Anthropic.SDK.Common.Tool> result = [];
foreach (var tool in tools)
{
var function = tool.InputSchema == null
? new Function(tool.Name, tool.Description)
: new Function(tool.Name, tool.Description, JsonSerializer.Serialize(tool.InputSchema));
result.Add(function);
}
return result;
}
public static Dictionary<string, object>? ToMCPArguments(this JsonNode jsonNode)
{
if (jsonNode == null)
return null;
// Convert JsonNode to Dictionary<string, object>
return jsonNode.AsObject()
.ToDictionary(
prop => prop.Key,
prop => JsonSerializer.Deserialize<object>(prop.Value)!
);
}
}