qvib.pro
EN

Postgres MCP Pro

Для чего: дать ИИ читать схему/данные БД + тюнинг индексов и EXPLAIN. Поддерживаемая замена архивного офиц. сервера; держи read-only (см. Безопасность).

open-source бесплатно MCP локально профи

★2.8k GitHub (Postgres MCP Pro) проверено 2026-06-01

$ pipx install postgres-mcp

Открыть источник ↗

Что это даёт ИИ

ИИ получает «глаза» в твою PostgreSQL: читает схему и данные, выполняет SQL, разбирает EXPLAIN-планы, ищет узкие места и предлагает индексы (анализ через гипотетические индексы — hypopg). Это не просто коннектор, а инструмент тюнинга производительности.

Пример: «Почему /orders тормозит?» — ИИ возьмёт реальный запрос, прогонит EXPLAIN ANALYZE, увидит seq scan и предложит конкретный составной индекс с оценкой выигрыша.

Подключение (точные шаги)

Строка подключения передаётся через переменную окружения DATABASE_URI, режим доступа — флагом --access-mode.

Claude Code

Установи (pipx install postgres-mcp), затем добавь в restricted (read-only) режиме:

claude mcp add postgres \
  --env DATABASE_URI="postgresql://readonly:pass@localhost:5432/app" \
  -- postgres-mcp --access-mode=restricted

Cursor / Claude Desktop

Через установленный бинарь:

{
  "mcpServers": {
    "postgres": {
      "command": "postgres-mcp",
      "args": ["--access-mode=restricted"],
      "env": {
        "DATABASE_URI": "postgresql://readonly:pass@localhost:5432/app"
      }
    }
  }
}

Вариант без локальной установки — Docker-образ crystaldba/postgres-mcp (command: "docker", args: ["run","-i","--rm","-e","DATABASE_URI","crystaldba/postgres-mcp","--access-mode=restricted"]). Образ сам подменяет localhost на host.docker.internal.

Пример использования

Скажи: «Покажи схему таблицы orders и найди топ-5 самых медленных запросов» → ИИ прочитает структуру, через статистику найдёт тяжёлые запросы и предложит оптимизацию (индекс/переписать SQL) — всё в read-only, без риска для данных.

Безопасность

  • Только read-only: запускай с --access-mode=restricted — это ограничивает операции read-only транзакциями. unrestricted (полный read/write, меняет данные и схему) — лишь для локальной разработки.
  • Отдельная роль БД: заводи Postgres-пользователя с правами только SELECT на нужные таблицы. Двойная защита: и роль RO, и флаг restricted.
  • Supply-chain: проект crystaldba/postgres-mcp (★2.8k) — поддерживаемая замена архивного официального server-postgres. Перед прод-БД проверь источник пакета.

Подводные камни

  • Не путайте режимы: unrestricted на боевой базе = ИИ может выполнить DROP/UPDATE. По умолчанию ставьте restricted.
  • Из Docker localhost указывает в контейнер — образ это лечит автозаменой, но при ручной сети учитывайте host.docker.internal.
  • Большие выборки могут превысить лимит вывода MCP (предупреждение на >10k токенов) — проси агрегаты/LIMIT, а не «весь дамп таблицы».