Skip to content

Fix on config and log#921

Merged
Scriptwonder merged 1 commit intoCoplayDev:betafrom
Scriptwonder:config-fix
Mar 11, 2026
Merged

Fix on config and log#921
Scriptwonder merged 1 commit intoCoplayDev:betafrom
Scriptwonder:config-fix

Conversation

@Scriptwonder
Copy link
Collaborator

@Scriptwonder Scriptwonder commented Mar 11, 2026

Config-related fix that should fix #909, #820

Related Issues

Additional Notes

Summary by Sourcery

Standardize MCP transport configuration metadata and improve logging behavior for console reading and command dispatch.

Bug Fixes:

  • Ensure all MCP clients include the appropriate transport type field for HTTP and stdio configurations, including Cline-specific streamable HTTP endpoints.
  • Prevent stale log entry counts by relying on StartGettingEntries() to determine the number of console entries during iteration.
  • Record error responses in MCP command logs with explicit error status and message detail.

Enhancements:

  • Align KiloCode configuration with non-VSCode layout to match its actual config structure.

Tests:

  • Update configuration write tests to expect transport type metadata for all clients and transports.

Summary by CodeRabbit

  • Bug Fixes

    • Enhanced error logging to capture and include error details from command results.
    • Improved console entry count accuracy during retrieval operations.
  • Refactor

    • Streamlined transport configuration generation for consistent handling across all client types.

Copilot AI review requested due to automatic review settings March 11, 2026 18:52
@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Mar 11, 2026

Reviewer's Guide

Standardizes MCP transport type configuration across clients, improves Unity console log entry iteration and error logging, and adjusts Kilo Code client layout configuration.

Sequence diagram for command processing and error-aware logging in TransportCommandDispatcher

sequenceDiagram
    participant Client
    participant TransportCommandDispatcher
    participant PendingCommand
    participant Handler as CommandHandler
    participant McpLogRecord
    participant ErrorResponse

    Client->>TransportCommandDispatcher: Send command
    TransportCommandDispatcher->>PendingCommand: Create and register PendingCommand
    TransportCommandDispatcher->>Handler: Execute command
    Handler-->>TransportCommandDispatcher: result (may be ErrorResponse)

    TransportCommandDispatcher->>TransportCommandDispatcher: Stop stopwatch
    alt result is ErrorResponse
        TransportCommandDispatcher->>ErrorResponse: Cast result to ErrorResponse
        TransportCommandDispatcher->>McpLogRecord: Log(command.type, parameters, logType, ERROR, elapsedMs, errResp.Error)
    else result is success
        TransportCommandDispatcher->>McpLogRecord: Log(command.type, parameters, logType, SUCCESS, elapsedMs, null)
    end

    TransportCommandDispatcher->>PendingCommand: TrySetResult({ status = success, result })
    PendingCommand-->>Client: Serialized JSON response
Loading

Sequence diagram for Unity console log entry iteration using ReadConsole

sequenceDiagram
    participant Tool as ReadConsole
    participant LogEntriesAPI as UnityLogEntries

    Tool->>LogEntriesAPI: Invoke StartGettingEntries()
    LogEntriesAPI-->>Tool: startResult (entryCount or other)

    alt startResult is int
        Tool->>Tool: totalEntries = startResult
    else startResult not int
        Tool->>LogEntriesAPI: Invoke GetCount()
        LogEntriesAPI-->>Tool: totalEntries
    end

    loop Iterate entries
        Tool->>LogEntriesAPI: GetEntryInternal(index, logEntry)
        LogEntriesAPI-->>Tool: logEntry data
        Tool->>Tool: Process and optionally include stacktrace
    end

    Tool->>LogEntriesAPI: StopGettingEntries()
Loading

Flow diagram for MCP transport type configuration in ConfigJsonBuilder

