using MCPForUnity.Editor.Models; namespace MCPForUnity.Editor.Clients { /// /// Contract for MCP client configurators. Each client is responsible for /// status detection, auto-configure, and manual snippet/steps. /// public interface IMcpClientConfigurator { /// Stable identifier (e.g., "cursor"). string Id { get; } /// Display name shown in the UI. string DisplayName { get; } /// Current status cached by the configurator. McpStatus Status { get; } /// True if this client supports auto-configure. bool SupportsAutoConfigure { get; } /// Label to show on the configure button for the current state. string GetConfigureActionLabel(); /// Returns the platform-specific config path (or message for CLI-managed clients). string GetConfigPath(); /// Checks and updates status; returns current status. McpStatus CheckStatus(bool attemptAutoRewrite = true); /// Runs auto-configuration (register/write file/CLI etc.). void Configure(); /// Returns the manual configuration snippet (JSON/TOML/commands). string GetManualSnippet(); /// Returns ordered human-readable installation steps. System.Collections.Generic.IList GetInstallationSteps(); } }