CoplayDev/unity-mcp · error · InvalidOperationException

Cherry Studio uses UI-based configuration. Please use the Ma

Error message

Cherry Studio uses UI-based configuration. Please use the Manual Configuration snippet and Installation Steps to configure manually.

What it means

CherryStudioConfigurator.Configure() is an unconditional throw — Cherry Studio stores MCP server config entirely through its own GUI, not a JSON file the plugin can write. The class sets SupportsAutoConfigure=false and CheckStatus always returns NotConfigured, so calling Configure() is a contract violation. The message directs the user to the manual snippet and installation steps instead.

Source

Thrown at MCPForUnity/Editor/Clients/Configurators/CherryStudioConfigurator.cs:51

            "  - Name: unity-mcp",
            "  - Type: STDIO",
            "  - Command: uvx",
            "  - Arguments: Copy from the Manual Configuration JSON below",
            "Click Save and restart Cherry Studio",
            "",
            "Note: Cherry Studio uses UI-based configuration.",
            "Use the manual snippet below as reference for the values to enter."
        };

        public override McpStatus CheckStatus(bool attemptAutoRewrite = true)
        {
            client.SetStatus(McpStatus.NotConfigured, "Cherry Studio requires manual UI configuration");
            return client.status;
        }

        public override void Configure()
        {
            throw new InvalidOperationException(
                "Cherry Studio uses UI-based configuration. " +
                "Please use the Manual Configuration snippet and Installation Steps to configure manually."
            );
        }

        public override string GetManualSnippet()
        {
            bool useHttp = EditorConfigurationCache.Instance.UseHttpTransport;

            if (useHttp)
            {
                return "# Cherry Studio does not support WebSocket transport.\n" +
                       "# Cherry Studio supports STDIO and SSE transports.\n" +
                       "# \n" +
                       "# To use Cherry Studio:\n" +
                       "# 1. Switch transport to 'Stdio' in Advanced Settings below\n" +
                       "# 2. Return to this configuration screen\n" +
                       "# 3. Copy the STDIO configuration snippet that will appear\n" +

View on GitHub (pinned to c21bf496bc)

Solutions

  1. Check configurator.SupportsAutoConfigure before invoking Configure(); skip Cherry Studio and surface GetManualSnippet() + GetInstallationSteps() to the user instead.
  2. In bulk/configure-all loops, filter with clients.Where(c => c.SupportsAutoConfigure) before calling Configure().
  3. If you are an end user: follow the Installation Steps shown in the MCP for Unity window — open Cherry Studio Settings > MCP Server and enter the values manually.

Example fix

// before
foreach (var c in detectedClients) { c.Configure(); }

// after
foreach (var c in detectedClients)
{
    if (!c.SupportsAutoConfigure) continue;
    c.Configure();
}
Defensive patterns

Strategy: validation

Validate before calling

if (!configurator.SupportsAutoConfigure)
{
    // Show manual snippet instead of calling Configure()
    ShowToUser(configurator.GetManualSnippet(), configurator.GetInstallationSteps());
    return;
}

Type guard

public static bool CanAutoConfigure(IMcpClientConfigurator c) => c.SupportsAutoConfigure;

Prevention

When it happens

Trigger: Calling configurator.Configure() on a CherryStudioConfigurator instance — e.g., a 'Configure All Detected Clients' bulk operation that does not skip clients where SupportsAutoConfigure is false, or UI code that invokes Configure() without checking the flag.

Common situations: A developer extends the bulk configure pipeline or adds a new entry point and forgets to gate on SupportsAutoConfigure. End users clicking a 'Configure' button for Cherry Studio if the UI layer does not hide/disable it.

Related errors


AI-assisted analysis of CoplayDev/unity-mcp@c21bf496bc (2026-08-13). Data as JSON: /api/errors/09bcb69d3d91c8cf. Report an issue: GitHub.