flowchart TD
    A[Start PopulateUnityNode] --> B{Endpoint uses HTTP?}
    B -- Yes --> C{Client is Cline?}
    C -- Yes --> D[Set unity.type = streamableHttp]
    C -- No --> E[Set unity.type = http]
    D --> F[Ensure url/serverUrl set for HTTP]
    E --> F[Ensure url/serverUrl set for HTTP]

    B -- No (stdio) --> G[Remove url and serverUrl from unity]
    G --> H[Set unity.type = stdio]

    F --> I[Continue building config]
    H --> I[Continue building config]
    I --> J[End PopulateUnityNode]

    %% Kilo Code layout
    K[Configure KiloCode client] --> L[Set IsVsCodeLayout = false]
    L --> M[Use generic MCP layout instead of VSCode-specific]
Loading

File-Level Changes

Change Details Files
Standardize MCP transport 'type' field behavior for HTTP and stdio transports across all clients, including Cline.
  • Set 'type' to 'streamableHttp' for Cline when using HTTP transport and to 'http' for all other HTTP clients to avoid SSE defaults.
  • Always set 'type' to 'stdio' for stdio transport instead of conditionally based on VS Code or Cline.
  • Remove logic that stripped the 'type' field for non‑VSCode/Claude clients so that all clients now receive an explicit transport type.
MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs
Align configuration tests with new always-present transport type behavior.
  • Remove VS Code–specific branching in transport configuration tests.
  • Update HTTP and stdio transport assertions to always expect 'type' to be set to the appropriate value for all clients.
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/WriteToConfigTests.cs
Make Unity editor console reading more robust by using StartGettingEntries() return value for entry count.
  • Use the integer return value from StartGettingEntries() as the authoritative total entry count.
  • Fallback to GetCount() only if StartGettingEntries() does not return an int, avoiding stale counts during active iteration.
MCPForUnity/Editor/Tools/ReadConsole.cs
Improve synchronous command logging with explicit success/error status and error message capture.
  • Determine log status based on whether the command result is an ErrorResponse.
  • Pass status and extracted error text into McpLogRecord.Log along with existing metadata.
MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs
Adjust Kilo Code client configuration to no longer use VS Code layout semantics.
  • Set IsVsCodeLayout to false for the KiloCode McpClient configuration so that it follows the generic layout path.
MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs

Assessment against linked issues

Issue Objective Addressed Explanation
#909 Ensure the generated MCP configuration for Unity includes an explicit type field (e.g., http/stdio or streamableHttp where required) for all clients so that tools like Copilot-Cli do not incorrectly default to SSE and fail to connect.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 11, 2026

📝 Walkthrough

Walkthrough

This PR removes VSCode-specific configuration logic throughout the codebase, standardizes the "type" field in MCP JSON transport configurations to always be present, enhances error logging in command processing, and refines how console entry counts are determined during iteration.

Changes

Cohort / File(s) Summary
Configuration standardization
MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs, MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs
Changed default layout flag and simplified client-specific type field logic: HTTP transport now uses "streamableHttp" for Cline, "http" otherwise; stdio transport unconditionally sets type to "stdio" (removes VSCode/Claude Code special-casing).
Transport command logging
MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs
Enhanced logging to detect and report error results from commands; introduces syncLogStatus and syncLogError, and updates McpLogRecord.Log() call signature to accept error message parameter (5→6 params).
Console entry retrieval
MCPForUnity/Editor/Tools/ReadConsole.cs
Modified totalEntries derivation to use StartGettingEntries return value (when int) instead of always calling GetCount, aligning totals with actual entry count during iteration.
Test simplification
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/WriteToConfigTests.cs
Removed VSCode-dependent branching; now consistently asserts that "type" field is always present for HTTP and STDIO transports, regardless of client layout.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Poem

🐰✨ VSCode branches trimmed with care,
Type fields now standard, always there,
Errors logged true, no stone unturned,
Console counts aligned—lessons learned!
Unity's config, sleek and spare! 🌟

🚥 Pre-merge checks | ❌ 5

