PostgreSQL MCP

crystaldba/postgres-mcp· Проверено 12.11.2026· 3,5 тыс.на GitHub

Подключает агента к базе PostgreSQL: смотреть схему, выполнять SQL, разбирать планы запросов. Postgres MCP Pro вдобавок ищет медленные запросы, подбирает индексы и проверяет здоровье базы.

2 реализации:

Только PostgreSQL, зато с подбором индексов, анализом нагрузки и проверкой здоровья базы.

Как подключить

Что сделать до подключения

1

Docker или Python 3.12 и новее (тогда установка через pipx install postgres-mcp или uv)

2

Для подбора индексов и анализа запросов — расширения pg_stat_statements и hypopg в базе

3
DATABASE_URI

строка подключения вида postgresql://пользователь:пароль@хост:5432/база; проверить доступ можно через psql или pgAdmin

Конфиг для вашего клиента

Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code

claude mcp add --env DATABASE_URI=postgresql://username:password@localhost:5432/dbname --transport stdio postgres \
  -- docker run -i --rm -e DATABASE_URI crystaldba/postgres-mcp --access-mode=restricted

Проверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.

Инструменты сервера

list_schemasпоказывает схемы
list_objectsпоказывает таблицы и представления
get_object_detailsописывает колонки и индексы
execute_sqlвыполняет SQL
explain_queryпоказывает план запроса
get_top_queriesнаходит самые медленные запросы
analyze_workload_indexesподбирает индексы под нагрузку
analyze_query_indexesподбирает индексы под запросы
analyze_db_healthпроверяет здоровье базы

Что попросить агента

«Проверь здоровье моей базы и найди проблемы»Агент вызовет analyze_db_health: кэш, соединения, вакуум, неиспользуемые индексы
«Какие запросы в базе самые медленные и как их ускорить?»Агент вызовет get_top_queries, затем analyze_query_indexes для найденных запросов
«Разбери нагрузку на базу и предложи индексы»Агент вызовет analyze_workload_indexes и покажет рекомендации
«Помоги ускорить запрос: <SQL>»Агент вызовет explain_query, при необходимости проверит план с гипотетическим индексом и предложит правку
«Сколько заказов было за прошлый месяц по каждому городу?»Агент изучит схему через list_objects и get_object_details (в DBHub — search_objects) и выполнит execute_sql

Для каких задач

Найти самые медленные запросы и подобрать под них индексы
Проверить, как изменится план запроса с гипотетическим индексом, без его создания
Проверить здоровье базы: кэш, соединения, вакуум, неиспользуемые индексы
Написать SQL с учётом реальной схемы таблиц
Подключить к одному агенту сразу несколько баз через DBHub

Ограничения

!

В Postgres MCP Pro режим unrestricted даёт агенту полный доступ на запись; для рабочей базы ставьте --access-mode=restricted

!

Без расширений pg_stat_statements и hypopg подбор индексов и анализ запросов не работают

!

Postgres MCP Pro тестируют на PostgreSQL 15, 16 и 17

!

В DBHub режим только чтения задаётся в файле dbhub.toml (readonly = true) и не защищает от функций, доступных привилегированной роли

Если не работает

Подбор индексов и разбор медленных запросов не работают
Нужны расширения pg_stat_statements и hypopg: выполните CREATE EXTENSION под ролью с правами. На своём сервере pg_stat_statements сначала добавьте в shared_preload_libraries.
DBHub подключается, но запросы к базе падают
Проверьте строку DSN, подключитесь к базе обычным клиентом и проверьте права пользователя. Ошибки DBHub пишет в stderr.
Клиент не подключается к DBHub по HTTP
Проверьте, что DBHub запущен с --transport http и порт совпадает (по умолчанию 8080). Адрес проверяется командой curl http://localhost:8080/mcp.

Какую реализацию выбрать

РеализацияКто делаетЗвёздыЗапускКлючИнструментыОбновлён
Postgres MCP ProCrystal DBA3,5 тыс.локальноне нужен917 августа 2026
DBHubBytebase3,8 тыс.локальноне нужен412 ноября 2026

Частые вопросы

Какой вариант выбрать?
Если нужна именно настройка производительности PostgreSQL — Postgres MCP Pro. Если нужно просто смотреть схему и выполнять запросы, особенно к нескольким СУБД, — DBHub: он занимает около 1,4 тыс. токенов в контексте.
Как подключиться к базе на этом же компьютере из Docker?
Образ Postgres MCP Pro сам заменяет localhost: на macOS и Windows на host.docker.internal, на Linux на адрес хоста вроде 172.17.0.1.
Как включить расширения на облачной базе?
На AWS RDS, Azure и Google Cloud SQL расширения уже есть, достаточно выполнить CREATE EXTENSION IF NOT EXISTS pg_stat_statements и CREATE EXTENSION IF NOT EXISTS hypopg от роли с нужными правами.
Можно ли зайти в базу через SSH-туннель?
В DBHub — да, флагами --ssh-host, --ssh-user и --ssh-key или через алиас из ~/.ssh/config.
Работает ли сервер из России?
Оба сервера работают на вашем компьютере и подключаются напрямую к вашей базе, ключи и аккаунты не нужны.

Похожие серверы