From 196670a35644a5573a136a2bd41b303b737d7908 Mon Sep 17 00:00:00 2001 From: Yufeng He <40085740+he-yufeng@users.noreply.github.com> Date: Sat, 20 Jun 2026 09:36:44 +0800 Subject: [PATCH] fix(cli): accept uppercase URL schemes in mcp add transport detection (#5426) --- packages/cli/src/commands/mcp/add.test.ts | 10 ++++++++++ packages/cli/src/commands/mcp/add.ts | 6 +----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/commands/mcp/add.test.ts b/packages/cli/src/commands/mcp/add.test.ts index ae93d45636..2beeceaca1 100644 --- a/packages/cli/src/commands/mcp/add.test.ts +++ b/packages/cli/src/commands/mcp/add.test.ts @@ -115,6 +115,16 @@ describe('mcp add command', () => { }); }); + it('should auto-detect http transport when commandOrUrl uses an uppercase URL scheme', async () => { + await parser.parseAsync('add http-server HTTPS://example.com/mcp'); + + expect(mockSetValue).toHaveBeenCalledWith(SettingScope.User, 'mcpServers', { + 'http-server': { + httpUrl: 'HTTPS://example.com/mcp', + }, + }); + }); + it('should respect explicit transport even when commandOrUrl is a URL', async () => { await parser.parseAsync( 'add --transport sse sse-server https://example.com/sse-endpoint', diff --git a/packages/cli/src/commands/mcp/add.ts b/packages/cli/src/commands/mcp/add.ts index 27bc261792..b316cd8f14 100644 --- a/packages/cli/src/commands/mcp/add.ts +++ b/packages/cli/src/commands/mcp/add.ts @@ -302,11 +302,7 @@ export const addCommand: CommandModule = { // Auto-detect transport from URL if not explicitly specified if (!argv['transport']) { const commandOrUrl = argv['commandOrUrl'] as string; - if ( - commandOrUrl && - (commandOrUrl.startsWith('http://') || - commandOrUrl.startsWith('https://')) - ) { + if (commandOrUrl && /^https?:\/\//i.test(commandOrUrl)) { argv['transport'] = 'http'; } else { argv['transport'] = 'stdio';