namespace MCPForUnity.Editor.Services.Server
{
///
/// Interface for building uvx/server command strings.
/// Handles platform-specific command construction for starting the MCP HTTP server.
///
public interface IServerCommandBuilder
{
///
/// Attempts to build the command parts for starting the local HTTP server.
///
/// Output: the executable file name (e.g., uvx path)
/// Output: the command arguments
/// Output: the full command string for display
/// Output: error message if the command cannot be built
/// True if the command was built successfully
bool TryBuildCommand(out string fileName, out string arguments, out string displayCommand, out string error);
///
/// Builds the uv path from the uvx path by replacing uvx with uv.
///
/// Path to uvx executable
/// Path to uv executable
string BuildUvPathFromUvx(string uvxPath);
///
/// Gets the platform-specific PATH prepend string for finding uv/uvx.
///
/// Paths to prepend to PATH environment variable
string GetPlatformSpecificPathPrepend();
///
/// Quotes a string if it contains spaces.
///
/// The input string
/// The string, wrapped in quotes if it contains spaces
string QuoteIfNeeded(string input);
}
}