crystaldba/postgres-mcp

crystaldba/postgres-mcp

от crystaldba
Подбирает оптимальные индексы, объясняет планы запросов и проверяет здоровье PostgreSQL. Выполняет SQL в безопасном режиме только для чтения.
Postgres MCP Pro Logo

License: MIT PyPI - Version Discord Twitter Follow Contributors

A Postgres MCP server with index tuning, explain plans, health checks, and safe sql execution.

Overview

Postgres MCP Pro is an open source Model Context Protocol (MCP) server built to support you and your AI agents throughout the entire development process—from initial coding, through testing and deployment, and to production tuning and maintenance.

Postgres MCP Pro does much more than wrap a database connection.

Features include:

  • 🔍 Database Health - analyze index health, connection utilization, buffer cache, vacuum health, sequence limits, replication lag, and more.
  • ⚡ Index Tuning - explore thousands of possible indexes to find the best solution for your workload, using industrial-strength algorithms.
  • 📈 Query Plans - validate and optimize performance by reviewing EXPLAIN plans and simulating the impact of hypothetical indexes.
  • 🧠 Schema Intelligence - context-aware SQL generation based on detailed understanding of the database schema.
  • 🛡️ Safe SQL Execution - configurable access control, including support for read-only mode and safe SQL parsing, making it usable for both development and production.

Часто задаваемые вопросы

Инструменты были проиндексированы:
analyze_db_health

Анализирует состояние базы данных. Доступны следующие проверки состояния: - index - проверяет наличие недействительных, дублирующихся и раздутых индексов - connection - проверяет количество соединений и их загрузку - vacuum - проверяет состояние vacuum на предмет переполнения transaction id - sequence - проверяет последовательности, подверженные риску превышения максимального значения - replication - проверяет состояние репликации, включая отставание и слоты - buffer - проверяет коэффициенты попаданий в буферный кэш для индексов и таблиц - constraint - проверяет наличие недействительных ограничений - all - запускает все проверки При необходимости можно указать одну проверку состояния или список проверок через запятую. По умолчанию выполняются все проверки ('all').

Параметры
  • health_typestring

    Необязательный. Допустимые значения: all, buffer, connection, constraint, index, replication, sequence, vacuum.

analyze_query_indexes

Анализирует список (до 10) SQL-запросов и рекомендует оптимальные индексы.

Параметры
  • max_index_size_mbinteger

    Максимальный размер индекса в МБ

  • methodenum

    Метод, используемый для анализа

  • queriesstring[]обязательный

    Список строк запросов для анализа

analyze_workload_indexes

Анализирует часто выполняемые запросы в базе данных и рекомендует оптимальные индексы.

Параметры
  • max_index_size_mbinteger

    Максимальный размер индекса в МБ

  • methodenum

    Метод, используемый для анализа

execute_sql

Выполняет любой SQL-запрос

Параметры
  • sqlstring

    SQL для выполнения

explain_query

Поясняет план выполнения SQL-запроса: показывает, как база данных будет его выполнять, и выдаёт подробные оценки стоимости.

Параметры
  • analyzeboolean

    Если True, реально выполняет запрос, чтобы показать настоящую статистику выполнения вместо оценок. Занимает больше времени, но даёт более точную информацию.

  • hypothetical_indexesobject[]

    Список гипотетических индексов для симуляции. Каждый индекс должен быть словарём с такими ключами: - 'table': Имя таблицы, к которой добавляется индекс (например, 'users') - 'columns': Список имён столбцов, включаемых в индекс (например, ['email'] или ['last_name', 'first_name']) - 'using': Необязательный метод индекса (по умолчанию: 'btree', другие варианты: 'hash', 'gist' и т. д.) Примеры: [ {"table": "users", "columns": ["email"], "using": "btree"}, {"table": "orders", "columns": ["user_id", "created_at"]} ] Если гипотетических индексов нет, можно передать пустой список.

  • sqlstringобязательный

    SQL-запрос для объяснения

get_object_details

Показывает подробную информацию об объекте базы данных.

Параметры
  • object_namestringобязательный

    Имя объекта

  • object_typestring

    Тип объекта: 'table', 'view', 'sequence' или 'extension'

  • schema_namestringобязательный

    Имя схемы

get_top_queries

Показывает самые медленные или наиболее ресурсоёмкие запросы, используя данные из расширения 'pg_stat_statements'.

Параметры
  • limitinteger

    Количество запросов, возвращаемых при ранжировании по mean_time или total_time

  • sort_bystring

    Критерии ранжирования: 'total_time' для общего времени выполнения или 'mean_time' для среднего времени выполнения на один вызов, или 'resources' для ресурсоёмких запросов

list_objects

Выводит список объектов в схеме.

Параметры
  • object_typestring

    Тип объекта: 'table', 'view', 'sequence' или 'extension'

  • schema_namestringобязательный

    Имя схемы

list_schemas

Перечисляет все схемы в базе данных.

Параметры

Без параметров.

0.3.0основная
0.2.1
0.2.0
0.2.0rc1
0.1.1
0.1.1rc2
0.1.1rc1
0.1.0rc1
0.1.0

