pgEdge Postgres MCP
pgEdge Postgres MCP Server
Postgres MCP на Go с запросами в режиме чтения, планами EXPLAIN, поиском по смыслу, несколькими базами, чат-клиентом и веб-интерфейсом
- 239 ★ репозитория
- Последний коммит
- PostgreSQL
Расширенный доступ
Почему такой уровень
- Модель читает всю схему и данные базы, в том числе персональные, а подписи таблиц и результаты запросов попадают к ее поставщику
- Запись включается флагом allow_writes, после чего агент меняет данные с правами пользователя базы
Установка
- Работает в
Ручная установка
sudo apt-get install -y pgedge-postgres-mcpСначала подключите репозиторий пакетов pgEdge. Бинарник ставится в /usr/bin/pgedge-postgres-mcp, конфигурация лежит в /etc/pgedge/postgres-mcp.yaml. Для RHEL, Rocky и Alma команда dnf install -y pgedge-postgres-mcp.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Модель читает всю схему и данные базы, в том числе персональные, а подписи таблиц и результаты запросов попадают к ее поставщику
- Запись включается флагом allow_writes, после чего агент меняет данные с правами пользователя базы
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Postgres MCP от pgEdge — сервер на Go, который дает агенту SQL-запросы к базам PostgreSQL 14 и новее. Параметры подключения лежат в YAML-файле или в переменных `PGHOST`, `PGPORT`, `PGDATABASE`, `PGUSER` и `PGPASSWORD`. В файле можно описать несколько баз, и у каждой отдельно включается запись флагом `allow_writes`. По умолчанию каждый запрос выполняется в транзакции только на чтение. Встроенные инструменты: `query_database` выполняет SQL, `get_schema_info` показывает схему, `count_rows` считает строки таблицы с фильтром, `execute_explain` строит план запроса с реальным временем, `similarity_search` ищет по смыслу и по словам (BM25 и MMR), `generate_embedding` получает вектор текста у OpenAI, Voyage AI, Google Gemini или Ollama, а `search_knowledgebase` ищет по подключенной базе знаний. Каждый инструмент отключается в конфиге, и отключенный не попадает в список для модели. Есть ресурс `system_info` и четыре готовых сценария: исследование базы, настройка семантического поиска, разбор медленного запроса и проектирование схемы. Сервер работает по stdio для локального клиента или по HTTP с пользователями, токенами с истечением срока и входом через OAuth. Вместе с ним в репозитории идут чат-клиент на Go, который запускает сервер как дочерний процесс, и веб-интерфейс на React для вопросов к базе обычным языком.
Для кого. Для разработчиков, аналитиков и администраторов баз, которые работают с PostgreSQL из Claude Code, Cursor, Windsurf или VS Code с Copilot и хотят получить схему, запросы и планы EXPLAIN без ручного SQL. Подходит внутренним командам с доверенными пользователями.
Подходит, если
- Агенту нужно показать схему базы и ответить на вопрос по данным, не давая ему права записи
- Медленный запрос надо разобрать по плану EXPLAIN ANALYZE и понять, где не хватает индекса
- В базе хранятся тексты с векторами, и вопросы к ним нужны по смыслу, а не только по ключевым словам
- Один сервер должен обслуживать несколько баз и нескольких пользователей с токенами и сроком их действия
- Нужен готовый веб-интерфейс или чат в терминале, чтобы коллеги без агента задавали вопросы базе обычным языком
Не подходит, если
- База стоит за общедоступным приложением: автор относит сервер к внутренним инструментам и для открытых сервисов советует свой RAG-сервер
- Версия PostgreSQL ниже 14: поддерживаются только 14 и новее
- Нужен сервер с подбором индексов и проверкой состояния базы: такие задачи решает запись postgres-mcp-pro
- Нет возможности завести YAML-конфиг и, для режима HTTP, пользователей: в этом режиме аутентификация включена по умолчанию
Пример запроса к агенту
Покажи схему базы orders, посчитай заказы со статусом pending и разбери планом EXPLAIN запрос, который ищет их по email клиентаMCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
Переменные окружения
PGHOST- Хост PostgreSQL, если база задана переменными, а не YAML-файлом
PGDATABASE- Имя базы данных
PGUSER- Пользователь PostgreSQL, лучше с правами только на чтение
PGPASSWORDсекрет- Пароль пользователя PostgreSQL
Ограничения
- Автор предупреждает, что сервер дает модели чтение всей схемы и данных базы, и не рекомендует его для общедоступных приложений.
- Встроенные чат-клиент и веб-интерфейс требуют ключ Anthropic или OpenAI либо локальную Ollama. Для веб-интерфейса в конфиге включается раздел `llm`.
- Эмбеддинги и поиск по базе знаний выключены по умолчанию. Для них нужен провайдер: ключ OpenAI, Voyage AI или Gemini либо запущенная Ollama с моделью эмбеддингов.
- В режиме HTTP вход обязателен: пользователя создают флагом `-add-user` до запуска сервера. Установка из Docker Compose работает только в режиме HTTP и требует `PGEDGE_HTTP_ENABLED=true` в файле `.env`.
- Для stdio-клиентов нужен бинарник на диске или команда `docker run -i --rm`.
- Пакеты в репозиториях apt и dnf собраны для Debian, Ubuntu, RHEL, Rocky и Alma, на других системах сервер собирают из исходников на Go 1.21 или новее.
- Код распространяется по лицензии PostgreSQL.
Как отключить. Удалите запись pgedge из `.mcp.json` проекта или из настроек клиента и перезапустите агента. Для сервера по HTTP отзовите токены и пользователей: файлы с ними сервер перечитывает без перезапуска.
Частые вопросы
Как подключить Postgres MCP от pgEdge к Claude Code?
Поставьте пакет `pgedge-postgres-mcp` или скачайте бинарник из релизов, заведите YAML-конфиг с разделом `databases` и создайте в проекте `.mcp.json` с командой сервера и аргументами `-config` и путем к конфигу. Параметры базы можно передать и переменными `PGHOST`, `PGPORT`, `PGDATABASE`, `PGUSER` и `PGPASSWORD`.
Может ли Postgres MCP изменять данные в базе?
По умолчанию нет: запросы идут в транзакции только на чтение. Запись включается флагом `allow_writes` у конкретной базы в конфиге, поэтому для остальных баз она остается выключенной.
Какие версии PostgreSQL поддерживает сервер?
PostgreSQL 14 и новее. Для сборки из исходников нужен Go 1.21 или новее.
Нужен ли ключ Anthropic или OpenAI, чтобы пользоваться сервером?
Сам сервер отдает инструменты любому клиенту MCP, например Claude Code или Cursor, и использует их модель. Ключ нужен встроенным чат-клиенту и веб-интерфейсу: Anthropic, OpenAI или локальная Ollama. Для генерации эмбеддингов подключается отдельный провайдер.
Как включить поиск по смыслу в Postgres MCP?
В разделе `embedding` конфига включите генерацию эмбеддингов и выберите провайдера: OpenAI, Voyage AI, Gemini или Ollama. Тогда заработает `generate_embedding`, а `similarity_search` комбинирует векторный поиск с BM25 и MMR. Для поиска по своей документации включается раздел `knowledgebase`.
Можно ли подключить несколько баз и разных пользователей?
Да, в разделе `databases` перечисляют несколько баз, а параметр `available_to_users` у базы ограничивает, кто ее видит. В режиме HTTP пользователей и токены с истечением срока создают командами сервера.
Что еще входит в репозиторий кроме MCP-сервера?
Чат-клиент `pgedge-nla-cli` на Go, веб-интерфейс на React, Dockerfile для сервера, клиента и веба, документация по аутентификации, защите на уровне строк и распределенной установке.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер для PostgreSQL с несколькими базами сразу, описаниями таблиц из каталога, подсказками по PostGIS и pgvector и планами запросов
MCP-сервер и скиллы от TigerData, с которыми агент пишет схемы и запросы PostgreSQL по актуальной документации и практикам
Postgres MCP (Microsoft)
Postgres MCP Server (Microsoft)
Postgres MCP от Microsoft: профили подключения с паролями в связке ключей ОС, вход через Entra ID для Azure, запросы, схема, CSV и метрики сервера
MCP-сервер и REST API для баз данных на Go: PostgreSQL, MySQL, ClickHouse, Snowflake, BigQuery и других, с маскировкой персональных данных и кэшем
Открытый MCP-сервер Google для баз данных: готовые инструменты для Postgres, MySQL, BigQuery, Spanner и других, плюс свои инструменты в tools.yaml
SQL-движок на SQLite с плагинами для приложений, баз и файлов: команда anyquery mcp открывает эти данные Claude, Cursor и другим клиентам MCP
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| pgEdge Postgres MCP (эта запись) | нет | не нужна | 239 | |
| Postgres MCP Pro | нет | API-ключ | 3 420 | сервер с упором на администрирование: подбор индексов, проверка здоровья базы и планы с гипотетическими индексами, stdio и SSE |
| PG-MCP Server | нет | не нужна | 541 | сервер на Python по SSE с несколькими базами, схемой через ресурсы и справками по PostGIS и pgvector |
| Postgres MCP (Microsoft) | нет | ключ необязателен | 61 | сервер Microsoft на npx с сохраненными профилями подключения, паролями в связке ключей ОС и входом через Entra ID |
Из блога
Коротко о README
Документация в папке docs разбита на разделы: быстрый старт для CLI, веб-интерфейса, Claude Code, Claude Desktop, Cursor, Windsurf и VS Code, развертывание в Docker и из исходников, справочник по инструментам, ресурсам и сценариям. Отдельно описаны аутентификация (пользователи, токены, OAuth), чек-лист безопасности, защита на уровне строк и столбцов, распределенное развертывание и свои определения инструментов. В репозитории есть тесты сервера, клиента и веб-части, схема OpenAPI, журнал изменений и данные для Cursor-плагина.