# PostgreSQL

Подключает ассистента к базам PostgreSQL в Docker или в облаке. Помогает безопасно изучать структуру таблиц и выполнять SQL-запросы прямо из чата.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 24
- Автор: antonorlov
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/antonorlov/mcp-postgres-server
- Обновлён: 2026-09-16
- HTML: https://affpapa.org/nevibecode/mcp/postgresql

## Что делает

Сервер работает через `npx` по протоколу stdio и требует Node.js 20 или новее. Внутри задействованы библиотеки `pg`, `zod` и `pg-connection-string`. Для подключения достаточно передать строку `DATABASE_URL` либо отдельные параметры хоста и порта.

По умолчанию доступ строго ограничен чтением. Команда `query` оборачивает запросы в транзакцию с `BEGIN READ ONLY` и `ROLLBACK`, отсекая любые попытки изменить данные. Инструменты `list_schemas`, `list_tables` и `describe_table` показывают структуру таблиц и типы колонок.

Запись заблокирована на уровне сервера. Пока флаг `PG_ALLOW_WRITE` не равен `true`, инструмент `execute` отклонит любые `INSERT` или DDL-команды ещё до отправки в базу.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `DATABASE_URL`, `PG_HOST`, `PG_PORT`, `PG_USER`, `PG_PASSWORD`, `PG_DATABASE`, `PG_ALLOW_WRITE`, `PG_SSLMODE`, `PG_SSL_CA`, `PG_ENABLE_RUNTIME_CONNECT` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.
- Работает с: PostgreSQL

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env DATABASE_URL=<DATABASE_URL> --env PG_HOST=<PG_HOST> --env PG_PORT=<PG_PORT> --env PG_USER=<PG_USER> --env PG_PASSWORD=<PG_PASSWORD> --transport stdio postgresql -- npx -y mcp-postgres-server
```
Вместо <…> подставьте свои значения. Ещё 17 переменных окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add postgresql --env DATABASE_URL=<DATABASE_URL> --env PG_HOST=<PG_HOST> --env PG_PORT=<PG_PORT> --env PG_USER=<PG_USER> --env PG_PASSWORD=<PG_PASSWORD> -- npx -y mcp-postgres-server
```
Вместо <…> подставьте свои значения. Ещё 17 переменных окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "postgresql": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-postgres-server"
            ],
            "env": {
                "DATABASE_URL": "<DATABASE_URL>",
                "PG_HOST": "<PG_HOST>",
                "PG_PORT": "<PG_PORT>",
                "PG_USER": "<PG_USER>",
                "PG_PASSWORD": "<PG_PASSWORD>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 17 переменных окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "postgresql": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "mcp-postgres-server"
            ],
            "env": {
                "DATABASE_URL": "<DATABASE_URL>",
                "PG_HOST": "<PG_HOST>",
                "PG_PORT": "<PG_PORT>",
                "PG_USER": "<PG_USER>",
                "PG_PASSWORD": "<PG_PASSWORD>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 17 переменных окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e DATABASE_URL=<DATABASE_URL> -e PG_HOST=<PG_HOST> -e PG_PORT=<PG_PORT> -e PG_USER=<PG_USER> -e PG_PASSWORD=<PG_PASSWORD> postgresql npx -y mcp-postgres-server
```
Вместо <…> подставьте свои значения. Ещё 17 переменных окружения — в README сервера

## Когда брать
- исследовать структуру таблиц и внешние ключи в незнакомой базе
- выполнять аналитические выборки через `SELECT` без риска затереть данные
- получать типы колонок и ограничения перед написанием миграций
- подключаться к удалённым базам Neon или Supabase через защищённое соединение

## Примеры запросов агенту
- Покажи список всех таблиц в схеме `public` этой базы.
- Опиши структуру таблицы `users` с типами колонок и первичными ключами.
- Выполни запрос `SELECT count(*) FROM orders WHERE status = $1` с параметром `completed`.

## Похожие
- [World Monitor](https://affpapa.org/nevibecode/mcp/world-monitor.md) — MCP-сервер · ★ 89408
- [Scrapling MCP Server](https://affpapa.org/nevibecode/mcp/scrapling-mcp-server.md) — MCP-сервер · ★ 89433
- [MCP Toolbox for Databases](https://affpapa.org/nevibecode/mcp/googleapis-mcp-toolbox-for-databases.md) — MCP-сервер · ★ 16717
- [PostHog MCP Server](https://affpapa.org/nevibecode/mcp/posthog-mcp-server.md) — MCP-сервер · ★ 40409
- [dbx](https://affpapa.org/nevibecode/mcp/dbx.md) — MCP-сервер · ★ 27669
- [Metabase](https://affpapa.org/nevibecode/mcp/metabase.md) — MCP-сервер · ★ 49845

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