Выберите клиент, чтобы установить crystaldba/postgres-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "crystaldba-postgres-mcp-hwdhl3qokq": {
      "env": {
        "DATABASE_URI": "postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog"
      },
      "args": [
        "postgres-mcp",
        "--access-mode=unrestricted"
      ],
      "command": "uvx"
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "crystaldba-postgres-mcp-hwdhl3qokq": {
      "env": {
        "DATABASE_URI": "postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog"
      },
      "args": [
        "postgres-mcp",
        "--access-mode=unrestricted"
      ],
      "command": "uvx"
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "crystaldba-postgres-mcp-hwdhl3qokq": {
      "type": "stdio",
      "env": {
        "DATABASE_URI": "postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog"
      },
      "args": [
        "postgres-mcp",
        "--access-mode=unrestricted"
      ],
      "command": "uvx"
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"crystaldba-postgres-mcp-hwdhl3qokq\",\"type\":\"stdio\",\"env\":{\"DATABASE_URI\":\"postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog\"},\"args\":[\"postgres-mcp\",\"--access-mode=unrestricted\"],\"command\":\"uvx\"}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

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

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "crystaldba-postgres-mcp-hwdhl3qokq": {
      "env": {
        "DATABASE_URI": "postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog"
      },
      "args": [
        "postgres-mcp",
        "--access-mode=unrestricted"
      ],
      "command": "uvx"
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add crystaldba-postgres-mcp-hwdhl3qokq --env DATABASE_URI=postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog -- uvx postgres-mcp --access-mode=unrestricted

Либо через JSON-конфиг:

claude mcp add-json crystaldba-postgres-mcp-hwdhl3qokq "{\"env\":{\"DATABASE_URI\":\"postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog\"},\"args\":[\"postgres-mcp\",\"--access-mode=unrestricted\"],\"command\":\"uvx\"}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add crystaldba-postgres-mcp-hwdhl3qokq --env DATABASE_URI=postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog -- uvx postgres-mcp --access-mode=unrestricted

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.crystaldba-postgres-mcp-hwdhl3qokq]
command = "uvx"
args = ["postgres-mcp", "--access-mode=unrestricted"]

[mcp_servers.crystaldba-postgres-mcp-hwdhl3qokq.env]
DATABASE_URI = "postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите crystaldba/postgres-mcp, а в поле команды запуска — строку ниже:
uvx postgres-mcp --access-mode=unrestricted

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "crystaldba-postgres-mcp-hwdhl3qokq": {
      "env": {
        "DATABASE_URI": "postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog"
      },
      "args": [
        "postgres-mcp",
        "--access-mode=unrestricted"
      ],
      "command": "uvx"
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "crystaldba-postgres-mcp-hwdhl3qokq": {
      "env": {
        "DATABASE_URI": "postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog"
      },
      "args": [
        "postgres-mcp",
        "--access-mode=unrestricted"
      ],
      "command": "uvx",
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например crystaldba-postgres-mcp-hwdhl3qokq.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: crystaldba-postgres-mcp-hwdhl3qokq
    command: uvx
    args:
      - "postgres-mcp"
      - "--access-mode=unrestricted"
    env:
      DATABASE_URI: postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "crystaldba-postgres-mcp-hwdhl3qokq": {
      "env": {
        "DATABASE_URI": "postgresql://user:passwd1@mcpkatalog-postgres-doll-wkihva:5432/mcpkatalog"
      },
      "args": [
        "postgres-mcp",
        "--access-mode=unrestricted"
      ],
      "command": "uvx"
    }
  }
}

Похожие MCP-сервера

ofershap/mcp-server-sqlite

ofershap/mcp-server-sqlite

от ofershap

MCP сервер для безопасного выполнения SQL-запросов к SQLite через AI ассистента. Инспектирует схемы, таблицы, объясняет запросы. Безопасный режим только чтения, совместим с Cursor, Claude Desktop и...

TypeScript⭐ 4
bytebase/dbhub

bytebase/dbhub

от bytebase

DBHub выполняет SQL-запросы и ищет объекты схемы в PostgreSQL, MySQL, SQL Server и SQLite. Лёгкий, с read-only режимом.

TypeScript⭐ 3696
JaviMaligno/postgres_mcp

JaviMaligno/postgres_mcp

от javimaligno

MCP сервер для работы с PostgreSQL: выполняет SQL-запросы, исследует схемы, таблицы и индексы, помогает с производительностью через EXPLAIN. Работает read-only по умолчанию — безопасность на первом месте. Подходит для Claude Desktop, Cursor и других MCP-клиентов.

Python⭐ 12
wenb1n-dev/mysql_mcp_server_pro

wenb1n-dev/mysql_mcp_server_pro

от wenb1n-dev

mcp_mysql_server_pro — это MCP-сервер для работы с MySQL: выполняет SQL-запросы, анализирует аномалии и здоровье базы, проверяет блокировки и предлагает оптимизацию. Поддерживает OAuth2.0, три роли...

Python⭐ 250
Couchbase-Ecosystem/mcp-server-couchbase

Couchbase-Ecosystem/mcp-server-couchbase

официальный

от couchbase-ecosystem

MCP-сервер для Couchbase, который даёт языковым моделям прямой доступ к кластерам: выполнять SQL++ запросы, управлять документами, проверять здоровье и производительность. Полезен разработчикам, интегрирующим ИИ-агенты с Couchbase.

Python⭐ 34
ClickHouse/mcp-clickhouse

ClickHouse/mcp-clickhouse

официальный

от clickhouse

Выполняет SQL-запросы к ClickHouse: перечисляет базы, таблицы, читает данные в режиме read-only. chDB позволяет запрашивать файлы и URL без отдельного сервера.

Python⭐ 890
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин