
PostgreSQL MCP
Подключает агента к базе PostgreSQL: смотреть схему, выполнять SQL, разбирать планы запросов. Postgres MCP Pro вдобавок ищет медленные запросы, подбирает индексы и проверяет здоровье базы.
Только PostgreSQL, зато с подбором индексов, анализом нагрузки и проверкой здоровья базы.
Как подключить
Что сделать до подключения
Docker или Python 3.12 и новее (тогда установка через pipx install postgres-mcp или uv)
Для подбора индексов и анализа запросов — расширения pg_stat_statements и hypopg в базе
DATABASE_URIстрока подключения вида postgresql://пользователь:пароль@хост:5432/база; проверить доступ можно через psql или pgAdmin
Конфиг для вашего клиента
Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code
claude mcp add --env DATABASE_URI=postgresql://username:password@localhost:5432/dbname --transport stdio postgres \
-- docker run -i --rm -e DATABASE_URI crystaldba/postgres-mcp --access-mode=restrictedПроверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.postgres]
command = "docker"
args = ["run", "-i", "--rm", "-e", "DATABASE_URI", "crystaldba/postgres-mcp", "--access-mode=restricted"]
[mcp_servers.postgres.env]
DATABASE_URI = "postgresql://username:password@localhost:5432/dbname"Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DATABASE_URI",
"crystaldba/postgres-mcp",
"--access-mode=restricted"
],
"env": {
"DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
}
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"postgres": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DATABASE_URI",
"crystaldba/postgres-mcp",
"--access-mode=restricted"
],
"env": {
"DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
}
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DATABASE_URI",
"crystaldba/postgres-mcp",
"--access-mode=restricted"
],
"env": {
"DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
}
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DATABASE_URI",
"crystaldba/postgres-mcp",
"--access-mode=restricted"
],
"env": {
"DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
}
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"postgres": {
"type": "local",
"command": [
"docker",
"run",
"-i",
"--rm",
"-e",
"DATABASE_URI",
"crystaldba/postgres-mcp",
"--access-mode=restricted"
],
"environment": {
"DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
}
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DATABASE_URI",
"crystaldba/postgres-mcp",
"--access-mode=restricted"
],
"env": {
"DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
}
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DATABASE_URI",
"crystaldba/postgres-mcp",
"--access-mode=restricted"
],
"env": {
"DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
}
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
list_schemasпоказывает схемыlist_objectsпоказывает таблицы и представленияget_object_detailsописывает колонки и индексыexecute_sqlвыполняет SQLexplain_queryпоказывает план запросаget_top_queriesнаходит самые медленные запросыanalyze_workload_indexesподбирает индексы под нагрузкуanalyze_query_indexesподбирает индексы под запросыanalyze_db_healthпроверяет здоровье базыОдин сервер для PostgreSQL, MySQL, MariaDB, SQL Server, Oracle и SQLite; по умолчанию 2 инструмента и мало токенов в контексте.
Как подключить
Что сделать до подключения
Node.js 22.5.0 или новее; без Node.js есть образ Docker
--dsnстрока подключения вида postgres://user:password@host:5432/dbname; для нескольких баз — файл dbhub.toml и флаг --config
Конфиг для вашего клиента
Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code
claude mcp add --transport stdio dbhub \
-- npx @bytebase/dbhub@latest --transport stdio --dsn postgres://user:password@localhost:5432/dbnameПроверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.dbhub]
command = "npx"
args = ["@bytebase/dbhub@latest", "--transport", "stdio", "--dsn", "postgres://user:password@localhost:5432/dbname"]Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"dbhub": {
"type": "stdio",
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"dbhub": {
"type": "local",
"command": [
"npx",
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"dbhub": {
"command": "npx",
"args": [
"@bytebase/dbhub@latest",
"--transport",
"stdio",
"--dsn",
"postgres://user:password@localhost:5432/dbname"
]
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
execute_sqlвыполняет SQLsearch_objectsищет таблицы, колонки и индексыexplain_sqlпоказывает план без выполнения (включается в dbhub.toml)health_checkпоказывает пул соединений и кэш (включается в dbhub.toml)Что попросить агента
Для каких задач
Ограничения
В Postgres MCP Pro режим unrestricted даёт агенту полный доступ на запись; для рабочей базы ставьте --access-mode=restricted
Без расширений pg_stat_statements и hypopg подбор индексов и анализ запросов не работают
Postgres MCP Pro тестируют на PostgreSQL 15, 16 и 17
В DBHub режим только чтения задаётся в файле dbhub.toml (readonly = true) и не защищает от функций, доступных привилегированной роли
Если не работает
Подбор индексов и разбор медленных запросов не работают
DBHub подключается, но запросы к базе падают
Клиент не подключается к DBHub по HTTP
Какую реализацию выбрать
| Реализация | Кто делает | Звёзды | Запуск | Ключ | Инструменты | Обновлён |
|---|---|---|---|---|---|---|
| Postgres MCP Pro | Crystal DBA | 3,5 тыс. | локально | не нужен | 9 | 17 августа 2026 |
| DBHub | Bytebase | 3,8 тыс. | локально | не нужен | 4 | 12 ноября 2026 |