using ModelContextProtocol.Protocol.Types;
namespace ModelContextProtocol.Server;
///
/// Represents a server that can communicate with a client using the MCP protocol.
///
public interface IMcpServer : IMcpEndpoint
{
///
/// Gets the capabilities supported by the client.
///
ClientCapabilities? ClientCapabilities { get; }
///
/// Gets the version and implementation information of the client.
///
Implementation? ClientInfo { get; }
/// Gets the options used to construct this server.
McpServerOptions ServerOptions { get; }
///
/// Gets the service provider for the server.
///
IServiceProvider? Services { get; }
///
/// Runs the server, listening for and handling client requests.
///
Task RunAsync(CancellationToken cancellationToken = default);
}