diff --git a/packages/core/agents/mcp-support.test.ts b/packages/core/agents/mcp-support.test.ts new file mode 100644 index 000000000..de5d8a647 --- /dev/null +++ b/packages/core/agents/mcp-support.test.ts @@ -0,0 +1,27 @@ +import { describe, expect, it } from "vitest"; + +import { providerSupportsMcpConfig } from "./mcp-support"; + +describe("providerSupportsMcpConfig", () => { + it("matches providers whose runtime consumes mcp_config", () => { + expect(providerSupportsMcpConfig("claude")).toBe(true); + expect(providerSupportsMcpConfig("codebuddy")).toBe(true); + expect(providerSupportsMcpConfig("codex")).toBe(true); + expect(providerSupportsMcpConfig("cursor")).toBe(true); + expect(providerSupportsMcpConfig("hermes")).toBe(true); + expect(providerSupportsMcpConfig("kimi")).toBe(true); + expect(providerSupportsMcpConfig("kiro")).toBe(true); + expect(providerSupportsMcpConfig("opencode")).toBe(true); + expect(providerSupportsMcpConfig("openclaw")).toBe(true); + expect(providerSupportsMcpConfig("qoder")).toBe(true); + expect(providerSupportsMcpConfig("traecli")).toBe(true); + }); + + it("rejects providers whose runtime ignores mcp_config", () => { + expect(providerSupportsMcpConfig("antigravity")).toBe(false); + expect(providerSupportsMcpConfig("copilot")).toBe(false); + expect(providerSupportsMcpConfig("pi")).toBe(false); + expect(providerSupportsMcpConfig(undefined)).toBe(false); + expect(providerSupportsMcpConfig(null)).toBe(false); + }); +}); diff --git a/packages/core/agents/mcp-support.ts b/packages/core/agents/mcp-support.ts index 6190d0401..57d6bf310 100644 --- a/packages/core/agents/mcp-support.ts +++ b/packages/core/agents/mcp-support.ts @@ -7,6 +7,7 @@ // config for CLIs that do not receive it through ExecOptions. const MCP_SUPPORTED_PROVIDERS = new Set([ "claude", + "codebuddy", "codex", "cursor", "hermes", @@ -14,6 +15,7 @@ const MCP_SUPPORTED_PROVIDERS = new Set([ "kiro", "opencode", "openclaw", + "qoder", "traecli", ]);