using ModelContextProtocol.Client;
using PostFundManagement.Application.Mcp;
namespace PostFundManagement.Application.Abstractions.Mcp;
///
/// In-app MCP access interface providing in-process tool discovery and execution without network or HTTP hops.
///
public interface IInAppMcpClient
{
///
/// Lists all available MCP tools defined across Application.Services groupings.
///
IReadOnlyList GetAvailableTools();
///
/// Directly executes an in-app MCP tool by name using the current service scope.
///
Task ExecuteToolAsync(
string toolName,
IReadOnlyDictionary? arguments = null,
CancellationToken cancellationToken = default);
///
/// Creates a fully functional standard ModelContextProtocol McpClient connected in-process over in-memory streams.
///
Task CreateProtocolClientAsync(CancellationToken cancellationToken = default);
}