Postgres MCP (Microsoft)

Postgres MCP Server (Microsoft)

Postgres MCP от Microsoft: профили подключения с паролями в связке ключей ОС, вход через Entra ID для Azure, запросы, схема, CSV и метрики сервера

  • 61 ★ репозитория
  • Последний коммит
  • MIT
MCP-сервер

Широкий доступ

Почему такой уровень

  • Инструмент записи выполняет DDL и DML с правами роли профиля, а сервер сам не проверяет, что агенту можно
  • Загрузка и описание CSV читают локальные файлы из одобренных папок
Все причины и проверки

microsoft/postgres-mcp

Установка

В терминале, через 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-серверРасширенный доступ239Звезды репозитория

MCP-сервер для PostgreSQL с несколькими базами сразу, описаниями таблиц из каталога, подсказками по PostGIS и pgvector и планами запросов

MCP-серверРасширенный доступ541Звезды репозитория
Официальный

Открытый MCP-сервер Google для баз данных: готовые инструменты для Postgres, MySQL, BigQuery, Spanner и других, плюс свои инструменты в tools.yaml

MCP-серверШирокий доступ16,7 тыс.Звезды репозитория
Официальный

Официальный MCP-сервер MongoDB: запросы и агрегации к базам, управление индексами, кластерами Atlas и локальными развертываниями

MCP-серверШирокий доступ1,1 тыс.Звезды репозитория

MCP-сервер на Python для работы с MySQL: список таблиц, чтение данных, выполнение SQL и разбор схемы через контролируемый интерфейс

MCP-серверШирокий доступ1,4 тыс.Звезды репозитория

MCP-сервер и REST API для баз данных на Go: PostgreSQL, MySQL, ClickHouse, Snowflake, BigQuery и других, с маскировкой персональных данных и кэшем

MCP-серверШирокий доступ548Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
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, справочник инструментов и переменных окружения, а также частые ошибки. Рядом лежат журнал изменений и описание порядка сообщений об уязвимостях.

Бейдж для README

Сообщить о проблеме

Foxx AIPostgres MCP (Microsoft)
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.