Added MCp support
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
using PostFundManagement.Application.Abstractions.Mcp;
|
||||
using PostFundManagement.Application.Mcp;
|
||||
using Result = FluentResults.Result;
|
||||
|
||||
namespace PostFundManagement.Application.Extensions;
|
||||
|
||||
public static class Mcp
|
||||
{
|
||||
public static Records<T> ToMcpResult<T>(this Result<T> result)
|
||||
{
|
||||
if (result.IsSuccess)
|
||||
return Records<T>.Ok(result.Value);
|
||||
|
||||
var errorMsg = string.Join("; ", result.Errors.Select(e => e.Message));
|
||||
var errorList = result.Errors.Select(e => e.Message).ToList();
|
||||
|
||||
return Records<T>.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<GrantsMcpTools>();
|
||||
services.AddScoped<ProjectsMcpTools>();
|
||||
services.AddScoped<ExecutionMcpTools>();
|
||||
services.AddScoped<GovernanceMcpTools>();
|
||||
services.AddScoped<EvidenceMcpTools>();
|
||||
services.AddScoped<CommunicationsMcpTools>();
|
||||
services.AddScoped<UsersMcpTools>();
|
||||
|
||||
services.AddScoped<IInAppMcpClient, InAppMcpClient>();
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
public static IMcpServerBuilder WithApplicationMcpTools(this IMcpServerBuilder builder)
|
||||
{
|
||||
builder.WithTools<GrantsMcpTools>()
|
||||
.WithTools<ProjectsMcpTools>()
|
||||
.WithTools<ExecutionMcpTools>()
|
||||
.WithTools<GovernanceMcpTools>()
|
||||
.WithTools<EvidenceMcpTools>()
|
||||
.WithTools<CommunicationsMcpTools>()
|
||||
.WithTools<UsersMcpTools>();
|
||||
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user