using ColaFlow.Modules.Mcp.Contracts.JsonRpc;

namespace ColaFlow.Modules.Mcp.Application.Handlers;

/// <summary>
/// Interface for MCP method handlers
/// </summary>
public interface IMcpMethodHandler
{
    /// <summary>
    /// The method name this handler supports
    /// </summary>
    string MethodName { get; }

    /// <summary>
    /// Handles the MCP method request
    /// </summary>
    /// <param name="params">Request parameters</param>
    /// <param name="cancellationToken">Cancellation token</param>
    /// <returns>Method result</returns>
    Task<object?> HandleAsync(object? @params, CancellationToken cancellationToken);
}
