CentralMind Gateway MCP
MCP-сервер и REST API для баз данных на Go: PostgreSQL, MySQL, ClickHouse, Snowflake, BigQuery и других, с маскировкой персональных данных и кэшем
- 548 ★ репозитория
- Последний коммит
- Apache-2.0
Широкий доступ
Почему такой уровень
- Подключается к базе по строке с логином и паролем и отдает агенту данные таблиц
- В режиме raw выполняет присланный SQL без проверки на чтение, права определяет учетная запись базы
- При создании методов отправляет схему и образцы строк стороннему поставщику модели
Установка
- Работает в
Ручная установка
docker run --platform linux/amd64 -p 9090:9090 ghcr.io/centralmind/gateway:v0.2.18 start --connection-string "postgres://db-user:db-password@db-host/db-name?sslmode=require"Запускает MCP по SSE на порту 9090 и REST API со Swagger. Строку подключения замените на свою.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Подключается к базе по строке с логином и паролем и отдает агенту данные таблиц
- В режиме raw выполняет присланный SQL без проверки на чтение, права определяет учетная запись базы
- При создании методов отправляет схему и образцы строк стороннему поставщику модели
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Gateway — один бинарник на Go, который подключается к базе и отдает ее агенту по MCP (stdio и SSE) и одновременно как REST API с Swagger и спецификацией OpenAPI 3.1. Поддержаны PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle, SQLite, DuckDB, MongoDB, Elasticsearch, Neon и Supabase. Работает в двух режимах. В режиме raw агент получает четыре инструмента: `list_tables`, `discover_data` с примерами строк из выбранных таблиц, `prepare_query`, который проверяет запрос и показывает колонки ответа, и `query`. Во втором режиме команда `discover` сначала отправляет схему и образцы данных модели (OpenAI, Anthropic, Amazon Bedrock, Gemini или Vertex AI) и сохраняет в `gateway.yaml` набор именованных методов с готовым SQL. Агент вызывает эти методы, а не пишет запросы сам. Между базой и ответом работают плагины: удаление персональных данных регулярными выражениями или через Microsoft Presidio, Lua-скрипты построчного доступа, кэш LRU, ключи API, OAuth и экспорт трассировки в `OpenTelemetry`.
Для кого. Для разработчиков и аналитиков, которые хотят дать агенту в Cursor или Claude Desktop доступ к рабочей базе и ограничить выдачу чувствительных колонок и строк.
Подходит, если
- Агенту нужно задавать вопросы к хранилищу вроде Snowflake или BigQuery и получать ответы по реальным таблицам
- В ответах нельзя показывать телефоны, почты и другие персональные данные, и их надо вычищать до попадания в модель
- Одну и ту же базу надо отдать и агенту по MCP, и приложению по REST с документацией Swagger
- Агент должен видеть только согласованный набор методов с готовым SQL, а не писать произвольные запросы
Не подходит, если
- Нужен сервер только для PostgreSQL с настройкой индексов и планами запросов: для этого есть postgres-mcp
- Нужны запись и изменение данных через готовые методы: поддержку операций вставки и обновления авторы держат в планах
- Нужен один сервер на много баз с режимом только чтения и SSH-туннелем: такую роль описывает карточка dbhub
- Нет желания отправлять схему и образцы строк стороннему поставщику модели при создании методов
Пример запроса к агенту
Посмотри, какие таблицы есть в базе заказов, и покажи десять клиентов с самой большой суммой покупок за месяц без телефонов и почтMCP
- Транспорт
- stdio, sse
- Авторизация
- ключ необязателен
Переменные окружения
GEMINI_API_KEYсекрет- Ключ поставщика модели для команды `discover`, пример для Gemini
Ограничения
Последний релиз v0.2.19 вышел в июле 2025 года, а в примерах документации указан образ v0.2.18. Лицензия Apache-2.0.
Команда `discover` отправляет выбранному поставщику модели имена таблиц, колонок и образцы строк, а для этого нужен его ключ, например `GEMINI_API_KEY`. Ответы на запросы агента модели не передаются, она участвует только при создании `gateway.yaml`.
В режиме raw обработчик `query` передает коннектору строку SQL как есть, и признаков ограничения на чтение в нем нет. Права на запись и удаление определяет учетная запись базы, поэтому ей выдают роль только на чтение.
Маскировка персональных данных включается плагином в конфигурации, без него ответы уходят агенту целиком.
Как отключить. Удалите блок `gateway` из конфигурации Cursor или Claude Desktop и остановите контейнер командой `docker stop`. Затем отзовите у учетной записи базы права, которые вы выдавали серверу.
Частые вопросы
Как запустить Gateway одной командой?
Достаточно Docker и строки подключения: `docker run --platform linux/amd64 -p 9090:9090 ghcr.io/centralmind/gateway:v0.2.18 start --connection-string "postgres://db-user:db-password@db-host/db-name?sslmode=require"`. В логе появятся адрес MCP по SSE `http://localhost:9090/sse` и адрес REST API со Swagger `http://localhost:9090/`.
Чем режим raw отличается от режима с готовыми методами?
В raw агент сам смотрит таблицы, образцы строк и пишет SQL через четыре инструмента. Во втором режиме команда `discover` заранее составляет `gateway.yaml` с именованными методами, и агент вызывает только их.
Какие поставщики моделей поддерживаются для создания методов?
OpenAI и совместимые с ним, Anthropic, Amazon Bedrock, Google Gemini и Google Vertex AI с моделями Anthropic. Для Gemini в документации описан бесплатный тариф через Google AI Studio, а локальные модели подключаются через настраиваемый адрес.
Как убрать из ответов персональные данные?
Подключите плагин `pii_remover` с регулярными выражениями или `presidio_anonymizer` на основе Microsoft Presidio. Строки можно дополнительно фильтровать Lua-скриптами в плагине `lua_rls`.
Как подключить Gateway к Cursor?
В репозитории есть кнопка установки для Cursor: она добавляет сервер, который запускает `docker run -i` с образом Gateway и аргументами `--connection-string` и `start stdio`. Строку подключения замените на свою.
Какие плагины безопасности есть для доступа к API?
Ключи API и OAuth для входа, Lua-скрипты для построчного доступа и `OpenTelemetry` для следа вызовов. Они подключаются в конфигурации YAML.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыpgEdge Postgres MCP
pgEdge Postgres MCP Server
Postgres MCP на Go с запросами в режиме чтения, планами EXPLAIN, поиском по смыслу, несколькими базами, чат-клиентом и веб-интерфейсом
MCP-сервер для PostgreSQL с несколькими базами сразу, описаниями таблиц из каталога, подсказками по PostGIS и pgvector и планами запросов
Открытый MCP-сервер Google для баз данных: готовые инструменты для Postgres, MySQL, BigQuery, Spanner и других, плюс свои инструменты в tools.yaml
DB MCP Server
db-mcp-server
Сервер MCP для нескольких баз данных с защитой: режим только чтения по каждой базе и ограничение числа строк. Написан на Go, запуск в Docker
Postgres MCP (Microsoft)
Postgres MCP Server (Microsoft)
Postgres MCP от Microsoft: профили подключения с паролями в связке ключей ОС, вход через Entra ID для Azure, запросы, схема, CSV и метрики сервера
SQL-движок на SQLite с плагинами для приложений, баз и файлов: команда anyquery mcp открывает эти данные Claude, Cursor и другим клиентам MCP
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| CentralMind Gateway (эта запись) | нет | ключ необязателен | 548 | |
| DBHub | нет | не нужна | 3 703 | один сервер для нескольких баз с режимом только чтения и SSH-туннелем, без генерации методов моделью |
| MCP Toolbox for Databases | да | не нужна | 16 705 | сервер Google на Go с готовыми наборами для разных СУБД и собственными инструментами в файле tools.yaml |
Из блога
Коротко о README
В репозитории есть пошаговый пример: запуск контейнера, вывод лога с адресами MCP и REST, затем генерация `gateway.yaml` командой `discover` с подсказкой для модели и разбор структуры файла. Дальше описаны запуск из бинарника и через Docker Compose, подключение к Claude Desktop и ссылки на документацию, коннекторы и плагины. Исходники лежат в каталогах `connectors`, `plugins`, `server` и `mcpgenerator`, примеры — в `example`, включая манифесты для Kubernetes и демонстрационные схемы PostgreSQL.