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
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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.14512MIT
- 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.63Apache 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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/divinedev111/mcp-postgres'
If you have feedback or need assistance with the MCP directory API, please join our Discord server