Postgres Mcp

io.github.sparta2025由 GitHub 帳號 sparta2025 發布v0.4.2更新於 Oct 24, 2026

PostgreSQL MCP server with 15 tools (SQL, EXPLAIN, health, indexes) plus a Gradio UI with LLM chat.

概覽

AI 產生的概覽

針對 PostgreSQL 的在地 MCP 伺服器,讓助理檢視結構、執行 SQL、讀取 EXPLAIN 計畫、檢查資料庫健康並取得索引建議。

可以做什麼
列出結構、資料表、檢視表和物件細節,讀取資料庫版本、大小、擴充功能和運作時間。執行 SQL 並格式化查詢,提供 EXPLAIN 計畫和假設索引模擬。檢查資料庫健康、作用中查詢、鎖定、資料表與索引大小以及最慢查詢。分析索引使用情形並提出索引建議。管理 Fernet 加密憑證並列出伺服器自身的工具。
適用情境
適合需要讓助理直接操作 PostgreSQL 資料庫的情境:探索結構、診斷慢查詢、檢查健康狀態與鎖定,或在變更前測試索引方案。
執行需求
以 stdio 在本機執行(也支援 SSE)。需要可存取的 PostgreSQL 資料庫,並透過環境變數 DATABASE_URL 提供連線 URL;README 範例中使用的是 DATABASE_URI。可透過 pipx、uv(Python 3.12+)或 Docker 安裝。選用的 pg_stat_statements 和 hypopg 擴充功能用於查詢與索引分析。
安裝前請注意
連線 URL 含資料庫憑證,以環境變數形式傳入。README 說明獨立伺服器總是執行傳入的 SQL,唯讀存取模式僅適用於舊版伺服器,因此應在資料庫使用者端限制權限。執行 SQL 可能修改或刪除資料。選用的 LLM 最佳化功能使用 OpenAI API 金鑰。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Postgres Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

📘 Postgres MCP Pro — сервер MCP для PostgreSQL

[Postgres MCP Pro Logo]

[Лицензия: MIT] [Версия PyPI] [Discord] [Twitter Follow] [Contributors]


🔎 Обзор

Postgres MCP Pro — это open-source сервер Model Context Protocol (MCP), предназначенный для помощи разработчикам и AI-агентам на всех этапах разработки: от начального кода и тестирования до деплоя и продакшн-оптимизации.

🙌 Основано на crystaldba/postgres-mcp (MIT, © 2025 Crystal Corp / Johann Schleier-Smith). Форк развивается и поддерживается sparta2025 — автономный MCP-сервер, Gradio-оболочка, LLM-чат с tool-calling, сертификаты шифрования.

📚 Полная документация: docs/DOCUMENTATION.md — развёртывание (Docker/облако), Gradio-оболочка, подключение клиентов (stdio/SSE), все инструменты и переменные окружения.

Отличается от простого подключения к базе данных следующими возможностями:

  • Анализ состояния БД: индекс, буферный кэш, autovacuum, последовательности, репликация и др.
  • Оптимизация индексов: автоматический подбор лучших индексов с помощью промышленных алгоритмов.
  • Планы выполнения: EXPLAIN и симуляция с гипотетическими индексами.
  • Интеллект схемы: генерация SQL с учётом структуры базы.
  • Безопасное выполнение SQL: поддержка режима только для чтения и защита в продакшне.

Поддерживает транспорты: stdio и SSE.

Запуск проекта и причины его создания


📺 Демонстрация

От медленного к молниеносному AI сгенерировал приложение на SQLAlchemy ORM — но оно было слишком медленным. Postgres MCP Pro с Cursor решил проблему за считанные минуты.

  • 🚀 Оптимизация ORM-запросов, индексации и кэширования
  • 🛠️ Исправление сломанной страницы
  • 🧠 Улучшение вывода "топ-фильмов" путём анализа данных и корректировки запросов

👉 Подробнее: movie-app.md


⚡ Быстрый старт

Требования:

  1. Доступ к вашей базе данных PostgreSQL
  2. Docker или Python 3.12+
Удостоверьтесь в доступе:

Пример — подключение через psql или pgAdmin

💡 Для запуска через docker compose заранее создайте пустые файлы хранилищ подключений (иначе Docker смонтирует каталоги вместо файлов):

bash
touch connections.json llm_connections.json

Установка

🐳 Docker
bash
docker pull crystaldba/postgres-mcp
🐍 Python (через pipx)
bash
pipx install postgres-mcp-pro

или через uv:

bash
uv pip install postgres-mcp-pro