❌ Failed checks (1 warning, 4 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Fix on config and log' is vague and generic, failing to convey specific information about the changes despite referencing 'config' and 'log'. Use a more descriptive title that clarifies the specific configuration and logging fixes, e.g., 'Standardize MCP transport type field and improve error logging'.
Description check ❓ Inconclusive The PR description partially addresses the template but lacks key sections: no 'Type of Change' specified, no 'Changes Made' details, and no 'Testing/Screenshots' information despite significant code modifications. Complete the PR description by specifying the change type, detailing specific changes made in each file, and documenting any testing performed.
Linked Issues check ❓ Inconclusive The PR addresses issue #909 by ensuring MCP transport type field is consistently included in HTTP/stdio configurations, but issue #820 is mentioned without context on how it is resolved. Clarify how changes specifically address issue #820 and provide additional details on the resolution approach for #909.
Out of Scope Changes check ❓ Inconclusive While most changes align with fixing configuration issues, the modification to ReadConsole.cs for deriving totalEntries and changes to logging in TransportCommandDispatcher appear tangentially related to the core configuration issue #909. Explain the relationship between console entry count changes and command logging improvements to the configuration/connectivity issue or consider moving these to separate PRs.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 2 issues, and left some high level feedback:

  • In ReadConsole, if StartGettingEntries() ever changes to return a non-int, the fallback to GetCount() silently reverts to the old behavior; consider explicitly handling or logging the unexpected return type so issues are easier to diagnose when Unity internals change.
  • The logging in TransportCommandDispatcher only treats ErrorResponse as an error case; if other response types can indicate failures, you may want to centralize status determination instead of hardcoding a single error type to keep logs consistent with actual outcomes.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In ReadConsole, if StartGettingEntries() ever changes to return a non-int, the fallback to GetCount() silently reverts to the old behavior; consider explicitly handling or logging the unexpected return type so issues are easier to diagnose when Unity internals change.
- The logging in TransportCommandDispatcher only treats ErrorResponse as an error case; if other response types can indicate failures, you may want to centralize status determination instead of hardcoding a single error type to keep logs consistent with actual outcomes.

## Individual Comments

### Comment 1
<location path="MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs" line_range="406-413" />
<code_context>
                 sw?.Stop();
-                McpLogRecord.Log(command.type, parameters, logType, "SUCCESS", sw?.ElapsedMilliseconds ?? 0);
+
+                string syncLogStatus = "SUCCESS";
+                string syncLogError = null;
+                if (result is ErrorResponse errResp)
+                {
+                    syncLogStatus = "ERROR";
+                    syncLogError = errResp.Error;
+                }
+                McpLogRecord.Log(command.type, parameters, logType, syncLogStatus, sw?.ElapsedMilliseconds ?? 0, syncLogError);

                 var response = new { status = "success", result };
</code_context>
<issue_to_address>
**issue (bug_risk):** Logged error status is inconsistent with the success status returned to the caller.

Because `syncLogStatus` can be "ERROR" while the returned anonymous object always has `status = "success"`, external callers will treat error payloads as successful responses, while logs treat them as failures. Unless this is deliberate, update the returned `status` to reflect `ErrorResponse` (e.g., reuse `syncLogStatus` or map `ErrorResponse` to a non-success status).
</issue_to_address>

### Comment 2
<location path="TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/WriteToConfigTests.cs" line_range="431-434" />
<code_context>
-                    Assert.IsNull(unity["type"],
-                        "Non-VSCode entries should not include type metadata in HTTP mode");
-                }
+                // "type" is now included for all clients (standard MCP protocol field).
+                Assert.AreEqual("http", (string)unity["type"],
+                    "All entries should advertise HTTP transport type");
             }
</code_context>
<issue_to_address>
**issue (bug_risk):** AssertTransportConfiguration now assumes all HTTP entries use "http" type, which contradicts the new Cline "streamableHttp" behavior.

This helper now conflicts with `ConfigJsonBuilder`, which sets `"streamableHttp"` for Cline. If tests use `AssertTransportConfiguration` with a Cline `McpClient`, the assertion will be incorrect and mask the client-specific behavior.

