Integrations
Supports PostgreSQL installation and configuration on Linux platforms with customized setup instructions tailored to Linux environments.
Provides platform-specific PostgreSQL installation and configuration guidance for macOS systems.
Requires Node.js runtime environment for server operation, with specific version requirements (≥ 18.0.0) for proper functionality.
MCP-сервер PostgreSQL
Сервер Model Context Protocol (MCP), который предоставляет возможности управления базой данных PostgreSQL. Этот сервер помогает анализировать существующие настройки PostgreSQL, предоставляя руководство по внедрению, отлаживая проблемы с базой данных, управляя схемами, перенося данные и отслеживая производительность базы данных.
Версия 0.2.0
Функции
Сервер предоставляет следующие инструменты:
1. Анализ и настройка базы данных
1.1. Анализ базы данных ( analyze_database
)
Анализирует конфигурацию базы данных PostgreSQL и показатели производительности:
- Анализ конфигурации
- Показатели производительности
- Оценка безопасности
- Рекомендации по оптимизации
1.2. Получить инструкции по настройке ( get_setup_instructions
)
Предоставляет пошаговые инструкции по установке и настройке PostgreSQL:
- Шаги установки для конкретной платформы
- Рекомендации по конфигурации
- Лучшие практики безопасности
- Задачи после установки
1.3. Отладочная база данных ( debug_database
)
Устранение распространенных проблем PostgreSQL:
- Проблемы с подключением
- Узкие места производительности
- Блокировка конфликтов
- Статус репликации
2. Управление схемой
2.1. Получить информацию о схеме ( get_schema_info
)
Получите подробную информацию о схеме для базы данных или конкретной таблицы:
- Список таблиц в базе данных
- Определения столбцов
- Ограничения (первичные ключи, внешние ключи и т. д.)
- Индексы
2.2. Создать таблицу ( create_table
)
Создайте новую таблицу с указанными столбцами:
- Определите имена и типы столбцов
- Установить ограничения, допускающие значение NULL
- Установить значения по умолчанию
2.3. Изменить таблицу ( alter_table
)
Изменить существующие таблицы:
- Добавить новые столбцы
- Изменить типы столбцов или ограничения
- Удалить столбцы
2.4. Получить перечисления ( get_enums
)
Получите информацию о типах ENUM PostgreSQL.
2.5. Создать перечисление ( create_enum
)
Создайте новый тип ENUM в базе данных.
3. Миграция данных
3.1. Экспорт данных таблицы ( export_table_data
)
Экспорт данных таблицы в формат JSON или CSV:
- Фильтрация данных с помощью предложения WHERE
- Ограничить количество строк
- Выберите выходной формат
3.2 Импорт данных таблицы ( import_table_data
)
Импорт данных из файлов JSON или CSV:
- При желании можно обрезать таблицу перед импортом
- Поддержка разных форматов
- Пользовательские разделители CSV
3.3 Копирование между базами данных ( copy_between_databases
)
Копирование данных между двумя базами данных PostgreSQL:
- Фильтрация данных с помощью предложения WHERE
- При желании можно обрезать целевую таблицу
4. Мониторинг
4.1. База данных монитора ( monitor_database
)
Мониторинг базы данных PostgreSQL в реальном времени:
- Показатели базы данных (подключения, коэффициент попадания в кэш и т. д.)
- Метрики таблиц (размер, количество строк, мертвые кортежи)
- Активная информация о запросе
- Блокировка информации
- Статус репликации
- Настраиваемые оповещения
5. Функции
5.1. Получить функции ( get_functions
)
Получите информацию о функциях PostgreSQL.
5.2. Создать функцию ( create_function
)
Создайте или замените функцию PostgreSQL.
5.3. Функция сброса ( drop_function
)
Удалить функцию PostgreSQL.
6. Безопасность на уровне строк (RLS)
6.1. Включить RLS ( enable_rls
)
Включите безопасность на уровне строк для таблицы.
6.2. Отключить RLS ( disable_rls
)
Отключите безопасность на уровне строк для таблицы.
6.3. Создать политику RLS ( create_rls_policy
)
Создайте политику безопасности на уровне строк.
6.4. Редактировать политику RLS ( edit_rls_policy
)
Отредактируйте существующую политику безопасности на уровне строк.
6.5. Отменить политику RLS ( drop_rls_policy
)
Отмените политику безопасности на уровне строк.
6.6. Получить политики RLS ( get_rls_policies
)
Получите политики безопасности на уровне строк.
7. Триггеры
7.1. Получить триггеры ( get_triggers
)
Получите информацию о триггерах PostgreSQL.
7.2. Создать триггер ( create_trigger
)
Создайте триггер PostgreSQL.
7.3. Триггер сброса ( drop_trigger
)
Удалить триггер PostgreSQL.
7.4. Установить состояние триггера ( set_trigger_state
)
Включить или отключить триггер PostgreSQL.
Предпосылки
- Node.js >= 18.0.0
- Сервер PostgreSQL (для операций с целевой базой данных)
- Сетевой доступ к целевым экземплярам PostgreSQL
Установка
Установка через Smithery
Чтобы автоматически установить postgresql-mcp-server для Claude Desktop через Smithery :
Ручная установка
- Клонировать репозиторий
- Установить зависимости:Copy
- Сборка сервера:Copy
- Добавьте в файл настроек MCP (например, в настройки вашей IDE или глобальную конфигурацию MCP):Существует несколько способов настройки строки подключения к серверу в следующем порядке приоритета:
- Аргумент, специфичный для инструмента : если при вызове определенного инструмента в аргументах непосредственно указывается
connectionString
, это значение будет использоваться для этого вызова. - Аргумент CLI : вы можете указать строку подключения по умолчанию при запуске сервера с помощью аргумента
-cs
или--connection-string
. - Переменная среды : если ни одно из вышеперечисленного не указано, сервер будет искать переменную среды
POSTGRES_CONNECTION_STRING
.
Если строка подключения не найдена ни одним из этих методов, инструменты, требующие подключения к базе данных, не будут работать.
Пример использования аргумента CLI в настройках MCP:
CopyПример использования переменной среды (если не используется аргумент CLI):
CopyИспользование аргумента CLI
--connection-string
или переменной средыPOSTGRES_CONNECTION_STRING
делает аргументconnectionString
необязательным для большинства вызовов инструментов. - Аргумент, специфичный для инструмента : если при вызове определенного инструмента в аргументах непосредственно указывается
Конфигурация инструмента
Сервер поддерживает фильтрацию инструментов, включаемых через внешний файл конфигурации JSON.
- Параметр CLI : используйте
-tc <path>
или--tools-config <path>
чтобы указать путь к файлу конфигурации инструментов. - Формат файла : Файл JSON должен содержать объект с ключом
enabledTools
, который содержит массив строк названий инструментов.Примерmcp-tools.json
:Copy - Поведение :
- Если файл конфигурации предоставлен и действителен, будут включены только перечисленные инструменты.
- Если файл не предоставлен, недействителен или не может быть прочитан, все инструменты будут включены по умолчанию.
- Сервер будет регистрировать, какие инструменты включены на основе этой конфигурации.
Разработка
npm run dev
— запуск сервера разработки с горячей перезагрузкойnpm run lint
— Запустить ESLintnpm test
— запуск тестов (если настроен)
Соображения безопасности
- Безопасность соединения
- Сервер определяет строку подключения к базе данных на основе следующего приоритета:
connectionString
указывается непосредственно в аргументах инструмента.--connection-string
Аргумент CLI, используемый при запуске сервера.- Переменная среды
POSTGRES_CONNECTION_STRING
.
- Убедитесь, что строки подключения (особенно содержащие учетные данные) управляются безопасно.
- Использует пул соединений через
pg
(ранее@vercel/postgres
). - Проверяет строки подключения.
- Поддерживает соединения SSL/TLS (настройка через строку подключения).
- Сервер определяет строку подключения к базе данных на основе следующего приоритета:
- Безопасность запроса
- Выполняет предопределенные операции; по возможности избегает произвольного выполнения SQL.
- Использует параметризованные запросы, где это применимо, для предотвращения SQL-инъекций.
- Регистрирует операции для аудита.
- Аутентификация
- Использует механизмы аутентификации PostgreSQL через строку подключения.
- Безопасно управляйте учетными данными вашей базы данных. Не задавайте их в клиентских запросах, если это возможно; предпочитайте использовать параметр CLI
--connection-string
или переменную средыPOSTGRES_CONNECTION_STRING
при настройке сервера.
Лучшие практики
- Настройте безопасную строку подключения к базе данных по умолчанию с помощью параметра CLI
--connection-string
или переменной средыPOSTGRES_CONNECTION_STRING
. - Если инструменту необходимо подключиться к базе данных, отличной от базы данных по умолчанию, укажите
connectionString
непосредственно в аргументах этого инструмента. - Всегда используйте безопасные строки подключения с надлежащими учетными данными, желательно настроенными с помощью переменной среды
POSTGRES_CONNECTION_STRING
. - Соблюдайте рекомендации по обеспечению безопасности производства для чувствительных сред.
- Регулярно отслеживайте и анализируйте производительность базы данных с помощью инструмента
monitor_database
. - Поддерживайте версию PostgreSQL в актуальном состоянии.
- Самостоятельно реализуйте надлежащие стратегии резервного копирования.
- Используйте пул соединений для лучшего управления ресурсами (обрабатывается внутри).
- Реализуйте правильную обработку ошибок и ведение журнала.
- Регулярные проверки безопасности и обновления.
Обработка ошибок
Сервер реализует обработку ошибок для:
- Сбои соединения
- Ошибки запроса
- Неверные входные данные
- Проблемы с разрешениями
Ошибки возвращаются в стандартном формате ошибок MCP.
Внося вклад
- Форк репозитория
- Создать ветку функций
- Примите ваши изменения
- Нажмите на ветку
- Создать запрос на извлечение
Лицензия
Данный проект лицензирован по лицензии AGPLv3 — подробности см. в файле LICENSE.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Сервер Model Context Protocol, который обеспечивает мощные возможности управления базами данных PostgreSQL, включая анализ, управление схемами, миграцию данных и мониторинг посредством взаимодействия на естественном языке.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that provides read-only access to PostgreSQL databases. This server enables LLMs to inspect database schemas and execute read-only queries.Last updated -114,98144,966JavaScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that provides read-only access to PostgreSQL databases with enhanced multi-schema support, allowing LLMs to inspect database schemas across multiple namespaces and execute read-only queries while maintaining schema isolation.Last updated -132JavaScriptMIT License
- -securityFlicense-qualityA Model Context Protocol server providing both read and write access to PostgreSQL databases, enabling LLMs to query data, modify records, and manage database schemas.Last updated -4JavaScript
- -securityFlicense-qualityA Model Context Protocol server that enables performing PostgreSQL database operations (create, read, update, delete) on User and Post entities through MCP tools.Last updated -TypeScript