Консольная команда после установки — postgres-mcp (автономный MCP-сервер, stdio по умолчанию; --transport sse для SSE).


⚙️ Настройка AI-ассистента (на примере Claude Desktop)

Откройте конфигурационный файл:

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json

Пример конфигурации:

Через Docker
json
{  "mcpServers": {    "postgres": {      "command": "docker",      "args": [        "run", "-i", "--rm", "-e", "DATABASE_URI",        "crystaldba/postgres-mcp", "--access-mode=unrestricted"      ],      "env": {        "DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"      }    }  }}
Через pipx
json
{  "mcpServers": {    "postgres": {      "command": "postgres-mcp",      "args": ["--access-mode=unrestricted"],      "env": {        "DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"      }    }  }}
Через uv
json
{  "mcpServers": {    "postgres": {      "command": "uv",      "args": [        "run", "postgres-mcp", "--access-mode=unrestricted"      ],      "env": {        "DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"      }    }  }}
Режимы доступа:
  • --access-mode=unrestricted: полный доступ (dev)
  • --access-mode=restricted: только чтение (prod)

⚠️ Флаг --access-mode поддерживает только легаси-сервер (python -m postgres_mcp.server). Автономный MCP-сервер (postgres_mcp.autonomous.mcp_server) всегда выполняет переданный SQL; разграничение делайте на стороне пользователя БД.


🔄 SSE Transport

Чтобы использовать SSE:

bash
docker run -p 8000:8000 \  -e DATABASE_URI=postgresql://username:password@localhost:5432/dbname \  crystaldba/postgres-mcp --access-mode=unrestricted --transport=sse

Пример для Cursor:

json
{  "mcpServers": {    "postgres": {      "type": "sse",      "url": "http://localhost:8000/sse"    }  }}

🧩 Установка расширений (опционально)

Нужно для:

  • pg_stat_statements — для анализа запросов
  • hypopg — симуляция индексов
sql
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;CREATE EXTENSION IF NOT EXISTS hypopg;

🧪 Примеры использования

  • Проверка БД: "Check the health of my database..."
  • Медленные запросы: "What are the slowest queries..."
  • Рекомендации: "How can I make it faster?"
  • Индексы: "Suggest indexes to improve performance"
  • Оптимизация запроса: "Help me optimize this query: SELECT ..."

📡 MCP API (интерфейс)

Автономный сервер (postgres_mcp.autonomous.mcp_server) предоставляет 15 MCP tools:

ToolНазначение
list_schemasСписок схем БД
list_objectsСписок таблиц, представлений и т.п.
get_object_detailsПодробности по объекту
execute_sqlВыполнение SQL
explain_queryEXPLAIN план запроса
analyze_db_healthЗдоровье БД по множеству метрик
get_top_queriesСамые медленные запросы (pg_stat_statements)
analyze_index_performanceАнализ использования индексов
get_active_queriesВыполняющиеся запросы
get_table_sizesРазмеры таблиц/индексов
get_database_locksТекущие блокировки
format_sql_queryФорматирование SQL (sqlparse)
get_database_infoВерсия, размер БД, расширения, uptime
manage_encryption_keyУправление Fernet-сертификатами
list_toolsСписок всех инструментов сервера

📌 Отличия от других MCP-серверов

Postgres MCP ProДругие MCP-серверы
✅ Проверки здоровья с гарантией❌ Генерация LLM
✅ Оптимизация индексов алгоритмом❌ Гипотетические советы
✅ Симуляции EXPLAIN❌ "Попробуй сам"
✅ Детальный workload-анализ❌ Нет анализа запросов

🧠 Почему нужны инструменты MCP?

LLM отлично справляется с генерацией SQL, но медленно, дорого и непредсказуемо. Оптимизация БД давно решается алгоритмами. MCP Pro сочетает лучшее от LLM и классических алгоритмов.


🛠️ Технические заметки (ключевые моменты)

  • Индексы: использование pg_stat_statements, генерация кандидатов, анализ через hypopg
  • LLM-оптимизация: экспериментальная, с использованием OpenAI API (OPENAI_API_KEY)
  • Здоровье БД: адаптация проверок из PgHero
  • Библиотека подключения: psycopg3 с libpq
  • Безопасность SQL: чтение, защита от ROLLBACK; DROP ...
  • Интеграция со схемой: передаёт схему агенту через инструменты, а не ресурсы
  • Конфигурация соединений: через переменные среды
  • Dev-сборка: uv, pip, запуск с локальной БД

來源:README.md,提交 1b135ec

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.4.2最新Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。