Integrations
Provides tools for direct PostgreSQL database operations, including executing SQL queries, viewing database connections and statistics, listing extensions, and querying system catalogs.
Enables interaction with self-hosted Supabase instances, providing tools for database introspection, SQL query execution, schema management, migrations, auth user management, storage bucket operations, and TypeScript type generation.
Самостоятельно размещенный сервер Supabase MCP
Обзор
Этот проект предоставляет сервер Model Context Protocol (MCP) , разработанный специально для взаимодействия с размещенными на собственном сервере экземплярами Supabase . Он устраняет разрыв между клиентами MCP (например, расширениями IDE) и вашими локальными или размещенными на частном сервере проектами Supabase, обеспечивая интроспекцию, управление и взаимодействие с базой данных непосредственно из вашей среды разработки.
Этот сервер был создан с нуля с учетом опыта адаптации официального облачного сервера MCP Supabase, чтобы обеспечить минимальную, целенаправленную реализацию, адаптированную для варианта использования с самостоятельным размещением.
Цель
Основная цель этого сервера — предоставить разработчикам, использующим самостоятельные установки Supabase, возможность использовать инструменты на базе MCP для таких задач, как:
- Запросы схем и данных баз данных.
- Управление миграциями баз данных.
- Проверка статистики и подключений базы данных.
- Управление аутентификацией пользователей.
- Взаимодействие с хранилищем Supabase.
- Генерация определений типов.
Он позволяет избежать сложностей официального облачного сервера, связанных с управлением несколькими проектами и облачными API-интерфейсами, предлагая оптимизированный интерфейс для однопроектных сред с собственным размещением.
Возможности (Реализованные инструменты)
Сервер предоставляет клиентам MCP следующие инструменты:
- Схема и миграции
list_tables
: список таблиц в схемах базы данных.list_extensions
: список установленных расширений PostgreSQL.list_migrations
: список примененных миграций Supabase.apply_migration
: Применяет скрипт миграции SQL.
- Операции с базами данных и статистика
execute_sql
: выполняет произвольный SQL-запрос (через RPC или прямое соединение).get_database_connections
: показывает активные подключения к базе данных (pg_stat_activity
).get_database_stats
: Извлекает статистику базы данных (pg_stat_*
).
- Конфигурация проекта и ключи
get_project_url
: возвращает настроенный URL-адрес Supabase.get_anon_key
: возвращает настроенный анонимный ключ Supabase.get_service_key
: возвращает настроенный ключ роли службы Supabase (если указан).verify_jwt_secret
: проверяет, настроен ли секрет JWT, и возвращает предварительный просмотр.
- Инструменты разработки и расширения
generate_typescript_types
: генерирует типы TypeScript из схемы базы данных.rebuild_hooks
: пытается перезапуститьpg_net
worker (если используется).
- Управление аутентификацией пользователей
list_auth_users
: Выводит список пользователей изauth.users
.get_auth_user
: Извлекает данные для конкретного пользователя.create_auth_user
: создает нового пользователя (требуется прямой доступ к базе данных, небезопасная обработка паролей).delete_auth_user
: удаляет пользователя (требуется прямой доступ к базе данных).update_auth_user
: обновляет данные пользователя (требуется прямой доступ к базе данных, небезопасная обработка паролей).
- Информация о хранении
list_storage_buckets
: список всех контейнеров хранения.list_storage_objects
: Перечисляет объекты в определенном контейнере.
- Проверка в реальном времени
list_realtime_publications
: список публикаций PostgreSQL (частоsupabase_realtime
).
(Примечание: get_logs
изначально планировался, но был пропущен из-за сложностей реализации в среде с собственным хостингом).
Настройка и установка
Установка через Smithery
Чтобы автоматически установить Self-Hosted Supabase MCP Server для Claude Desktop через Smithery :
Предпосылки
- Node.js (рекомендуется версия 18.x или более поздняя)
- npm (обычно входит в состав Node.js)
- Доступ к вашему экземпляру Supabase, размещенному самостоятельно (URL, ключи, потенциально прямая строка подключения к БД).
Шаги
- Клонируйте репозиторий:Copy
- Установить зависимости:Copy
- Создайте проект:Это скомпилирует код TypeScript в JavaScript в каталогеCopy
dist
.
Конфигурация
Серверу требуются данные конфигурации для вашего экземпляра Supabase. Они могут быть предоставлены через аргументы командной строки или переменные среды. Аргументы CLI имеют приоритет.
Необходимый:
--url <url>
илиSUPABASE_URL=<url>
: основной HTTP URL вашего проекта Supabase (например,http://localhost:8000
).--anon-key <key>
илиSUPABASE_ANON_KEY=<key>
: Анонимный ключ вашего проекта Supabase.
Необязательно (но рекомендуется/обязательно для некоторых инструментов):
--service-key <key>
илиSUPABASE_SERVICE_ROLE_KEY=<key>
: Ключ роли службы вашего проекта Supabase. Требуется для операций, требующих повышенных привилегий, например, для попытки автоматического создания вспомогательной функцииexecute_sql
если она не существует.--db-url <url>
илиDATABASE_URL=<url>
: Прямая строка подключения PostgreSQL для вашей базы данных Supabase (например,postgresql://postgres:password@localhost:5432/postgres
). Требуется для инструментов, которым требуется прямой доступ к базе данных или транзакции (apply_migration
, инструменты аутентификации, инструменты хранения, запросыpg_catalog
и т. д.).--jwt-secret <secret>
илиSUPABASE_AUTH_JWT_SECRET=<secret>
: Секрет JWT вашего проекта Supabase. Требуется для таких инструментов, какverify_jwt_secret
.--tools-config <path>
: Путь к файлу JSON, указывающему, какие инструменты следует включить (белый список). Если этот параметр пропущен, включаются все инструменты, определенные на сервере. Файл должен иметь формат{"enabledTools": ["tool_name_1", "tool_name_2"]}
.
Важные примечания:
- Вспомогательная функция
execute_sql
: многие инструменты полагаются на функциюpublic.execute_sql
в вашей базе данных Supabase для безопасного и эффективного выполнения SQL через RPC. Сервер пытается проверить эту функцию при запуске. Если она отсутствует и предоставленыservice-key
(илиSUPABASE_SERVICE_ROLE_KEY
) иdb-url
(илиDATABASE_URL
), он попытается создать функцию и предоставить необходимые разрешения. Если создание не удается или ключи не предоставлены, инструменты, полагающиеся исключительно на RPC, могут выйти из строя. - Прямой доступ к базе данных: инструменты, напрямую взаимодействующие с привилегированными схемами (
auth
,storage
) или системными каталогами (pg_catalog
), обычно требуют настройкиDATABASE_URL
для прямого подключенияpg
.
Использование
Запустите сервер с помощью Node.js, указав необходимую конфигурацию:
Сервер взаимодействует через стандартный ввод/вывод (stdio) и предназначен для вызова клиентским приложением MCP (например, расширением IDE, таким как Cursor). Клиент подключится к потоку stdio сервера для вывода и вызова доступных инструментов.
Примеры конфигурации клиента
Ниже приведены примеры настройки популярных клиентов MCP для использования этого размещенного на собственном сервере.
Важный:
- Замените заполнители, такие как
<your-supabase-url>
,<your-anon-key>
,<your-db-url>
,<path-to-dist/index.js>
и т. д., вашими фактическими значениями. - Убедитесь, что путь к скомпилированному файлу сервера (
dist/index.js
) правильный для вашей системы. - Будьте осторожны, храня конфиденциальные ключи непосредственно в файлах конфигурации, особенно если вы привязаны к контролю версий. Рассмотрите возможность использования переменных среды или более безопасных методов, если они поддерживаются клиентом.
Курсор
- Создайте или откройте файл
.cursor/mcp.json
в корневом каталоге вашего проекта. - Добавьте следующую конфигурацию:Copy
Visual Studio Code (второй пилот)
VS Code Copilot позволяет использовать переменные среды, заполняемые с помощью запрашиваемых входных данных, что более безопасно для ключей.
- Создайте или откройте файл
.vscode/mcp.json
в корневом каталоге вашего проекта. - Добавьте следующую конфигурацию:Copy
- При использовании Copilot Chat в режиме агента (@workspace) он должен обнаружить сервер. Вам будет предложено ввести данные (URL, ключи, путь) при первом вызове сервера.
Другие клиенты (Виндсерф, Клайн, Клод)
Адаптируйте структуру конфигурации, показанную для Cursor или официальной документации Supabase, заменив command
и args
на команду node
и аргументы для этого сервера, аналогично примеру Cursor:
Информацию о том, где разместить файл mcp.json
или эквивалентный файл конфигурации, см. в документации по каждому клиенту.
Разработка
- Язык: TypeScript
- Сборка:
tsc
(компилятор TypeScript) - Зависимости: Управляются через
npm
(package.json
) - Основные библиотеки:
@supabase/supabase-js
,pg
(node-postgres),zod
(проверка),commander
(аргументы CLI),@modelcontextprotocol/sdk
(фреймворк сервера MCP).
Лицензия
Этот проект лицензирован по лицензии MIT. Подробности см. в файле LICENSE.
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Сервер протоколов, который обеспечивает взаимодействие с размещенными на собственном сервере экземплярами Supabase непосредственно из сред разработки, позволяя осуществлять интроспекцию базы данных, управлять миграциями, аутентификацией пользователей и хранением через клиенты MCP, такие как расширения IDE.
Related MCP Servers
- AsecurityFlicenseAqualityA Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.Last updated -88427JavaScript
- AsecurityAlicenseAqualityAn MCP server that provides tools for interacting with Supabase databases, storage, and edge functions.Last updated -1441JavaScriptMIT License
- -security-license-qualityAn MCP server utilizing Supabase to provide memory and knowledge graph storage, enabling multiple Claude instances to share and manage data with database-level locking for safe concurrent access.Last updated -JavaScript
- AsecurityAlicenseAqualityThis server enables interaction with Supabase PostgreSQL databases through the MCP protocol, allowing seamless integration with Cursor and Windsurf IDEs for secure and validated database management.Last updated -11649PythonApache 2.0