diff --git a/packages/ui-patterns/src/McpUrlBuilder/assets/warp-icon-dark.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/warp-icon-dark.svg
new file mode 100644
index 00000000000..9799154c284
--- /dev/null
+++ b/packages/ui-patterns/src/McpUrlBuilder/assets/warp-icon-dark.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/ui-patterns/src/McpUrlBuilder/assets/warp-icon.svg b/packages/ui-patterns/src/McpUrlBuilder/assets/warp-icon.svg
new file mode 100644
index 00000000000..ea1212cbc64
--- /dev/null
+++ b/packages/ui-patterns/src/McpUrlBuilder/assets/warp-icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/ui-patterns/src/McpUrlBuilder/clients.data.ts b/packages/ui-patterns/src/McpUrlBuilder/clients.data.ts
index f1bfecd348a..92e1378a46b 100644
--- a/packages/ui-patterns/src/McpUrlBuilder/clients.data.ts
+++ b/packages/ui-patterns/src/McpUrlBuilder/clients.data.ts
@@ -240,6 +240,17 @@ export const MCP_CLIENT_DATA: McpClientData[] = [
}
},
},
+ {
+ key: 'warp',
+ label: 'Warp',
+ icon: 'warp',
+ hasDistinctDarkIcon: true,
+ configFile: '~/.warp/.mcp.json',
+ externalDocsUrl: 'https://docs.warp.dev/agents/capabilities/mcp',
+ // No transformConfig: Warp natively supports remote MCP servers and accepts
+ // the standard `mcpServers` config, so the base `{ mcpServers: { supabase: { url } } }`
+ // shape works both in `~/.warp/.mcp.json` and when pasted into Warp's "+ Add" input.
+ },
{
key: 'goose',
label: 'Goose',
@@ -394,7 +405,7 @@ export const MCP_CLIENT_GROUPS = [
},
{
heading: 'IDE',
- keys: ['cursor', 'vscode', 'antigravity', 'kiro', 'windsurf', 'kimi'],
+ keys: ['cursor', 'vscode', 'antigravity', 'kiro', 'windsurf', 'kimi', 'warp'],
},
] as const
diff --git a/packages/ui-patterns/src/McpUrlBuilder/clients.instructions.md.tsx b/packages/ui-patterns/src/McpUrlBuilder/clients.instructions.md.tsx
index 670b09ceade..4b03205e608 100644
--- a/packages/ui-patterns/src/McpUrlBuilder/clients.instructions.md.tsx
+++ b/packages/ui-patterns/src/McpUrlBuilder/clients.instructions.md.tsx
@@ -203,6 +203,22 @@ export const MCP_CLIENT_INSTRUCTIONS: Record = {
),
},
+ warp: {
+ alternate: () => (
+ <>
+
+ Warp supports remote MCP servers natively, so no local proxy is needed. You can also add
+ the server from the UI: open the MCP servers page (Settings >{' '}
+ Agents > MCP Servers, or search for MCP in the
+ command palette), click + Add, and paste the same JSON.
+
+
+ After adding the server, Warp opens a browser window to complete the Supabase OAuth flow
+ and stores the credentials securely on your device.
+
+ >
+ ),
+ },
goose: {
primary: ({ url }) => (
<>
diff --git a/packages/ui-patterns/src/McpUrlBuilder/utils/mcpIconAssets.ts b/packages/ui-patterns/src/McpUrlBuilder/utils/mcpIconAssets.ts
index cb27dd3fd29..38d5738a32a 100644
--- a/packages/ui-patterns/src/McpUrlBuilder/utils/mcpIconAssets.ts
+++ b/packages/ui-patterns/src/McpUrlBuilder/utils/mcpIconAssets.ts
@@ -21,6 +21,8 @@ import opencodeIcon from '../assets/opencode-icon.svg'
import perplexityDarkIcon from '../assets/perplexity-icon-dark.svg'
import perplexityIcon from '../assets/perplexity-icon.svg'
import vscodeIcon from '../assets/vscode-icon.svg'
+import warpDarkIcon from '../assets/warp-icon-dark.svg'
+import warpIcon from '../assets/warp-icon.svg'
import windsurfDarkIcon from '../assets/windsurf-icon-dark.svg'
import windsurfIcon from '../assets/windsurf-icon.svg'
@@ -45,6 +47,7 @@ const MCP_CLIENT_ICON_ASSETS = {
opencode: { light: opencodeIcon, dark: opencodeDarkIcon },
perplexity: { light: perplexityIcon, dark: perplexityDarkIcon },
vscode: { light: vscodeIcon, dark: vscodeIcon },
+ warp: { light: warpIcon, dark: warpDarkIcon },
windsurf: { light: windsurfIcon, dark: windsurfDarkIcon },
} satisfies Record