From f0a38cfe5801ba8d62b97f6d4ffeb031f23aa231 Mon Sep 17 00:00:00 2001 From: "n8n-cat-bot[bot]" <283985454+n8n-cat-bot[bot]@users.noreply.github.com> Date: Mon, 12 Oct 2026 13:53:19 +0000 Subject: [PATCH] feat: Add Antigravity to the MCP client connection dialog (#40879) Co-authored-by: n8n-cat-bot[bot] Co-authored-by: Svetoslav Dekov Co-authored-by: Claude Opus 5.5 --- .../frontend/@n8n/i18n/src/locales/en.json | 1 + .../src/assets/client-icons/antigravity.svg | 1 + .../components/McpConnectClientDialog.test.ts | 24 +++++++++++++++++++ .../src/components/McpConnectClientDialog.vue | 6 ++++- .../frontend/src/mcp.clients.catalog.test.ts | 12 +++++++++- .../mcp/frontend/src/mcp.clients.catalog.ts | 12 ++++++++-- 6 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 packages/modules/mcp/frontend/src/assets/client-icons/antigravity.svg diff --git a/packages/frontend/@n8n/i18n/src/locales/en.json b/packages/frontend/@n8n/i18n/src/locales/en.json index f570372fae2..5c81c6a3f6f 100644 --- a/packages/frontend/@n8n/i18n/src/locales/en.json +++ b/packages/frontend/@n8n/i18n/src/locales/en.json @@ -3649,6 +3649,7 @@ "settings.mcp.connectDialog.install.description": "Run this command to add n8n to {client} (it must already be installed)", "settings.mcp.connectDialog.configure.title": "Configure", "settings.mcp.connectDialog.configure.description": "Add this to your config file to connect to n8n", + "settings.mcp.connectDialog.configure.antigravity.description": "Add this mcpServers entry to ~/.gemini/config/mcp_config.json. The Antigravity IDE, desktop app, and CLI (agy) share this file.", "settings.mcp.connectDialog.configure.titleAlt": "Or configure manually", "settings.mcp.connectDialog.configure.descriptionAlt": "Prefer not to run the command? Add this to your config file instead", "settings.mcp.connectDialog.authenticate.title": "Authenticate", diff --git a/packages/modules/mcp/frontend/src/assets/client-icons/antigravity.svg b/packages/modules/mcp/frontend/src/assets/client-icons/antigravity.svg new file mode 100644 index 00000000000..da14d525395 --- /dev/null +++ b/packages/modules/mcp/frontend/src/assets/client-icons/antigravity.svg @@ -0,0 +1 @@ +Antigravity \ No newline at end of file diff --git a/packages/modules/mcp/frontend/src/components/McpConnectClientDialog.test.ts b/packages/modules/mcp/frontend/src/components/McpConnectClientDialog.test.ts index 41d64e3ad11..48453a5222c 100644 --- a/packages/modules/mcp/frontend/src/components/McpConnectClientDialog.test.ts +++ b/packages/modules/mcp/frontend/src/components/McpConnectClientDialog.test.ts @@ -69,6 +69,30 @@ describe('McpConnectClientDialog', () => { expect(body().queryByText('Authenticate')).not.toBeInTheDocument(); }); + it('should show the shared Antigravity config file and entry', async () => { + renderComponent({ pinia }); + + await waitFor(() => { + expect(body().getByTestId('mcp-connect-client-picker-trigger')).toBeInTheDocument(); + }); + await userEvent.click(body().getByTestId('mcp-connect-client-picker-trigger')); + const menuLabel = await body().findByText('Antigravity'); + expect( + menuLabel.closest('[role="menuitem"]')?.querySelector('svg.brand-icon'), + ).toBeInTheDocument(); + await userEvent.click(menuLabel); + + expect( + body().getByTestId('mcp-connect-client-picker-trigger').querySelector('svg.brand-icon'), + ).toBeInTheDocument(); + expect(body().getByText(/~\/\.gemini\/config\/mcp_config\.json/)).toHaveTextContent( + 'IDE, desktop app, and CLI (agy) share this file', + ); + expect(body().getByTestId('mcp-config-snippet')).toHaveTextContent('mcpServers'); + expect(body().getByTestId('mcp-config-snippet')).toHaveTextContent('serverUrl'); + expect(body().queryByTestId('mcp-connect-one-click')).not.toBeInTheDocument(); + }); + it('should show only the server URL (no one-click) for web clients without a connector URL', async () => { renderComponent({ pinia }); diff --git a/packages/modules/mcp/frontend/src/components/McpConnectClientDialog.vue b/packages/modules/mcp/frontend/src/components/McpConnectClientDialog.vue index 500cdc02041..6b59b314af7 100644 --- a/packages/modules/mcp/frontend/src/components/McpConnectClientDialog.vue +++ b/packages/modules/mcp/frontend/src/components/McpConnectClientDialog.vue @@ -354,7 +354,11 @@ const serverUrlDescription = computed(() => layout="vertical" :show-divider="false" :title="i18n.baseText('settings.mcp.connectDialog.configure.title')" - :description="i18n.baseText('settings.mcp.connectDialog.configure.description')" + :description=" + activeClient.id === 'antigravity' + ? i18n.baseText('settings.mcp.connectDialog.configure.antigravity.description') + : i18n.baseText('settings.mcp.connectDialog.configure.description') + " >