Please either make the assertion depend on the client type (e.g., `"streamableHttp"` for Cline, `"http"` for others) or introduce a separate helper for client-specific expectations. Also ensure there is at least one test that validates a Cline HTTP configuration end-to-end against `"streamableHttp"`.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment on lines +406 to +413
string syncLogStatus = "SUCCESS";
string syncLogError = null;
if (result is ErrorResponse errResp)
{
syncLogStatus = "ERROR";
syncLogError = errResp.Error;
}
McpLogRecord.Log(command.type, parameters, logType, syncLogStatus, sw?.ElapsedMilliseconds ?? 0, syncLogError);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): Logged error status is inconsistent with the success status returned to the caller.

Because syncLogStatus can be "ERROR" while the returned anonymous object always has status = "success", external callers will treat error payloads as successful responses, while logs treat them as failures. Unless this is deliberate, update the returned status to reflect ErrorResponse (e.g., reuse syncLogStatus or map ErrorResponse to a non-success status).

Comment on lines +431 to 434
// "type" is now included for all clients (standard MCP protocol field).
Assert.AreEqual("http", (string)unity["type"],
"All entries should advertise HTTP transport type");
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): AssertTransportConfiguration now assumes all HTTP entries use "http" type, which contradicts the new Cline "streamableHttp" behavior.

This helper now conflicts with ConfigJsonBuilder, which sets "streamableHttp" for Cline. If tests use AssertTransportConfiguration with a Cline McpClient, the assertion will be incorrect and mask the client-specific behavior.

Please either make the assertion depend on the client type (e.g., "streamableHttp" for Cline, "http" for others) or introduce a separate helper for client-specific expectations. Also ensure there is at least one test that validates a Cline HTTP configuration end-to-end against "streamableHttp".

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/WriteToConfigTests.cs (1)

431-434: Tests correctly updated for the new always-present type field.

The assertion aligns with the ConfigJsonBuilder changes. However, ConfigJsonBuilder sets type = "streamableHttp" for Cline clients, while this helper asserts "http". Since no existing tests use a Cline client, they will pass, but consider adding a Cline-specific test case to verify the "streamableHttp" value.

📝 Suggested addition: Cline-specific test case

Add a test for Cline HTTP transport configuration:

[Test]
public void UsesStreamableHttpType_ForCline()
{
    var configPath = Path.Combine(_tempRoot, "cline.json");
    WriteInitialConfig(configPath, isVSCode: false, command: _fakeUvPath, directory: "/old/path");

    var client = new McpClient { name = "Cline" };
    InvokeWriteToConfig(configPath, client);

    var root = JObject.Parse(File.ReadAllText(configPath));
    var unity = (JObject)root.SelectToken("mcpServers.unityMCP");
    Assert.NotNull(unity, "Expected mcpServers.unityMCP node");
    Assert.AreEqual("streamableHttp", (string)unity["type"],
        "Cline should use streamableHttp transport type");
}

