Все статьи
30 июля 2026 г.·2 мин чтения

MCP-сервер для PostgreSQL: запросы к базе через ИИ-агента

Как подключить PostgreSQL к локальному ИИ-агенту через MCP, задавать вопросы к данным обычными словами и ограничить доступ режимом чтения.

Чтобы ответить на разовый вопрос по данным, часто приходится отвлекать аналитика: найти нужные таблицы, вспомнить связи, написать SQL, выгрузить результат. MCP-сервер для PostgreSQL позволяет пройти тот же путь через агента. Ты задаёшь вопрос обычными словами, агент изучает схему, строит запрос и объясняет результат.

Какие задачи подходят

Лучше всего начинать с чтения и разведки:

  • описать таблицы и связи в незнакомой базе;
  • посчитать заказы, регистрации или ошибки за период;
  • найти выбросы и пропуски в данных;
  • подготовить SQL для отчёта и объяснить каждую часть запроса.

А вот удаление строк, миграции и массовые обновления — плохой первый сценарий. Даже хорошая модель может неверно понять бизнес-условие. MCP ускоряет работу с PostgreSQL, но транзакции и резервные копии от этого не становятся необязательными.

Сначала отдельный пользователь

Не подключай агента под владельцем базы. Создай отдельную роль, разреши ей подключение, доступ к нужной схеме и SELECT только на нужные таблицы. Если есть реплика для аналитики, используй её вместо основной базы.

Также стоит ограничить время выполнения запросов и число возвращаемых строк. Это защищает не только от ошибки модели: обычный неудачный запрос без LIMIT тоже способен надолго занять рабочую базу.

«Локальная модель» не спасает от слишком широких прав в PostgreSQL. Главная защита — отдельная роль только для чтения и доступ к минимальному набору данных.

Как подключить PostgreSQL в Доке

Для быстрого теста подойдёт эталонный пакет @modelcontextprotocol/server-postgres. В Доке открой вкладку «MCP-серверы», добавь сервер и укажи:

  • Название: PostgreSQL — аналитика.
  • Команда: npx.
  • Аргументы, каждый с новой строки: -y, @modelcontextprotocol/server-postgres, затем строку подключения вида postgresql://readonly:пароль@localhost:5432/analytics.

Сохрани сервер и попроси: «опиши доступные схемы и таблицы, не выполняй изменения». Если выбираешь другой MCP-сервер, бери команду и имя переменной со строкой подключения из его README: реализации отличаются и не все принимают параметры одинаково.

Строка подключения содержит пароль и хранится в локальной конфигурации приложения. Для постоянной работы лучше выбрать сервер, который принимает секрет через переменную окружения, или использовать пароль с минимальными правами и регулярно его менять.

Данные действительно не уходят наружу?

Если PostgreSQL находится на твоём компьютере или во внутренней сети, MCP-сервер запущен локально, а в Доке выбрана локальная модель, запрос и результат не нужно отправлять в облачный ИИ. Это и есть приватный контур.

Но «локально» не равно «автоматически безопасно». Результат может попасть в журнал, экспорт чата или резервную копию компьютера. Для персональных и финансовых данных нужны те же правила хранения, что и для обычной аналитической выгрузки.

Как проверить качество ответа

Проси агента показывать SQL до выполнения и объяснять, почему выбраны именно эти таблицы и фильтры. Для важных цифр полезно сверить результат контрольным запросом. Хорошая формулировка выглядит так:

Найди число оплаченных заказов за июнь. Сначала покажи SQL. Используй только чтение, добавь разумный LIMIT для примеров и отдельно перечисли свои допущения.

Общий сценарий для разных СУБД разобран в статье про базы данных через MCP, а Доку можно скачать бесплатно.