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 分

    请在仓库或注册中心条目中声明许可证。