And update AssertTransportConfiguration to handle Cline:

 if (useHttp)
 {
+    bool isCline = string.Equals(client.name, "Cline", StringComparison.OrdinalIgnoreCase);
     string expectedUrl = HttpEndpointUtility.GetMcpRpcUrl();
     // ... existing url assertions ...

-    Assert.AreEqual("http", (string)unity["type"],
-        "All entries should advertise HTTP transport type");
+    string expectedType = isCline ? "streamableHttp" : "http";
+    Assert.AreEqual(expectedType, (string)unity["type"],
+        $"HTTP transport type should be {expectedType}");
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/WriteToConfigTests.cs`
around lines 431 - 434, The helper currently asserts every client's "type"
equals "http" but ConfigJsonBuilder sets Cline clients to "streamableHttp"; add
a new test UsesStreamableHttpType_ForCline that creates a McpClient named
"Cline", calls WriteInitialConfig and InvokeWriteToConfig, parses the resulting
JSON and asserts mcpServers.unityMCP.type == "streamableHttp"; also update the
shared helper AssertTransportConfiguration (or its caller) to allow a different
expected transport type (e.g., add an expectedType parameter or branch on
client.name == "Cline") so the assertion no longer always expects "http".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In
`@TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/WriteToConfigTests.cs`:
- Around line 431-434: The helper currently asserts every client's "type" equals
"http" but ConfigJsonBuilder sets Cline clients to "streamableHttp"; add a new
test UsesStreamableHttpType_ForCline that creates a McpClient named "Cline",
calls WriteInitialConfig and InvokeWriteToConfig, parses the resulting JSON and
asserts mcpServers.unityMCP.type == "streamableHttp"; also update the shared
helper AssertTransportConfiguration (or its caller) to allow a different
expected transport type (e.g., add an expectedType parameter or branch on
client.name == "Cline") so the assertion no longer always expects "http".

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3bbe8395-1ddf-4fbe-b362-a0486b314bde

📥 Commits

Reviewing files that changed from the base of the PR and between 39cbaa5 and 90daff6.

📒 Files selected for processing (5)
  • MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs
  • MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs
  • MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs
  • MCPForUnity/Editor/Tools/ReadConsole.cs
  • TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/WriteToConfigTests.cs

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Unity MCP client configuration generation and related tests to consistently emit a transport type field across client layouts, while also improving console log reading reliability and command execution logging.

Changes:

  • Standardize generated MCP config to always include a transport type (http/stdio), with a Cline-specific streamableHttp exception.
  • Update config-writing tests to expect the type field for both HTTP and stdio modes.
  • Improve ReadConsole log entry counting and enhance command dispatcher logging to record sync error status/details.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
TestProjects/UnityMCPTests/Assets/Tests/EditMode/Helpers/WriteToConfigTests.cs Updates transport assertions to always expect type for HTTP/stdio.
MCPForUnity/Editor/Tools/ReadConsole.cs Uses StartGettingEntries() return value as entry count when available to avoid stale counts.
MCPForUnity/Editor/Services/Transport/TransportCommandDispatcher.cs Logs sync command results as ERROR when an ErrorResponse is returned (including error string).
MCPForUnity/Editor/Helpers/ConfigJsonBuilder.cs Always emits unity.type for transport; special-cases Cline to streamableHttp in HTTP mode.
MCPForUnity/Editor/Clients/Configurators/KiloCodeConfigurator.cs Switches Kilo Code to non-VSCode layout (mcpServers) behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +432 to +433
Assert.AreEqual("http", (string)unity["type"],
"All entries should advertise HTTP transport type");
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AssertTransportConfiguration() now assumes HTTP always uses type=="http". Production config generation has a Cline-specific exception (type=="streamableHttp"), so this helper is no longer generally correct for all clients supported by the repo. Consider making the expected type conditional on the client (or passing expectedType in) to keep the helper aligned with ConfigJsonBuilder.

Suggested change
Assert.AreEqual("http", (string)unity["type"],
"All entries should advertise HTTP transport type");
Assert.IsTrue((string)unity["type"] == "http" || (string)unity["type"] == "streamableHttp",
"All HTTP entries should advertise a supported HTTP transport type (\"http\" or \"streamableHttp\")");

Copilot uses AI. Check for mistakes.
Comment on lines +95 to 105
// Cline expects streamableHttp for HTTP endpoints.
if (isCline)
{
unity["type"] = "http";
unity["type"] = "streamableHttp";
}
// Also add type for Claude Code (uses mcpServers layout but needs type field)
else if (client?.name == "Claude Code")
else
{
// "type" is standard MCP protocol; include for all clients to avoid
// clients that default to SSE when they see a URL without a type field.
unity["type"] = "http";
}
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change introduces/retains a Cline-specific transport type ("streamableHttp") when using HTTP. There isn’t corresponding test coverage in WriteToConfigTests to lock in this behavior, so it’s easy to regress while refactoring the config builder. Consider adding a test case for a McpClient{name="Cline"} that asserts the generated config uses type=="streamableHttp" in HTTP mode (and still uses stdio type when HTTP is disabled).

Copilot uses AI. Check for mistakes.
@Scriptwonder Scriptwonder merged commit ebf2f5c into CoplayDev:beta Mar 11, 2026
6 checks passed
@Scriptwonder Scriptwonder deleted the config-fix branch March 11, 2026 18:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Copilot-Cli can't connect mcp

2 participants