using PostFundManagement.Application.Abstractions.Mcp; using PostFundManagement.Application.Mcp; using Result = FluentResults.Result; namespace PostFundManagement.Application.Extensions; public static class Mcp { public static Records ToMcpResult(this Result result) { if (result.IsSuccess) return Records.Ok(result.Value); var errorMsg = string.Join("; ", result.Errors.Select(e => e.Message)); var errorList = result.Errors.Select(e => e.Message).ToList(); return Records.Fail(errorMsg, errorList); } public static McpToolResult ToMcpResult(this Result result, string successMessage = "Operation completed successfully.") { if (result.IsSuccess) return McpToolResult.Ok(successMessage); var errorMsg = string.Join("; ", result.Errors.Select(e => e.Message)); var errorList = result.Errors.Select(e => e.Message).ToList(); return McpToolResult.Fail(errorMsg, errorList); } public static IServiceCollection AddApplicationMcpTools(this IServiceCollection services) { services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); return services; } public static IMcpServerBuilder WithApplicationMcpTools(this IMcpServerBuilder builder) { builder.WithTools() .WithTools() .WithTools() .WithTools() .WithTools() .WithTools() .WithTools(); return builder; } }