Supabase MCP

официальный

Официальный MCP-сервер Supabase для управления проектами Supabase, базами данных, аутентификацией, хранилищем, edge-функциями и SQL-процессами из AI-агентов.

Что можно делать с Supabase MCP?

  • Управление таблицами базы данных — Попросите ИИ перечислить, создать, обновить или удалить таблицы в вашем проекте Supabase с помощью инструментов, таких как list_tables и create_table.
  • Получение конфигурации проекта — Извлекайте настройки проекта, переменные окружения и учетные данные API с помощью get_project_url и связанных инструментов конфигурации.
  • Запрос и проверка данных — Поручите ИИ выполнять SQL-запросы только для чтения или исследовать схему вашей базы данных напрямую через MCP-сервер.
  • Интеграция с AI SDK — Используйте createToolSchemas(), чтобы получить типизированные схемы ввода/вывода для MCP-клиента Vercel AI SDK.

Документация

Supabase MCP Server

MCP Registry Version

Подключите ваши проекты Supabase к Cursor, Claude, Windsurf и другим AI-ассистентам.

supabase-mcp-demo

Model Context Protocol (MCP) стандартизирует взаимодействие больших языковых моделей (LLM) с внешними сервисами, такими как Supabase. Он напрямую связывает AI-ассистентов с вашим проектом Supabase и позволяет им выполнять задачи, такие как управление таблицами, получение конфигурации и запрос данных. См. полный список инструментов.

Настройка

1. Следуйте нашим рекомендациям по безопасности

Перед настройкой MCP-сервера мы рекомендуем ознакомиться с нашими рекомендациями по безопасности, чтобы понять риски подключения LLM к вашим проектам Supabase и способы их снижения.

2. Настройте ваш MCP-клиент

Чтобы настроить Supabase MCP-сервер на вашем клиенте, посетите нашу документацию по настройке. Вы также можете сгенерировать пользовательский MCP URL для вашего проекта, перейдя на вкладку MCP-подключения в панели управления Supabase.

Ваш MCP-клиент автоматически предложит вам войти в Supabase во время настройки. Обязательно выберите организацию, содержащую проект, с которым вы хотите работать.

Большинству MCP-клиентов требуется следующая информация:

{
  "mcpServers": {
    "supabase": {
      "type": "http",
      "url": "https://mcp.supabase.com/mcp"
    }
  }
}

Если вы не видите ваш MCP-клиент в нашей документации, ознакомьтесь с документацией MCP вашего клиента и скопируйте указанную выше информацию MCP в ожидаемый формат (json, yaml и т.д.).

CLI

Если вы запускаете Supabase локально с помощью Supabase CLI, вы можете получить доступ к MCP-серверу по адресу http://localhost:54321/mcp. В настоящее время MCP-сервер в средах CLI предлагает ограниченный набор инструментов и не поддерживает OAuth 2.1.

Self-hosted

Для самостоятельно размещаемого Supabase ознакомьтесь со страницей Включение MCP-сервера. В настоящее время MCP-сервер в самостоятельно размещаемых средах предлагает ограниченный набор инструментов и не поддерживает OAuth 2.1.

Параметры конфигурации и инструменты

См. документацию Supabase MCP Server для получения полного списка доступных инструментов и параметров конфигурации.

Документация также содержит интерактивный конструктор URL для автоматического заполнения параметров конфигурации.

Риски безопасности

[!TIP] Перед использованием MCP-сервера ознакомьтесь с рисками безопасности и рекомендуемыми мерами по их снижению в документации Supabase.

Использование с MCP-клиентом AI SDK

Пакет @supabase/mcp-server-supabase экспортирует createToolSchemas() для заполнения входных и выходных схем для MCP-клиента Vercel AI SDK. Это позволяет рассматривать инструменты Supabase MCP как статические инструменты с валидацией на стороне клиента и выведенными типами TypeScript для их входных и выходных данных.

import { createToolSchemas } from '@supabase/mcp-server-supabase';
import { createMCPClient } from '@ai-sdk/mcp';
import { streamText } from 'ai';

const mcpClient = await createMCPClient({
  transport: {
    type: 'http',
    url: 'https://mcp.supabase.com/mcp',
  },
});

const tools = await mcpClient.tools({
  schemas: createToolSchemas(),
});

const result = streamText({ model, tools, prompt: '...' });

for (const step of await result.steps) {
  for (const toolResult of step.staticToolResults) {
    if (toolResult.toolName === 'get_project_url') {
      toolResult.input;  // { project_id: string }
      toolResult.output; // { url: string }
    }
  }
}

createToolSchemas() принимает параметры фильтрации, аналогичные параметрам URL MCP-сервера:

  • features: Ограничить определенными группами функций (например, ['database', 'docs']). По умолчанию используются все группы функций по умолчанию.
  • projectScoped: Если true, исключает project_id из входных схем инструментов и исключает инструменты уровня аккаунта — используйте при подключении к серверу, настроенному с project_ref. По умолчанию false.
  • readOnly: Если true, исключает инструменты изменения — используйте при подключении к серверу, настроенному с read_only=true. По умолчанию false.
const mcpClient = await createMCPClient({
  transport: {
    type: 'http',
    url: 'https://mcp.supabase.com/mcp?project_ref=<project-ref>&read_only=true&features=database,docs',
  },
});

const tools = await mcpClient.tools({
  schemas: createToolSchemas({
    features: ['database', 'docs'],
    projectScoped: true,
    readOnly: true,
  }),
});

[!NOTE] Этот сервер не отправляет structuredContent в результатах инструментов MCP. AI SDK возвращается к разбору JSON из текста content.

Для получения дополнительной информации см. Определение схемы и Типизированные выходные данные инструментов в документации AI SDK.

Другие MCP-серверы

@supabase/mcp-server-postgrest

MCP-сервер PostgREST позволяет подключать ваших собственных пользователей к вашему приложению через REST API. Подробнее см. в README проекта.

Ресурсы

Для разработчиков

См. CONTRIBUTING для получения информации о том, как внести вклад в этот проект.

Лицензия

Этот проект лицензирован под Apache 2.0. Подробности см. в файле LICENSE.