diff --git a/apps/docs/features/ui/McpConfigPanel.tsx b/apps/docs/features/ui/McpConfigPanel.tsx index f7bece0a60d..9a8ae8cdf8b 100644 --- a/apps/docs/features/ui/McpConfigPanel.tsx +++ b/apps/docs/features/ui/McpConfigPanel.tsx @@ -26,6 +26,7 @@ import { import { Admonition } from 'ui-patterns/Admonition' import { createMcpCopyHandler, + MCP_HOSTED_AUTH_NOTE, McpConfigPanel as McpConfigPanelBase, type McpClient, } from 'ui-patterns/McpUrlBuilder' @@ -336,17 +337,8 @@ export function McpConfigPanel() { /> {isPlatform && ( - -

- { - "Some MCP clients will automatically prompt you to login during setup, while others may require manual authentication steps. Either authentication method will open a browser window where you can login to your Supabase account and grant organization access to the MCP client. In the future, we'll offer more fine grain control over these permissions." - } -

-

- { - 'Previously Supabase MCP required you to generate a personal access token (PAT), but this is no longer required.' - } -

+ +

{MCP_HOSTED_AUTH_NOTE.body}

)} diff --git a/packages/ui-patterns/src/McpUrlBuilder/McpConfigPanel.md.tsx b/packages/ui-patterns/src/McpUrlBuilder/McpConfigPanel.md.tsx index 87b23d3fe41..3f2753185a0 100644 --- a/packages/ui-patterns/src/McpUrlBuilder/McpConfigPanel.md.tsx +++ b/packages/ui-patterns/src/McpUrlBuilder/McpConfigPanel.md.tsx @@ -9,6 +9,7 @@ import { DEFAULT_MCP_URL_NON_PLATFORM as LOCAL_URL, MCP_CLIENT_DATA, MCP_CLIENT_GROUPS, + MCP_HOSTED_AUTH_NOTE, } from './clients.data' import type { McpClientData } from './clients.data' import { @@ -144,16 +145,9 @@ export function McpConfigPanel() { ))} - Authentication - - - Some MCP clients automatically prompt you to log in during setup, while others require - manual authentication steps. Either way, a browser window opens where you log in to your - Supabase account and grant the MCP client access to your organization. - - - A personal access token (PAT) was previously required, but is no longer needed. + {MCP_HOSTED_AUTH_NOTE.title} + {MCP_HOSTED_AUTH_NOTE.body} ) } diff --git a/packages/ui-patterns/src/McpUrlBuilder/clients.data.ts b/packages/ui-patterns/src/McpUrlBuilder/clients.data.ts index 996f4157b86..972815f37b5 100644 --- a/packages/ui-patterns/src/McpUrlBuilder/clients.data.ts +++ b/packages/ui-patterns/src/McpUrlBuilder/clients.data.ts @@ -439,3 +439,12 @@ export const DEFAULT_MCP_URL_NON_PLATFORM = 'http://localhost:54321/mcp' * docs document (and what to fall back to in production). */ export const HOSTED_MCP_URL = 'https://mcp.supabase.com/mcp' + +/** + * Hosted MCP authentication note. Shared by the docs HTML callout and the + * markdown export so the two pipelines cannot drift. + */ +export const MCP_HOSTED_AUTH_NOTE = { + title: 'Authentication', + body: "Some MCP clients automatically prompt you to log in during setup. Others require manual authentication steps. Either method opens a browser window where you log in to your Supabase account and grant the MCP client access to your organization. You don't need a personal access token (PAT).", +} as const diff --git a/packages/ui-patterns/src/McpUrlBuilder/index.ts b/packages/ui-patterns/src/McpUrlBuilder/index.ts index fe8d3b96800..aea7e6a4d5c 100644 --- a/packages/ui-patterns/src/McpUrlBuilder/index.ts +++ b/packages/ui-patterns/src/McpUrlBuilder/index.ts @@ -9,6 +9,7 @@ export { FEATURE_GROUPS_NON_PLATFORM, MCP_CLIENT_GROUPS, MCP_CLIENT_DATA, + MCP_HOSTED_AUTH_NOTE, } from './clients.data' export type { McpClientData } from './clients.data' export { MCP_CLIENTS } from './mcpClients'