pg-mcp-server

MCP-сервер для PostgreSQL: агент выполняет SQL, видит таблицы и схемы, запись в базу выключена, пока ее не разрешат явно

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

Расширенный доступ

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

  • Агент выполняет произвольный SQL по переданной строке подключения, а результаты уходят в контекст модели
  • Переменная `DANGEROUSLY_ALLOW_WRITE_OPS` включает запись и удаление данных
Все причины и проверки

ericzakariasson/pg-mcp-server

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add mcp/ericzakariasson-pg-mcp-server

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Агент выполняет произвольный SQL по переданной строке подключения, а результаты уходят в контекст модели
  • Переменная `DANGEROUSLY_ALLOW_WRITE_OPS` включает запись и удаление данных

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

pg-mcp-server открывает агенту базу PostgreSQL через один инструмент `query`, который выполняет SQL-запрос. Два ресурса дополняют его: `postgres://tables` перечисляет таблицы, а `postgres://table/{schema}/{table}` отдает схему таблицы и пример данных. По умолчанию запись отключена, ее включает переменная `DANGEROUSLY_ALLOW_WRITE_OPS`. Сервер работает по stdio и по HTTP: в режиме `--transport=http` он слушает адрес `/mcp` на порту 3000 по умолчанию. Для TLS можно указать корневой сертификат в `PG_SSL_ROOT_CERT`, например пакет AWS RDS. В репозитории лежит правило Cursor для работы с ноутбуками вместе с этим сервером, а `docker-compose.yml` поднимает тестовый PostgreSQL с таблицами users, products, orders и order_items и командой `bun run inspector` для проверки через MCP Inspector.

Для кого. Аналитикам и бэкенд-разработчикам, которые хотят давать Cursor или Claude Code читать боевую или тестовую PostgreSQL без стороннего хостинга.

Подходит, если

  • Нужно быстро выяснить, сколько активных пользователей в таблице users, не открывая клиент базы
  • Агент разбирает чужую схему и должен увидеть таблицы и пример строк перед написанием запроса
  • Анализ данных идет в ноутбуке Cursor и опирается на SQL к базе
  • Подключение к AWS RDS требует корневого сертификата, и его можно передать переменной
  • Сервер нужен по HTTP для клиента, который не умеет запускать процессы по stdio

Не подходит, если

  • Нужны планы EXPLAIN, подбор индексов и проверка здоровья базы: для этого есть более богатые серверы
  • Агент должен работать с несколькими базами за одним подключением: здесь одна строка DATABASE_URL
  • База содержит персональные данные, а политика запрещает отправлять их модели
  • Требуется точный разбор SQL с белым списком таблиц: инструмент один, запрос произвольный

Пример запроса к агенту

Покажи таблицы базы и схему orders, затем выведи пять последних заказов с именами клиентов.

MCP

Транспорт
stdio, http
Авторизация
не нужна

Переменные окружения

DATABASE_URL обязательная, секрет
Строка подключения к PostgreSQL
DANGEROUSLY_ALLOW_WRITE_OPS
Разрешает запись в базу, по умолчанию false
DEBUG
Включает отладочные логи, по умолчанию false
PG_SSL_ROOT_CERT
Путь к корневому сертификату для TLS, например пакет AWS RDS
PORT
Порт HTTP-режима, по умолчанию 3000

Ограничения

  • Одна строка подключения DATABASE_URL, один инструмент `query`. Планов EXPLAIN и подсказок по индексам нет.
  • Запись включается переменной `DANGEROUSLY_ALLOW_WRITE_OPS`. Включайте ее только на тестовой базе, а боевую подключайте пользователем с правами только на чтение.
  • Результаты запросов уходят в контекст модели: большие выборки ограничивайте через `LIMIT`.
  • Для запуска нужен Node.js, а для сборки из исходников Bun.

Как отключить. Удалите блок postgres из конфигурации MCP-клиента. Для проверочной базы остановите Docker командой `bun run db:stop`.

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

Как поставить pg-mcp-server в Cursor?

Нажмите кнопку установки в README или добавьте в настройки MCP блок с командой npx и аргументами `--yes pg-mcp-server --transport stdio`. В env нужна переменная DATABASE_URL со строкой подключения.

Может ли агент менять данные в базе?

По умолчанию нет: запись отключена. Ее включает переменная `DANGEROUSLY_ALLOW_WRITE_OPS`, значение по умолчанию false. Если включать, делайте это на тестовой базе.

Как запустить сервер по HTTP?

Добавьте флаг `--transport=http`: сервер отдаст Streamable HTTP на адресе `/mcp` порта 3000, а клиент подключается к `http://localhost:3000/mcp`. Порт меняет переменная PORT.

Как проверить сервер без своей базы?

В репозитории есть `docker-compose.yml` с тестовой PostgreSQL. Команда `bun run db:start` поднимает ее с таблицами users, products, orders и order_items, а `bun run inspector` открывает MCP Inspector.

Какие ресурсы отдает сервер кроме инструмента?

Два: `postgres://tables` со списком таблиц и `postgres://table/{schema}/{table}` со схемой и примером данных выбранной таблицы.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы

MCP-сервер на Go: агент задает вопросы базе PostgreSQL обычными словами и получает результат запроса

MCP-серверРасширенный доступ542Звезды репозитория

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

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

pgEdge Postgres MCP

pgEdge Postgres MCP Server

Postgres MCP на Go с запросами в режиме чтения, планами EXPLAIN, поиском по смыслу, несколькими базами, чат-клиентом и веб-интерфейсом

MCP-серверРасширенный доступ246Звезды репозитория

Postgres MCP (Microsoft)

Postgres MCP Server (Microsoft)

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

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

Один MCP-сервер для SQLite, SQL Server, PostgreSQL и MySQL: агент читает и меняет данные, правит схему и выгружает CSV и JSON

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

MCP-сервер и скиллы от TigerData, с которыми агент пишет схемы и запросы PostgreSQL по актуальной документации и практикам

MCP-серверРасширенный доступ1,9 тыс.Звезды репозитория

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

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

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
pg-mcp-server (эта карточка)нетне нужна179
Postgres MCP ProнетAPI-ключ3 472сервер с планами EXPLAIN, подбором индексов и проверкой здоровья, этот проще и ограничен одним инструментом query
PG-MCP Serverнетне нужна541одноименный MCP-сервер другого автора, это отдельный проект с запуском через npx и режимом HTTP

Коротко о README

README короткий: установка кнопкой для Cursor и JSON-фрагмент, список переменных окружения, режимы stdio и HTTP, инструмент и ресурсы, пример запроса. Дальше идут правило Cursor для ноутбуков, быстрый старт в Docker, команды разработки и процесс выпуска релизов в npm.

Бейдж для README

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