Postgres MCP Pro
MCP-сервер для PostgreSQL с подбором индексов, планами EXPLAIN, проверкой здоровья базы и режимом только чтения
- 3 437 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Работает с базой данных и может менять данные в режиме unrestricted
- Хранит учетные данные базы в конфигурации
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add mcp/postgres-mcp-proОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Работает с базой данных и может менять данные в режиме unrestricted
- Хранит учетные данные базы в конфигурации
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Сервер берет строку подключения DATABASE_URI при запуске и отдает агенту девять инструментов. Для схемы это list_schemas, list_objects и get_object_details, для запросов execute_sql и explain_query, причем план можно построить с гипотетическими индексами через расширение hypopg. Инструмент get_top_queries показывает самые затратные запросы по данным pg_stat_statements, а analyze_workload_indexes и analyze_query_indexes (до 10 запросов за раз) разбирают колонки из фильтров, соединений, группировок и сортировок, перебирают наборы индексов и оценивают выигрыш по стоимостной модели планировщика. Инструмент analyze_db_health проверяет кэш буферов, соединения, ограничения, дубли и неиспользуемые индексы, последовательности, vacuum и отставание реплик. Работает через stdio или SSE и ставится из Docker-образа, через pipx или через uv.
Для кого. Для бэкенд-разработчиков и администраторов PostgreSQL, которые ищут медленные запросы и проблемы в базе.
Подходит, если
- Приложение, которое сгенерировал агент, тормозит из-за ORM-запросов: он смотрит план через explain_query и проверяет гипотетический индекс, не создавая его
- Вам досталась чужая база, и нужен быстрый осмотр: дубли индексов, последовательности, близкие к пределу, таблицы, которым пора пройти vacuum
- На рабочей копии нужно собрать топ медленных запросов и получить рекомендации по индексам под всю нагрузку, а не под один запрос
- Агент пишет SQL для отчета, и ему нужно сначала увидеть таблицы, колонки, ограничения и индексы, чтобы не угадывать имена
- Вы проверяете гипотезу о новом индексе на PostgreSQL 15, 16 или 17, не создавая его на самом деле
Не подходит, если
- База не PostgreSQL: для MySQL возьмите MySQL MCP Server, для ClickHouse ClickHouse MCP Server, для разных СУБД сразу MCP Toolbox for Databases
- Нужно управлять проектами и ветками облачного сервиса, а не самой базой: смотрите Neon MCP Server или Supabase MCP Server
- Нужна гарантия, что агент не видит данные: сервер читает таблицы через SQL, и в restricted-режиме тоже
- Расширения pg_stat_statements и hypopg поставить нельзя, а подбор индексов вам нужен: без них этот блок недоступен
Пример запроса к агенту
Подключись к базе shop через postgres, покажи топ-5 самых долгих запросов по pg_stat_statements и предложи индексы для таблицы orders, проверив их через hypopgMCP
- Транспорт
- stdio, sse
- Авторизация
- API-ключ
Переменные окружения
DATABASE_URIобязательная, секрет- Строка подключения к PostgreSQL
Ограничения
Доступ: широкий в режиме unrestricted и расширенный в restricted. Сервер подключается к базе по DATABASE_URI, который вы кладете в конфиг клиента, и читает схему, статистику и данные. В режиме --access-mode=unrestricted агент может менять данные и схему. В режиме restricted работают только транзакции на чтение и лимит времени выполнения, а SQL с commit и rollback отклоняется, но защита обходится, если в базе включены небезопасные процедурные языки. Для подбора индексов нужны расширения pg_stat_statements и hypopg, первое должно стоять в shared_preload_libraries. Нужен Docker или Python 3.12, проверялись версии PostgreSQL 15, 16 и 17. Лицензия MIT.
Как отключить. Удалите блок postgres из конфигурации MCP-клиента.
Частые вопросы
Безопасно ли подключать Postgres MCP Pro к рабочей базе?
Запускайте с --access-mode=restricted: он оставляет только транзакции на чтение, ограничивает время выполнения и отклоняет SQL с commit и rollback. Дополнительно выдайте отдельную роль с минимальными правами, ведь авторы описывают restricted как осторожный режим и обещают доработки для рабочих баз.
Что выбрать, Docker или Python?
Авторы советуют Docker: образ crystaldba/postgres-mcp содержит все зависимости, а при установке на Python чаще встречаются проблемы окружения. Если используете Python, ставьте через pipx install postgres-mcp или uv pip install postgres-mcp.
Чем Postgres MCP Pro отличается от простого SQL-сервера?
Кроме выполнения запросов он дает проверки здоровья, разбор нагрузки и подбор индексов с моделированием через hypopg. Эти шаги выполняет фиксированный код без участия модели, поэтому результат повторяется от запуска к запуску.
Почему не работает подбор индексов?
Скорее всего, в базе нет расширений. Выполните CREATE EXTENSION IF NOT EXISTS pg_stat_statements и то же для hypopg. На своем сервере сначала добавьте pg_stat_statements в shared_preload_libraries, а hypopg может потребовать системной установки.
Как подключиться по сети, а не через stdio?
Запустите сервер с флагом --transport=sse, в Docker порт 8000 пробрасывается командой -p 8000:8000. В клиенте укажите тип sse и адрес http://localhost:8000/sse, у Windsurf поле называется serverUrl.
Как понять, что сервер подключился?
Попросите агента проверить здоровье базы: он должен вызвать analyze_db_health и вернуть сводку по индексам, соединениям и vacuum. Если ответа нет, проверьте строку DATABASE_URI тем же логином через psql.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыМгновенный REST и MCP поверх PostgreSQL: агент читает данные существующей базы через MCP-эндпоинт без написания бэкенда
Два официальных MCP-сервера Prisma: локальный для миграций и Prisma Studio и удаленный для управления базами Prisma Postgres
Официальный MCP-сервер Supabase: агент управляет таблицами, читает конфигурацию и данные проектов после входа через OAuth
mcp-graphql — MCP-сервер для GraphQL API
mcp-graphql
Два инструмента для GraphQL: агент получает схему вашего API и выполняет запросы к нему через один эндпоинт
CLI pscale для баз PlanetScale на MySQL и PostgreSQL: ветки, deploy requests, SQL и диагностика, с руководством для агентов
MCP-сервер Apollo: превращает заданные операции GraphQL в инструменты, через которые агент работает с вашим API
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Postgres MCP Pro (эта запись) | нет | API-ключ | 3 437 | |
| PG-MCP Server | нет | не нужна | 540 | MCP-сервер для PostgreSQL с несколькими базами сразу |
| pgEdge Postgres MCP | нет | не нужна | 241 | postgres MCP на Go с запросами в режиме чтения |
| Postgres MCP (Microsoft) | нет | ключ необязателен | 68 | postgres MCP от Microsoft |
Коротко о README
README описывает пять направлений: здоровье базы, подбор индексов, планы запросов, понимание схемы и безопасное выполнение SQL. Есть разбор демо, где с помощью сервера ускорили медленное приложение на SQLAlchemy. Установка через Docker-образ или pipx и uv, конфигурации для Claude Desktop и подсказки для Cursor и Windsurf. Поддерживаются транспорты stdio и SSE. Лицензия MIT.