# Postgres MCP

Даёт агенту карту схем и таблиц PostgreSQL и безопасные запросы на чтение. Пригодится, когда нужно, чтобы модель смотрела на реальную базу, а не угадывала имена.

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

## Что делает

Postgres MCP — сервер на `@modelcontextprotocol/sdk` и `pg`. Он строит для модели карту базы: схемы, таблицы, столбцы, внешние ключи, связи между таблицами, а также отмечает уровень риска и к каким доменам относятся данные. Всё это берётся из настоящей схемы, а не придумывается.

По умолчанию сервер работает в режиме только чтения: записи, DDL и произвольный SQL отключены, пока вы сами не разрешите их. Инструмент `pg_classify_query_risk` позволяет модели проверить запрос на безопасность перед запуском. Учётные данные сервер читает из `.env` при старте, поэтому в `mcp.json` они не хранятся. Каждый инструмент включается отдельно через аргумент `tool=<name>`.

Нужен Node.js версии 18 или новее и файл `.env` с данными подключения. Если включить пишущие инструменты, но забыть про `POSTGRES_MCP_ALLOW_WRITE=true` в `env`, сервер завершится при запуске — это стоит проверить до первого подключения.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `MCP_KEY_HOST`, `MCP_KEY_PORT`, `MCP_KEY_NAME`, `MCP_KEY_USER`, `MCP_KEY_PASS`, `MCP_KEY_SSLMODE` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.
- Работает с: PostgreSQL

## Установка

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

**Командой платформы**
```bash
claude mcp add --env MCP_KEY_HOST=<MCP_KEY_HOST> --env MCP_KEY_PORT=<MCP_KEY_PORT> --env MCP_KEY_NAME=<MCP_KEY_NAME> --env MCP_KEY_USER=<MCP_KEY_USER> --env MCP_KEY_PASS=<MCP_KEY_PASS> --transport stdio edelciomolina-postgres-mcp -- npx -y @edelciomolina/postgres-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add edelciomolina-postgres-mcp --env MCP_KEY_HOST=<MCP_KEY_HOST> --env MCP_KEY_PORT=<MCP_KEY_PORT> --env MCP_KEY_NAME=<MCP_KEY_NAME> --env MCP_KEY_USER=<MCP_KEY_USER> --env MCP_KEY_PASS=<MCP_KEY_PASS> -- npx -y @edelciomolina/postgres-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "edelciomolina-postgres-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@edelciomolina/postgres-mcp"
            ],
            "env": {
                "MCP_KEY_HOST": "<MCP_KEY_HOST>",
                "MCP_KEY_PORT": "<MCP_KEY_PORT>",
                "MCP_KEY_NAME": "<MCP_KEY_NAME>",
                "MCP_KEY_USER": "<MCP_KEY_USER>",
                "MCP_KEY_PASS": "<MCP_KEY_PASS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "edelciomolina-postgres-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@edelciomolina/postgres-mcp"
            ],
            "env": {
                "MCP_KEY_HOST": "<MCP_KEY_HOST>",
                "MCP_KEY_PORT": "<MCP_KEY_PORT>",
                "MCP_KEY_NAME": "<MCP_KEY_NAME>",
                "MCP_KEY_USER": "<MCP_KEY_USER>",
                "MCP_KEY_PASS": "<MCP_KEY_PASS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e MCP_KEY_HOST=<MCP_KEY_HOST> -e MCP_KEY_PORT=<MCP_KEY_PORT> -e MCP_KEY_NAME=<MCP_KEY_NAME> -e MCP_KEY_USER=<MCP_KEY_USER> -e MCP_KEY_PASS=<MCP_KEY_PASS> edelciomolina-postgres-mcp npx -y @edelciomolina/postgres-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера

## Когда брать
- посмотреть реальную схему базы перед написанием запроса
- проверить запрос на риск до его выполнения
- дать агенту доступ к PostgreSQL без записи в него
- подключиться к базе по строке подключения из `DATABASE_URL`
- включать только нужные инструменты работы с базой

## Примеры запросов агенту
- Покажи схему таблицы `orders` и её внешние ключи
- Проверь этот запрос на риск перед запуском
- Подключись к базе и опиши, к каким доменам относятся таблицы

## Похожие
- [postgres-patterns](https://affpapa.org/nevibecode/skills/postgres-patterns.md) — скилл · 5200 установок
- [postgres-best-practices](https://affpapa.org/nevibecode/skills/neondatabase-postgres-best-practices.md) — скилл · 1900 установок
- [postgres](https://affpapa.org/nevibecode/skills/sanjay3290-postgres.md) — скилл · 620 установок
- [design-postgres-tables](https://affpapa.org/nevibecode/skills/design-postgres-tables.md) — скилл · 613 установок
- [postgres-nio](https://affpapa.org/nevibecode/skills/postgres-nio.md) — скилл · ★ 62
- [migrate-postgres-tables-to-hypertables](https://affpapa.org/nevibecode/skills/migrate-postgres-tables-to-hypertables.md) — скилл · 355 установок

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