Files
supabase/apps/studio/lib/ai/supabase-mcp.ts
T
Saxon Fletcher 0419d45b6f Add search docs, advisors, and custom logging tools (#36852)
* ui refinements

* rename chat

* copy

* prose message styles

* add icon back

* fix message save

* simplify empty state

* update suggestions

* pass through props

* button styles

* onboarding icons

* name button

* remove results

* current chat name

* use type

* add advisor and search

* fix down arrow

* logging tools

* more general filter tools

* fixes

* pageparam fix

* move search docs
2025-07-10 09:43:38 +10:00

40 lines
1.1 KiB
TypeScript

import { createSupabaseApiPlatform, createSupabaseMcpServer } from '@supabase/mcp-server-supabase'
import { StreamTransport } from '@supabase/mcp-utils'
import { experimental_createMCPClient as createMCPClient } from 'ai'
import { API_URL } from 'lib/constants'
export async function createSupabaseMCPClient({
accessToken,
projectId,
}: {
accessToken: string
projectId: string
}) {
// Create an in-memory transport pair
const clientTransport = new StreamTransport()
const serverTransport = new StreamTransport()
clientTransport.readable.pipeTo(serverTransport.writable)
serverTransport.readable.pipeTo(clientTransport.writable)
// Instantiate the MCP server and connect to its transport
const apiUrl = API_URL?.replace('/platform', '')
const server = createSupabaseMcpServer({
platform: createSupabaseApiPlatform({
accessToken,
apiUrl,
}),
projectId,
readOnly: true,
})
await server.connect(serverTransport)
// Create the MCP client and connect to its transport
const client = await createMCPClient({
name: 'supabase-studio',
transport: clientTransport,
})
return client
}