Postgres MCP (Microsoft)
Postgres MCP Server (Microsoft)
Postgres MCP от Microsoft: профили подключения с паролями в связке ключей ОС, вход через Entra ID для Azure, запросы, схема, CSV и метрики сервера
- 61 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Инструмент записи выполняет DDL и DML с правами роли профиля, а сервер сам не проверяет, что агенту можно
- Загрузка и описание CSV читают локальные файлы из одобренных папок
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add mcp/postgres-mcp-server-microsoftОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Инструмент записи выполняет DDL и DML с правами роли профиля, а сервер сам не проверяет, что агенту можно
- Загрузка и описание CSV читают локальные файлы из одобренных папок
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Postgres MCP от Microsoft — сервер для PostgreSQL, который клиент запускает командой `npx -y @microsoft/postgres-mcp run`. Установка не нужна: это готовый бинарник в npm-пакете, он говорит с клиентом по stdio. Подключение к базе описывается профилем. Команда `connection add` записывает адрес и параметры в `~/.postgres-mcp/connections.yaml`, а `connection set-password` кладет пароль в связку ключей ОС, и в конфиг клиента он не попадает. Агент сам находит сохраненные профили и открывает пул соединений. Сервер дает 13 инструментов. Для подключений это список, добавление и удаление профилей, `postgres_mcp_connect` и список баз. `postgres_mcp_db_context` возвращает скрипты `CREATE` для таблиц, индексов, функций и последовательностей. `postgres_mcp_query` выполняет одиночный запрос только на чтение, а `postgres_mcp_modify` — DDL и DML. Для данных есть описание CSV-файла и загрузка его в таблицу через `COPY`, для диагностики — проверка доступных возможностей сервера и сбор групп метрик производительности. Для баз Azure Database for PostgreSQL без сохраненного пароля сервер входит через Microsoft Entra ID: берет учетные данные из переменных Azure, из рабочей идентичности или из `az login`. Для Amazon RDS и Aurora, Google Cloud SQL и AlloyDB, локальной и своей установки используется обычный пароль.
Для кого. Для разработчиков и администраторов, которые работают с PostgreSQL из Claude Code, Codex, OpenCode, Cursor, VS Code или Copilot CLI и держат базы локально или в облаках Azure, Amazon и Google. Особенно удобен командам на Azure с входом через Entra ID.
Подходит, если
- Пароль к базе нельзя оставлять в конфигурации клиента, а в связке ключей ОС он есть
- База размещена в Azure Database for PostgreSQL, и вход должен идти через Entra ID, в том числе от имени группы
- Агенту нужно получить скрипты `CREATE` для таблиц и функций и спроектировать схему
- CSV-файл надо описать и загрузить в таблицу через `COPY`, ограничив папки, которые сервер вправе читать
- Нужно понять, что тормозит сервер, по группам метрик производительности
Не подходит, если
- Нет Node.js 22 или новее: сервер запускается через `npx` и на более старых версиях не заработает
- Агент должен подбирать индексы и оценивать состояние базы: такие инструменты есть в записи postgres-mcp-pro
- Запись в базу недопустима и нет отдельной роли только для чтения: сервер сам разрешения не проверяет
- Платформа не из списка: пакет собран для Linux и macOS на x64 и arm64 и для Windows на x64
Пример запроса к агенту
Покажи 10 последних заказов из моей базы PostgreSQL и скажи, какой запрос сейчас сильнее всего нагружает серверMCP
- Транспорт
- stdio
- Авторизация
- ключ необязателен
Переменные окружения
POSTGRES_MCP_CONNECTION_STRINGсекрет- Строка подключения для среды без связки ключей, например CI или контейнера
POSTGRES_MCP_ALLOWED_PATHS- Файлы и папки, одобренные для чтения CSV
POSTGRES_MCP_QUERY_TIMEOUT_MS- Таймаут запроса в миллисекундах, по умолчанию 540000
POSTGRES_MCP_MANAGED_IDENTITY- Значение 1 разрешает управляемую идентичность Azure для входа
Ограничения
- Это предварительная версия: в журнале изменений значится 0.1.0.
- Профиль, созданный командой `connection add`, разрешает инструменты записи, пока не задан `access_mode: ro`. Для автономных агентов нужен и профиль только на чтение, и роль базы с теми же правами.
- Сервер собирает псевдонимизированную телеметрию: идентификаторы машины и сессии, названия инструментов, длительность и исход, без текста запросов. Отключается флагом `run --no-telemetry`.
- На хостах без связки ключей, например в Docker и CI, строку подключения с паролем передают в `POSTGRES_MCP_CONNECTION_STRING`, и она видна другим процессам среды.
- Режим `sslmode=require` шифрует соединение, но сертификат не проверяет. Проверка включается значениями `verify-ca` и `verify-full`.
- Для входа через `az login` нужен Azure CLI 2.54.0 или новее.
- Лицензия MIT.
Как отключить. Удалите запись postgres из конфигурации клиента и перезапустите агента. Профили и пароли убираются командой `npx -y @microsoft/postgres-mcp connection remove <имя>`, а список разрешенных папок для CSV лежит в `~/.postgres-mcp/approved_paths.yaml`.
Частые вопросы
Как подключить Postgres MCP от Microsoft к Claude Code?
Сохраните профиль командой `npx -y @microsoft/postgres-mcp connection add local "postgresql://postgres@localhost:5432/postgres"`, задайте пароль через `connection set-password local` и добавьте в `mcpServers` запись с командой `npx` и аргументами `-y`, `@microsoft/postgres-mcp`, `run`. Учетные данные в конфиг клиента не попадают: агент находит профиль при подключении.
Как сделать Postgres MCP только для чтения?
Создайте профиль с режимом доступа `ro` и дайте роли в базе права только на чтение. Профиль блокирует инструменты записи внутри сервера, а роль ограничивает саму базу, поэтому нужны оба. `postgres_mcp_query` и без этого выполняет только одиночные запросы на чтение.
Где хранится пароль к базе?
В связке ключей ОС: Keychain на macOS, Secret Service на Linux, Credential Manager на Windows. В `connections.yaml` пароля нет. Если связки ключей нет, например в контейнере, пароль передают в строке подключения через переменную окружения.
Работает ли сервер с Azure Database for PostgreSQL через Entra ID?
Да. Если хост похож на адрес Azure и пароль не сохранен, сервер берет токен из переменных Azure, рабочей идентичности или `az login`. Управляемая идентичность включается отдельно, переменной `POSTGRES_MCP_MANAGED_IDENTITY=1`. Для входа от имени группы в профиле задают `loginAsUser`.
Какие CSV-файлы сервер вправе читать?
Только из одобренных путей. По умолчанию одобрена папка, из которой клиент запустил сервер, если это не домашний каталог и не корень диска. Другие файлы и папки разрешает команда `allow-access-to-path`, а стартовую папку исключает `POSTGRES_MCP_DISABLE_CWD_ACCESS=1`.
Какие базы PostgreSQL подходят для сервера?
Локальные, в Docker и на своих серверах, а также Azure Database for PostgreSQL, Amazon RDS и Aurora, Google Cloud SQL и AlloyDB и любые совместимые по протоколу.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыpgEdge Postgres MCP
pgEdge Postgres MCP Server
Postgres MCP на Go с запросами в режиме чтения, планами EXPLAIN, поиском по смыслу, несколькими базами, чат-клиентом и веб-интерфейсом
MCP-сервер для PostgreSQL с несколькими базами сразу, описаниями таблиц из каталога, подсказками по PostGIS и pgvector и планами запросов
Открытый MCP-сервер Google для баз данных: готовые инструменты для Postgres, MySQL, BigQuery, Spanner и других, плюс свои инструменты в tools.yaml
Официальный MCP-сервер MongoDB: запросы и агрегации к базам, управление индексами, кластерами Atlas и локальными развертываниями
MCP-сервер на Python для работы с MySQL: список таблиц, чтение данных, выполнение SQL и разбор схемы через контролируемый интерфейс
MCP-сервер и REST API для баз данных на Go: PostgreSQL, MySQL, ClickHouse, Snowflake, BigQuery и других, с маскировкой персональных данных и кэшем
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Postgres MCP (Microsoft) (эта запись) | нет | ключ необязателен | 61 | |
| Postgres MCP Pro | нет | API-ключ | 3 420 | сервер с упором на администрирование: подбор индексов, проверка здоровья базы и планы с гипотетическими индексами, строка подключения в DATABASE_URI |
| pgEdge Postgres MCP | нет | не нужна | 239 | сервер на Go с YAML-конфигом, несколькими базами, поиском по смыслу, чат-клиентом и веб-интерфейсом |
| DBHub | нет | не нужна | 3 712 | сервер для PostgreSQL, MySQL, MariaDB, SQL Server и SQLite с двумя инструментами по умолчанию и режимом только для чтения |
Коротко о README
Короткая инструкция ведет от сохранения профиля подключения к настройке клиента и первому вопросу агенту. Большое руководство USAGE.md разбирает настройку для GitHub Copilot CLI, Claude Code, Cursor, Claude Desktop, VS Code, Codex и OpenCode, способы входа, модель безопасности с таблицей ответственности и чек-листом защиты, режимы TLS, справочник инструментов и переменных окружения, а также частые ошибки. Рядом лежат журнал изменений и описание порядка сообщений об уязвимостях.