Skip to main content
Glama
gwdmnn

db-mcp-server

by gwdmnn

db-mcp-server

Локальный MCP-сервер, который предоставляет ИИ-ассистенту для программирования (например, Claude Code) изолированный по учётным данным доступ к вашим базам данных PostgreSQL. Ассистент отправляет только SQL и получает только строки — имена пользователей баз данных, пароли и SSH-ключи никогда не попадают в контекст модели или в транскрипт разговора.

Зачем

Подключение ИИ-ассистента к базе данных обычно означает размещение строк подключения и паролей там, где модель (и её транскрипт) может их прочитать. Этот сервер сохраняет эту границу: он владеет зашифрованными учётными данными и SSH-туннелями, предоставляет небольшой набор инструментов только для SQL и по умолчанию работает в режиме только для чтения.

Related MCP server: Postgres Scout MCP

Как это работает

  • Каталог (registry.yaml) — маршрутизация без секретов. Организован как customers → environments → services; каждая служба сопоставляется с именем базы данных и secret_ref (указателем в хранилище — никогда не учётными данными).

  • Хранилище (vault.enc) — AES-256-GCM с ключом, полученным через scrypt. Содержит учётные данные БД, расшифровываемые в память один раз при запуске с помощью парольной фразы.

  • Пул туннелей — один SSH-туннель на (customer, environment) через sshtunnel, привязанный к эфемерному порту 127.0.0.1.

  • Исполнительpsycopg. run_query выполняется в транзакции Postgres READ ONLY (движок отклоняет любую запись); run_write_query требует confirm=true.

Установка

python -m venv .venv
# Windows PowerShell: .venv\Scripts\Activate.ps1   (bash: source .venv/Scripts/activate)
pip install -e ".[dev]"

Конфигурация

Конфигурация задаётся через переменные окружения; значения по умолчанию разрешаются относительно корня проекта.

Variable

Purpose

Default

DB_MCP_PASSPHRASE

Парольная фраза хранилища (требуется для запуска сервера)

DB_MCP_REGISTRY

Путь к registry.yaml

./registry.yaml

DB_MCP_VAULT

Путь к vault.enc

./vault.enc

DB_MCP_KEYS_DIR

Каталог с SSH PEM-ключами

./keys

DB_MCP_BOOTSTRAP

Путь к bootstrap.yaml

./bootstrap.yaml

Подготовка (первоначальная настройка)

  1. Скопируйте шаблон и заполните реальными значениями:

cp bootstrap.example.yaml bootstrap.yaml
  1. Поместите ваши SSH-приватные ключи в keys/ (имена файлов должны совпадать с полями pem_key в каталоге).

  2. Сгенерируйте несекретный каталог и зашифрованное хранилище (запросит парольную фразу, которую вы будете использовать для запуска сервера):

python -m db_mcp_server.bootstrap --dry-run   # preview, writes nothing
python -m db_mcp_server.bootstrap             # writes registry.yaml + vault.enc
python -m db_mcp_server.vault_admin verify     # expect {"ok": true}

bootstrap.yaml содержит учётные данные в открытом виде — он игнорируется git; удалите его или храните офлайн после создания хранилища.

Инструменты командной строки

Команда

Назначение

db-mcp-server

MCP-сервер (stdio). Запускается MCP-клиентом, а не вручную.

db-vault

Управление учётными данными в хранилище: set / rm / list / verify.

db-bootstrap

Разделяет bootstrap.yaml на registry.yaml + vault.enc.

(Консольные команды доступны после pip install -e .; форма python -m db_mcp_server.<module> работает всегда.)

Инструменты, доступные ассистенту

  • list_databases() — каталог (customers → environments → services); без секретов.

  • run_query(customer, environment, service, sql, max_rows?) — только чтение.

  • run_write_query(customer, environment, service, sql, confirm) — запись с подтверждением.

Ошибки предметной области возвращаются в виде структурированного {error_code, message}, а не исключения, чтобы ассистент мог на них реагировать.

Регистрация в MCP-клиенте

Пример .mcp.json (скорректируйте пути). Используйте ${DB_MCP_PASSPHRASE}, чтобы парольная фраза читалась из оболочки, а не была записана в файл:

{
  "mcpServers": {
    "db": {
      "command": "/absolute/path/to/db-mcp-server/.venv/Scripts/python.exe",
      "args": ["-m", "db_mcp_server.server"],
      "env": {
        "DB_MCP_PASSPHRASE": "${DB_MCP_PASSPHRASE}"
      }
    }
  }
}

Замечания по безопасности

  • vault.enc, keys/, bootstrap.yaml, *.env и *.pem игнорируются git — никогда не коммитьте их.

  • Парольная фраза хранилища передаётся через DB_MCP_PASSPHRASE (или запрос) — никогда не хранится в registry.yaml, argv или журналах.

  • db-vault читает пароль БД через скрытый запрос (getpass), никогда через argv.

  • run_query доступен только для чтения на уровне движка Postgres; записи требуют confirm=true.

Тесты

pip install -e ".[dev]" && python -m pytest -q

Интеграционный тест БД пропускается, если DB_MCP_TEST_DSN не указывает на доступный PostgreSQL.

Дорожная карта (не в этой сборке)

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

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to interact with PostgreSQL databases using natural language queries, providing secure read-only access to database schemas and SQL translation capabilities.
    6
    7
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to safely explore, analyze, and maintain PostgreSQL databases with read-only mode by default, SQL injection prevention, query performance analysis, and optional write operations.
    90
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with PostgreSQL databases through MCP, supporting multi-database and schema access with security controls like read-only mode and SQL auditing.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to query SQL databases safely with read-only access, allowing schema discovery and SELECT queries while blocking writes and DDL operations.

View all related MCP servers

Related MCP Connectors

  • Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.

  • Generate realistic, FK-consistent synthetic test data for your databases from your AI assistant.

  • Comprehensive PostgreSQL documentation and best practices, including ecosystem tools

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gwdmnn/keyward-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server