Skip to main content
Glama
Apache 2.0
845
2,105
  • Apple
index.test.ts1.71 kB
import { Client } from '@modelcontextprotocol/sdk/client/index.js'; import { StreamTransport } from '@supabase/mcp-utils'; import { describe, expect, test } from 'vitest'; import { ACCESS_TOKEN, API_URL, MCP_CLIENT_NAME, MCP_CLIENT_VERSION, } from '../test/mocks.js'; import { createSupabaseMcpServer, version } from './index.js'; import { createSupabaseApiPlatform } from './platform/api-platform.js'; type SetupOptions = { accessToken?: string; projectId?: string; readOnly?: boolean; features?: string[]; }; async function setup(options: SetupOptions = {}) { const { accessToken = ACCESS_TOKEN, projectId, readOnly, features } = options; const clientTransport = new StreamTransport(); const serverTransport = new StreamTransport(); clientTransport.readable.pipeTo(serverTransport.writable); serverTransport.readable.pipeTo(clientTransport.writable); const client = new Client( { name: MCP_CLIENT_NAME, version: MCP_CLIENT_VERSION, }, { capabilities: {}, } ); const platform = createSupabaseApiPlatform({ apiUrl: API_URL, accessToken, }); const server = createSupabaseMcpServer({ platform, projectId, readOnly, features, }); await server.connect(serverTransport); await client.connect(clientTransport); return { client, clientTransport, server, serverTransport }; } describe('index', () => { test('index.ts exports a working server', async () => { const { client } = await setup(); const { tools } = await client.listTools(); expect(tools.length).toBeGreaterThan(0); }); test('index.ts exports a version', () => { expect(version).toStrictEqual(expect.any(String)); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/supabase-community/mcp-supabase'

If you have feedback or need assistance with the MCP directory API, please join our Discord server