Лучшие MCP-серверы для PostgreSQL: полный обзор и настройка в 2026 году
PostgreSQL и MCP созданы друг для друга. PostgreSQL — одна из самых богатых функционально реляционных баз данных с богатейшей схемой метаданных, мощным планировщиком запросов и системой расширений. MCP позволяет AI-агентам использовать весь этот потенциал напрямую: задавать вопросы к данным на естественном языке, анализировать планы выполнения запросов, находить проблемные индексы и оптимизировать производительность. В 2026 году экосистема MCP для PostgreSQL предлагает несколько зрелых вариантов под разные задачи.
Что MCP даёт разработчику PostgreSQL
Без MCP взаимодействие AI с PostgreSQL ограничено тем, что вы скопируете в чат: структуру таблиц, содержимое pg_stat_statements, вывод EXPLAIN ANALYZE. Это трудоёмко и неполно.
С MCP:
- AI видит реальную схему всех таблиц, индексов, представлений и функций
- Может выполнять SELECT-запросы для анализа данных
- Видит актуальные метрики производительности через
pg_stat_* - Анализирует планы выполнения запросов и предлагает оптимизации
- В зависимости от сервера — создаёт таблицы, индексы, выполняет миграции
Обзор лучших MCP-серверов для PostgreSQL
1. Postgres MCP Pro (crystaldba)
GitHub: github.com/crystaldba/postgres-mcp
Docker: crystaldba/postgres-mcp
Наиболее функциональный и рекомендуемый MCP-сервер для задач оптимизации производительности PostgreSQL. Ориентирован на DBA и разработчиков, которым нужна не просто работа с данными, а глубокий анализ и настройка базы данных.
Ключевые возможности:
- Index Advisor — алгоритмическая система рекомендаций по индексам. Анализирует нагрузку из
pg_stat_statementsи предлагает конкретные CREATE INDEX команды - EXPLAIN ANALYZE — AI может получить и интерпретировать план выполнения любого запроса
- Проверка здоровья БД — анализ vacuum, bloat, buffer cache hit ratio, long-running transactions
- Два режима доступа: restricted (только чтение) и unrestricted (полный доступ)
- Безопасное оборачивание запросов в read-only транзакции
Установка через Docker (рекомендуется для production):
docker pull crystaldba/postgres-mcp
Конфигурация для Claude Desktop:
{
"mcpServers": {
"postgres-pro": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "DATABASE_URI",
"crystaldba/postgres-mcp",
"--access-mode=restrict"
],
"env": {
"DATABASE_URI": "postgresql://mcp_reader:password@localhost:5432/mydb"
}
}
}
}
Режим restrict ограничивает AI только операциями чтения — рекомендуется для production.
Практический сценарий с Postgres MCP Pro:
— Какие запросы занимают больше всего времени в базе?
— Есть ли неиспользуемые индексы, которые можно удалить?
— Проанализируй этот запрос и объясни, почему он медленный:
SELECT * FROM orders o JOIN users u ON o.user_id = u.id
WHERE o.created_at > NOW() - INTERVAL '7 days'
— Предложи индексы для оптимизации производительности таблицы orders.
2. pgEdge Postgres MCP Server
GitHub: github.com/pgEdge/pgedge-postgres-mcp
Открытый MCP-сервер с поддержкой стандартного PostgreSQL (v14+) и специализированных pgEdge-дистрибутивов. Позиционируется как enterprise-решение с vendor-поддержкой. Особенно силён в работе с распределёнными PostgreSQL-кластерами.
Ключевые возможности:
- Полная интроспекция схемы: таблицы, индексы, Foreign Keys, Views, функции
- Выполнение запросов с настраиваемым режимом доступа (read/write)
- Поддержка multi-node конфигурации (несколько PostgreSQL нод в одном MCP)
- Метрики производительности: pg_stat_activity, pg_stat_user_tables
- Совместимость со стандартным PostgreSQL, RDS, Aurora, CloudSQL
Настройка через YAML-конфигурацию:
Создайте файл postgres-mcp.yaml:
connections:
primary:
host: localhost
port: 5432
database: mydb
username: mcp_user
password: secure-password
readOnly: true
replica:
host: replica.example.com
port: 5432
database: mydb
username: mcp_reader
password: secure-password
readOnly: true
Конфигурация для Claude Desktop:
{
"mcpServers": {
"pgedge": {
"command": "/path/to/pgedge-mcp-binary",
"args": ["--config", "/path/to/postgres-mcp.yaml"]
}
}
}
Особенность pgEdge: если у вас multi-master PostgreSQL кластер (pgEdge distribution), этот сервер нативно понимает топологию и может работать с несколькими нодами одновременно.
3. Supabase MCP Server
npm: @supabase/mcp-server-supabase
Официальная документация: supabase.com/docs/guides/getting-started/mcp
Если вы используете Supabase — официальный MCP-сервер от команды Supabase является очевидным выбором. Он интегрируется не просто с PostgreSQL-базой, но со всей платформой Supabase.
Ключевые возможности:
- Полный доступ к таблицам Supabase через table editor API
- Управление схемой через Supabase Migration API
- Auth — управление пользователями и политиками Row Level Security
- Edge Functions — создание и деплой serverless-функций
- Storage — работа с файлами через Supabase Storage
- Realtime — управление каналами и подписками
Настройка:
- Получите токен доступа в Supabase Dashboard: Settings → API → Service Role Key
- Или используйте персональный токен: supabase.com/dashboard/account/tokens
{
"mcpServers": {
"supabase": {
"command": "npx",
"args": ["-y", "@supabase/mcp-server-supabase"],
"env": {
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key"
}
}
}
}
Для локальной разработки с Supabase CLI:
{
"mcpServers": {
"supabase-local": {
"command": "npx",
"args": ["-y", "@supabase/mcp-server-supabase"],
"env": {
"SUPABASE_URL": "http://localhost:54321",
"SUPABASE_SERVICE_ROLE_KEY": "your-local-service-role-key"
}
}
}
}
Практический сценарий с Supabase MCP:
— Создай таблицу posts с полями: id, title, content, author_id (FK на users), published (boolean), created_at
— Добавь RLS-политику: пользователь видит только свои посты и все опубликованные
— Покажи, какие Edge Functions сейчас задеплоены
— Проверь, нет ли таблиц без Row Level Security — это потенциальная уязвимость
4. Официальный Anthropic PostgreSQL MCP Reference
GitHub: github.com/modelcontextprotocol/servers/src/postgres
Базовая reference-реализация от команды Anthropic, созданная как образец для разработчиков собственных MCP-серверов. Простой, минималистичный, но надёжный.
Возможности ограничены:
- Листинг таблиц и их схемы
- Выполнение SQL-запросов (только SELECT)
- Получение метаданных схемы
Подходит для: простых аналитических задач, когда нужна минимальная конфигурация без лишних зависимостей.
npx @modelcontextprotocol/server-postgres postgresql://user:password@localhost/db
{
"mcpServers": {
"postgres-basic": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://mcp_reader:password@localhost:5432/mydb"
]
}
}
}
5. Google Cloud Managed MCP (Enterprise)
Для команд в GCP-экосистеме Google предоставляет enterprise MCP-интеграцию для Cloud SQL и AlloyDB (PostgreSQL-совместимая высокопроизводительная база данных).
Преимущества enterprise-варианта:
- Встроенный аудит-лог всех операций AI
- Управление через IAM без хранения паролей
- Zero-infrastructure: подключение напрямую к Cloud SQL без промежуточного сервера
- Управление корпоративными политиками доступа
Подходит для: крупных организаций в GCP с требованиями к governance и compliance.
Сравнительная таблица PostgreSQL MCP-серверов
| Параметр | Postgres MCP Pro | pgEdge MCP | Supabase MCP | Reference MCP | Google Cloud MCP | |---|---|---|---|---|---| | Оптимизация запросов | Отличная | Хорошая | Нет | Нет | Нет | | Index Advisor | Да | Нет | Нет | Нет | Нет | | Read-only режим | Да | Да | Нет | Да (по умолчанию) | Да | | Write-операции | Да | Да | Да | Нет | Ограниченно | | Управление схемой | Ограниченно | Да | Полное (Supabase) | Нет | Нет | | Multi-node | Нет | Да | Нет | Нет | Нет | | Экосистема | Стандартный PG | PG / pgEdge | Только Supabase | Любой PG | GCP | | Vendor поддержка | Community | pgEdge | Supabase | Anthropic | Google | | Docker поддержка | Да | Да | Нет | Нет | N/A | | Сложность настройки | Средняя | Средняя | Низкая | Низкая | Средняя |
Как выбрать подходящий MCP-сервер
Для оптимизации производительности и работы DBA: Postgres MCP Pro. Возможности анализа индексов, vacuum, buffer cache и EXPLAIN PLAN делают его незаменимым инструментом для оптимизации.
Для стандартных задач разработки с любым PostgreSQL: pgEdge MCP или Postgres MCP Pro. Оба работают с любым PostgreSQL v14+ без привязки к платформе.
Для проектов на Supabase: Supabase MCP — единственный вариант с полной интеграцией в экосистему (Auth, Storage, Edge Functions, RLS).
Для быстрого старта без настройки: Reference MCP от Anthropic. Запускается одной командой npx.
Для enterprise в Google Cloud: Google Cloud Managed MCP с IAM и аудит-логами.
Пошаговая настройка Postgres MCP Pro
Это самый функциональный вариант, поэтому разберём его подробнее.
Шаг 1: Создайте read-only пользователя PostgreSQL
-- Подключитесь к PostgreSQL как суперпользователь
CREATE USER mcp_reader WITH PASSWORD 'secure-random-password';
-- Дайте права на чтение схемы
GRANT CONNECT ON DATABASE mydb TO mcp_reader;
GRANT USAGE ON SCHEMA public TO mcp_reader;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO mcp_reader;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO mcp_reader;
-- Дайте доступ к системным представлениям для анализа
GRANT pg_monitor TO mcp_reader;
Шаг 2: Установите Docker-образ
docker pull crystaldba/postgres-mcp
Шаг 3: Протестируйте подключение
docker run -it --rm \
-e DATABASE_URI="postgresql://mcp_reader:secure-password@host.docker.internal:5432/mydb" \
crystaldba/postgres-mcp \
--access-mode=restrict
Если соединение установлено, сервер готов к использованию.
Шаг 4: Настройте MCP-клиент
Claude Desktop (~/.config/claude/claude_desktop_config.json на Linux/macOS, %APPDATA%\Claude\claude_desktop_config.json на Windows):
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "DATABASE_URI",
"crystaldba/postgres-mcp",
"--access-mode=restrict"
],
"env": {
"DATABASE_URI": "postgresql://mcp_reader:secure-password@host.docker.internal:5432/mydb"
}
}
}
}
Обратите внимание: при Docker-запуске на macOS/Windows используйте host.docker.internal вместо localhost для обращения к сервисам хост-машины.
Шаг 5: Перезапустите Claude Desktop и проверьте
Спросите: «Покажи мне все таблицы в базе данных». Если MCP работает корректно, AI вернёт список таблиц с описанием.
Продвинутые сценарии использования
Аудит безопасности базы данных
— Найди таблицы без Row Level Security (если используется Supabase)
— Какие пользователи имеют superuser-права?
— Есть ли таблицы без первичных ключей?
— Найди индексы с низкой эффективностью (много scans, мало hits)
— Покажи запросы, которые выполняются дольше 1 секунды
Оптимизация производительности
— Проанализируй запрос ниже и предложи, как его ускорить:
[вставить медленный запрос]
— Какие таблицы требуют VACUUM? Проверь bloat.
— Есть ли дублирующиеся индексы в схеме?
— Какой cache hit ratio у buffer cache? Достаточно ли памяти?
Помощь с разработкой
— Создай таблицу для хранения событий аудита:
кто, что, когда, откуда.
— Напиши индексы для оптимизации запросов фильтрации по user_id,
created_at и status.
— Предложи структуру для хранения иерархических данных
(категории с подкатегориями).
Безопасность: особенности для PostgreSQL
PostgreSQL имеет развитую систему прав доступа, которая хорошо сочетается с принципом минимальных привилегий для MCP.
Создание изолированного пользователя — обязательный шаг. Никогда не используйте суперпользователя или postgres-пользователя в конфигурации MCP.
-- Только необходимые права
CREATE USER mcp_ai WITH PASSWORD 'long-random-password';
GRANT CONNECT ON DATABASE production TO mcp_ai;
GRANT USAGE ON SCHEMA public TO mcp_ai;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO mcp_ai;
-- Для анализа производительности (без доступа к данным других пользователей)
GRANT pg_monitor TO mcp_ai;
Используйте SSL для подключения. Если PostgreSQL доступен по сети (не localhost):
postgresql://mcp_ai:password@db.example.com:5432/mydb?sslmode=require
Ограничьте сетевой доступ. MCP-сервер должен иметь доступ к базе по сети, но сама база не должна быть открыта публично. Используйте VPN, SSH-туннель или private network.
# SSH-туннель к удалённому PostgreSQL
ssh -L 5433:localhost:5432 user@db-server.example.com -N &
# Подключение через туннель
DATABASE_URI="postgresql://mcp_ai:password@localhost:5433/mydb"
Резервное копирование PostgreSQL
Активное использование AI-агентов через MCP — дополнительный аргумент в пользу регулярных бэкапов. Даже при read-only доступе: AI может «попросить» вас выполнить DROP-запрос, который вы случайно подтвердите.
Сервис dbsend.ru автоматизирует PostgreSQL-дампы (pg_dump) с упаковкой и выгрузкой в облако. Конфигурация в одном файле, работает по расписанию, поддерживает ротацию копий. Для production-баз данных, с которыми работают AI-агенты, ежедневный бэкап — обязательная страховка.
FAQ
Какой MCP-сервер для PostgreSQL лучший в 2026 году?
Зависит от задачи. Для оптимизации и анализа — Postgres MCP Pro. Для разработки с Supabase — Supabase MCP. Для enterprise в Google Cloud — Google Cloud Managed MCP. Для быстрого старта — reference-сервер от Anthropic.
Можно ли использовать MCP с Managed PostgreSQL (RDS, Cloud SQL, Timeweb и т.д.)?
Да, большинство MCP-серверов работают с любым PostgreSQL-совместимым сервисом. Главное — корректно указать connection string и обеспечить сетевую доступность. pgEdge MCP специально тестируется с RDS и облачными PostgreSQL.
Как проверить, что MCP-сервер подключился к PostgreSQL?
Перезапустите AI-клиент после изменения конфигурации и спросите: «Список всех таблиц в базе данных». Успешный ответ подтверждает подключение. При ошибках проверяйте логи: ~/Library/Logs/Claude/mcp*.log (macOS).
Может ли AI через MCP изменить структуру таблиц в PostgreSQL?
В режиме restrict (read-only) — нет. В режиме unrestricted — потенциально да, если вы явно попросите. Рекомендуется использовать read-only режим для production-окружений и unrestricted — только для dev.
Работает ли Postgres MCP Pro с PostgreSQL в Docker?
Да. Укажите правильный хост: если MCP-сервер тоже в Docker — используйте имя сервиса Docker network. Если MCP-сервер на хосте, а PostgreSQL в Docker — используйте localhost и проброс порта.
Поддерживает ли MCP расширения PostgreSQL: pgvector, PostGIS?
Стандартные MCP-серверы работают со всем, что доступно через SQL. pgvector и PostGIS доступны через стандартные SQL-операции. Специализированных MCP-инструментов для работы с pgvector напрямую пока нет, но AI может составлять корректные vector-запросы зная структуру таблицы.