pgtuner_mcp MCP сервер
MCP сервер, который предоставляет возможности настройки производительности PostgreSQL с помощью AI, помогая выявлять медленные запросы, рекомендовать оптимальные индексы, анализировать планы выполнения и использовать HypoPG для тестирования гипотетических индексов.
автор: Community
curl -fsSL https://vibebaza.com/i/pgtuner-mcp | bash
MCP сервер, который предоставляет возможности настройки производительности PostgreSQL с помощью AI, помогая выявлять медленные запросы, рекомендовать оптимальные индексы, анализировать планы выполнения и использовать HypoPG для тестирования гипотетических индексов.
Установка
PyPI
pip install pgtuner_mcp
UV
uv pip install pgtuner_mcp
Из исходного кода
git clone https://github.com/isdaniel/pgtuner_mcp.git
cd pgtuner_mcp
pip install -e .
Docker
docker pull dog830228/pgtuner_mcp
Конфигурация
Claude Desktop (стандартный MCP)
{
"mcpServers": {
"pgtuner_mcp": {
"command": "python",
"args": ["-m", "pgtuner_mcp"],
"env": {
"DATABASE_URI": "postgresql://user:password@localhost:5432/mydb"
},
"disabled": false,
"autoApprove": []
}
}
}
HTTP режим
{
"mcpServers": {
"pgtuner_mcp": {
"type": "http",
"url": "http://localhost:8080/mcp"
}
}
}
Доступные инструменты
| Инструмент | Описание |
|---|---|
get_slow_queries |
Получение медленных запросов из pg_stat_statements с подробной статистикой (общее время, среднее время, количество вызовов...) |
analyze_query |
Анализ плана выполнения запроса с помощью EXPLAIN ANALYZE, включая автоматическое обнаружение проблем |
get_table_stats |
Получение подробной статистики по таблицам, включая размер, количество строк, мертвые строки и паттерны доступа |
get_index_recommendations |
Рекомендации по индексам на основе AI и анализа рабочей нагрузки запросов |
explain_with_indexes |
Выполнение EXPLAIN с гипотетическими индексами для тестирования улучшений без создания реальных индексов |
manage_hypothetical_indexes |
Создание, просмотр, удаление или сброс гипотетических индексов HypoPG |
find_unused_indexes |
Поиск неиспользуемых и дублирующихся индексов, которые можно безопасно удалить |
check_database_health |
Комплексная проверка работоспособности с оценкой (соединения, кэш, блокировки, репликация, wraparound, диск...) |
get_active_queries |
Мониторинг активных запросов, поиск долго выполняющихся транзакций и заблокированных запросов |
analyze_wait_events |
Анализ событий ожидания для выявления узких мест I/O, блокировок или CPU |
review_settings |
Обзор настроек PostgreSQL по категориям с рекомендациями по оптимизации |
Возможности
- Получение медленных запросов из pg_stat_statements с подробной статистикой
- Анализ планов выполнения запросов с помощью EXPLAIN и EXPLAIN ANALYZE
- Рекомендации по индексам на основе AI и анализа рабочей нагрузки запросов
- Тестирование гипотетических индексов с помощью расширения HypoPG (без использования диска)
- Поиск неиспользуемых и дублирующихся индексов для очистки
- Комплексная оценка работоспособности с множественными проверками
- Мониторинг использования соединений
- Анализ коэффициента попаданий в кэш (буферный и индексный)
- Обнаружение конкуренции за блокировки
- Мониторинг работоспособности вакуума и wraparound идентификаторов транзакций
Переменные окружения
Обязательные
DATABASE_URI- Строка подключения к PostgreSQL в формате postgresql://user:password@host:port/database
Примеры использования
Диагностировать медленные запросы в моей базе данных
Рекомендовать индексы для лучшей производительности
Выполнить комплексную проверку работоспособности базы данных
Оптимизировать этот конкретный SQL запрос
Найти неиспользуемые индексы, которые можно удалить
Ресурсы
Примечания
Требует PostgreSQL 12+ с расширением pg_stat_statements (обязательно). Расширение HypoPG опционально, но рекомендуется для тестирования гипотетических индексов. Поддерживает несколько режимов: stdio (по умолчанию для MCP клиентов), HTTP SSE (для legacy веб-приложений) и Streamable HTTP (современный MCP протокол). После включения pg_stat_statements требуется перезапуск сервера.