mcp-postgres
mcp-postgres
MCP-сервер для PostgreSQL. Предоставляет ИИ-агентам возможности анализа схемы, выполнения запросов и инструменты администрирования (DBA) через Model Context Protocol.
В отличие от универсальных MCP-серверов для баз данных, mcp-postgres создан специально для Postgres. Он извлекает комментарии к таблицам/столбцам, понимает специфические для Postgres системные представления, предоставляет анализ индексов и поставляется с настраиваемыми уровнями доступа, чтобы вы не предоставляли LLM неограниченный доступ к базе данных.
Возможности
Анализ схемы
Список схем, таблиц и представлений с размерами и количеством строк
Полное описание таблиц: столбцы, типы, ограничения, индексы, внешние ключи
Извлечение метаданных
COMMENT ON— дает LLM семантический контекст о назначении столбцовПоиск объектов по имени или комментарию во всей базе данных
Выполнение запросов
Инструмент
queryтолько для чтения с автоматическим ограничением количества строкИнструмент
executeдля записи, ограниченный уровнем доступаEXPLAIN ANALYZEс удобным для чтения выводом
Инструменты DBA
Статистика таблиц: живые/мертвые кортежи, процент раздувания (bloat), история очистки (vacuum), шаблоны сканирования
Анализ индексов: статистика использования, обнаружение неиспользуемых индексов, рекомендации по отсутствующим индексам
Состояние базы данных: соединения, коэффициент попаданий в кэш, длительные запросы, пропускная способность
Безопасность
Четыре уровня доступа:
readonly,readwrite,admin,unrestrictedКлассификация SQL-операторов (SELECT, DML, DDL, admin) с принудительным контролем
Аудит-логирование в stderr (JSON, одна запись на запрос)
Related MCP server: Postgres Scout MCP
Быстрый старт
npx mcp-postgres --connection-string "postgres://user:pass@localhost:5432/mydb"Или с переменными окружения:
DATABASE_URL="postgres://user:pass@localhost:5432/mydb" npx mcp-postgresClaude Desktop
Добавьте в ваш claude_desktop_config.json:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"mcp-postgres",
"--connection-string",
"postgres://user:pass@localhost:5432/mydb"
]
}
}
}Claude Code
Добавьте в файл .mcp.json вашего проекта:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "mcp-postgres"],
"env": {
"DATABASE_URL": "postgres://user:pass@localhost:5432/mydb"
}
}
}
}Инструменты
Инструмент | Описание | Доступ |
| Список схем с количеством таблиц и их размерами | readonly |
| Список таблиц с комментариями, количеством строк и размерами | readonly |
| Полное описание таблицы со столбцами, индексами, FK и комментариями | readonly |
| Поиск объектов по имени или комментарию | readonly |
| Выполнение SELECT-запросов | readonly |
| Выполнение INSERT/UPDATE/DELETE/CREATE и т.д. | варьируется |
| EXPLAIN (ANALYZE) с читаемым выводом | readonly* |
| Статистика таблиц, раздувание, информация о vacuum | readonly |
| Использование индексов, неиспользуемые индексы, подсказки по отсутствующим индексам | readonly |
| Соединения, коэффициент кэша, длительные запросы, раздувание | readonly |
*explain_query с параметром analyze=true выполняет запрос, поэтому он учитывает уровень доступа для данного оператора.
Ресурсы
URI | Описание |
| Полный DDL для схемы (операторы CREATE TABLE с комментариями) |
| Установленные расширения PostgreSQL |
Промпты
Промпт | Описание |
| Управляемое исследование базы данных — схемы, таблицы, связи |
| Анализ медленного запроса с помощью EXPLAIN, индексов и рекомендаций |
| Комплексная оценка состояния базы данных |
Конфигурация
Опции CLI
--connection-string PostgreSQL connection URL
--access-level readonly|readwrite|admin|unrestricted (default: readonly)
--row-limit Max rows returned per query (default: 500)
--schema Default schema filter (default: public)
--audit Enable query audit logging to stderrПеременные окружения
Переменная | Описание |
| URL подключения к PostgreSQL |
| Альтернативный URL подключения |
| Переопределение уровня доступа |
| Переопределение лимита строк |
Уровни доступа
Уровень | SELECT | INSERT/UPDATE/DELETE | CREATE/ALTER/DROP | TRUNCATE/DROP DATABASE |
| да | нет | нет | нет |
| да | да | нет | нет |
| да | да | да | нет |
| да | да | да | да |
По умолчанию используется readonly. Используйте минимально необходимый уровень.
Аудит-логирование
Включите с помощью --audit. Логирует каждый вызов инструмента в stderr в формате JSON:
{"timestamp":"2026-04-03T12:00:00.000Z","tool":"query","sql":"SELECT * FROM users","statementType":"select","accessLevel":"readonly","allowed":true,"durationMs":12,"rowCount":42}Перенаправьте stderr в файл для сохранения: mcp-postgres --audit 2>audit.log
Архитектура
src/
├── index.ts Entry point and CLI
├── server.ts MCP server setup
├── config.ts Configuration parsing
├── db/
│ ├── pool.ts Connection pool management
│ └── query.ts Query execution with timing
├── tools/
│ ├── schema.ts Schema exploration tools
│ ├── query.ts Query execution tools
│ └── performance.ts DBA and health tools
├── resources/
│ └── schema.ts Schema DDL resources
├── prompts/
│ └── index.ts Prompt templates
└── safety/
├── classifier.ts SQL statement classification
├── access.ts Access level enforcement
└── audit.ts Audit loggingРазработка
npm install
npm test # run tests
npm run build # compile TypeScript
npm run dev -- --connection-string "postgres://..." # run in dev modeЛицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Deterministic safety, correctness & cost gate that vets Postgres SQL before your AI agent runs it.
PostgreSQL, MySQL, OpenAPI/Swagger, and shared Agent Memory with scoped access.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables secure, AI-driven PostgreSQL database administration, observability, and querying with support for extensions like PostGIS and pgvector, connection pooling, and advanced tool filtering.72 npm12MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to safely explore, analyze, and maintain PostgreSQL databases with read-only mode by default, SQL injection prevention, query performance analysis, and optional write operations.52 npmApache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to safely interact with PostgreSQL databases, perform queries, inspect schemas, and analyze query performance.2-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to securely interact with PostgreSQL databases, offering 30+ tools, role-based access control, and security guardrails.2MIT