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