Skip to main content
Glama

brokre — безопасный брокер учётных данных для ИИ

English | 简体中文

brokre — это локальный брокер учётных данных для ИИ-агентов и людей. Используйте его с Cursor, Claude Code, Kimi Code, Trae, OpenClaw, Hermes Agent, ChatClaw и другими MCP-совместимыми клиентами для запуска ssh, mysql, psql и других команд — пароли никогда не попадают в контекст ИИ, переменные окружения или вывод ps. Он оборачивает любой CLI из вашего PATH — не только SSH или MySQL — и вводит сохранённые пароли в приглашение без раскрытия открытого текста процессу ИИ, истории оболочки или окружению процесса.

Разработано компанией Techinone (成都同创合一科技有限公司).

Что нового в 0.2.17

0.2.17 — текущий релиз: SessionRelay-маршрутизация SSH по умолчанию, многохоповые маршруты через бастион, локальный список по умолчанию и существующий однокомандный npm install / автоматическая регистрация MCP / автоматическое обновление бинарника.

npm — установка, автообновление, автоматическая настройка MCP

npm install -g brokre          # or: npx -y brokre@latest

Возможность

Что происходит

Автоматическая регистрация MCP

postinstall запускает brokre-setup-mcp — обнаруживает только установленные IDE и добавляет npx -y brokre@latest в каждый глобальный конфиг MCP. Повторный запуск: brokre mcp setup или npx brokre-setup-mcp. Пропуск: BROKRE_MCP_SKIP_SETUP=1.

Автоматическое обновление бинарника

При каждом запуске MCP сравнивает версию npm-пакета с PATH / ~/.brokre/bin/brokre; загружает соответствующий GitHub Release, если он отсутствует или устарел.

CLI без npm

brokre version / brokre upgrade для пользователей install.sh; brokre mcp setup для регистрации MCP после установки IDE.

Поддерживаемые IDE

Cursor, VS Code, VS Code Insiders, Claude Code, Claude Desktop, Trae, Kimi Code, Windsurf, OpenClaw — см. packages/brokre-mcp/README.md.

Рекомендуемая конфигурация MCP (также применяется автоматической настройкой):

{ "command": "npx", "args": ["-y", "brokre@latest"] }

Бастион-брокер — управление кластером

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

Преимущество

Что это значит на практике

Единая панель управления

Зарегистрируйте SSH-алиас бастиона (b150), синхронизируйте внутренние алиасы с удалённого brokre и управляйте всем кластером через brokre list / MCP brokre_list

Умная маршрутизация

b150::db, b150::app-01, многохоповый b1::b2::inner — разделитель маршрута ::; маршрутизированный SSH использует SessionRelay по умолчанию

Секреты остаются на бастионе

Маршрутизированный exec запускает ~/.brokre/bin/brokre на шлюзе; ноутбук хранит метаданные и шлюз сессии, а не пароли внутренних хостов

Человеческий шлюз, дружелюбный к агентам

Исходящие соединения через бастион требуют разблокировки (TTY, /bastion-auth или запрос URL через MCP); аутентификация шлюза переживает истечение тайм-аута бездействия manage UI, так что длительные MCP-запуски продолжают работать

Безопасные по умолчанию настройки для кластера

Локальный список по умолчанию; явное обнаружение бастиона; проверки доступности с тайм-аутами в мс и ограничением параллелизма; обнаружение циклов и аудит полей route/bastion

Привилегированные операции через маршруты

brokre_exec_elevated и пути sudo/sudo -i работают через бастионы с повторным использованием сессий и усилением PTY

Типичный сценарий для кластера K8s / БД / пакетной обработки за одним входным хостом:

brokre bastion enable b150
brokre bastion sync b150 --json          # pull inner alias catalog
brokre bastion unlock
brokre list --include-bastions --json    # b150::db, b150::worker-01, …
brokre ssh b150::db systemctl status   # MCP: brokre_exec with routed alias

Эквивалент MCP:

{ "binary": "ssh", "args": ["b150::db", "uname", "-a"] }

Политика шлюза (по умолчанию vs строгая) — см. Политика шлюза бастиона ниже. Шлюз неактивен до brokre bastion set-key; затем по умолчанию разблокирует только исходящие пути бастиона; строгая требует разблокировки для каждого exec, при этом список остаётся локальным, если не запрошено обнаружение бастиона.

См. Наследование списка между сетями и Прокси-бастион ниже для деталей настройки.

Related MCP server: SSH Vault MCP

Безопасность CLI (ядро)

brokre построен вокруг одного правила: секреты остаются вне досягаемости ИИ и вне наблюдаемого состояния процессов.

Уровень

Что делает brokre

Нет утечек через env / ps

Ввод основан на приглашении PTY — пароли никогда не передаются через -p, SSHPASS, MYSQL_PWD или экспортированные переменные окружения

Родительский процесс никогда не хранит открытый текст (Unix)

Сохранённые пароли расшифровываются в недолговечном дочернем процессе brokre --internal-injector, записываются один раз в PTY, затем процесс завершается

ИИ не может выполнить reveal

brokre reveal требует реальный TTY + мастер-пароль; недоступен в веб-интерфейсе и не предоставляется через MCP

Хранилище в состоянии покоя

Пополевое шифрование AES-256-GCM; DEK обёрнут с помощью системной связки ключей (Linux) или ~/.brokre/.master_kek (macOS) + опциональная парольная фраза для reveal на основе Argon2id

Аудит

HMAC-цепочка JSONL в ~/.brokre/audit/audit.log; brokre audit list запрашивает историю (только метаданные); brokre audit verify обнаруживает подделку

Граница MCP

MCP предоставляет метаданные (brokre_list), exec (brokre_exec, brokre_exec_elevated), brokre_setup и аудит только для чтения (brokre_audit_list, brokre_audit_verify) — никаких паролей, токенов сессий или reveal

Управляющий интерфейс

Привязывается только к 127.0.0.1; пароли только для записи; вкладка журнала аудита для истории; токен сессии выводится в ваш терминал и никогда не возвращается ИИ

Усиление ОС

Отключены дампы ядра, проверки ptrace (Linux), опциональный mlockall — см. docs/HARDENING.md

Полная модель угроз: SECURITY.md, THREAT_MODEL.md.

Любой CLI из PATH (универсальность по дизайну)

brokre — это не фиксированный набор обёрток для баз данных/SSH. Основная модель:

brokre <any-cli-on-PATH> [args...]

Первое подключение: запустите команду как есть, перехватите пароль, введённый в приглашении, и предложите сохранить его как алиас.
В следующий раз: brokre <cli> <alias> … автоматически вводит пароль — ИИ и скрипты видят только имя алиаса.

Предустановленные шаблоны приглашений поставляются для распространённых инструментов (ssh, mysql, psql, redis-cli, ftp, clickhouse, git, docker, kubectl, sudo, …). Всё остальное использует универсальный сопоставитель password: / passphrase: — изменения кода не требуются.

brokre gsql prod-cluster -c "SELECT 1"    # any proprietary CLI on PATH
brokre kubectl get pods                   # if your cluster CLI prompts for a password
brokre my-internal-tool --host db.internal

Настройте при необходимости:

  • ~/.brokre/prompts.toml — переопределения регулярных выражений приглашений для конкретных бинарников

  • ~/.brokre/manage.toml — пользовательские разделы в управляющем интерфейсе (например, GaussDB, внутренние инструменты)

Встроенные вкладки управляющего интерфейса (когда бинарник установлен) включают SSH, FTP, MySQL, PostgreSQL, Redis, ClickHouse, MinIO — это только для удобства; PTY-обёртка работает с любым CLI.

Установка (сначала MCP — рекомендуется для ИИ)

npm-пакет brokre запускает локальный сервер brokre mcp через stdio для Cursor, Claude Code, Kimi Code, Trae, OpenClaw, Windsurf, VS Code и других MCP-клиентов.

Выберите способ установки

Способ

Для кого лучше

Установка

MCP в IDE

Обновление CLI

npm (рекомендуется)

Пользователи ИИ; нужна одна команда

npm install -g brokre

Автоматически при установке (postinstall)

npm + автоматическая загрузка при каждом запуске MCP

install.sh / Homebrew

Продакшн; без Node для повседневного использования

curl … | bash или brew install brokre

Запустите brokre mcp setup после установки IDE

brokre version / brokre upgrade

Ручной MCP JSON

Только для нестандартных конфигураций

CLI или npm уже установлены

Отредактируйте конфиг IDE вручную

Зависит от способа установки CLI

Рекомендуемая запись MCP (также то, что записывает автоматическая настройка):

{ "command": "npx", "args": ["-y", "brokre@latest"] }

Без Node — укажите MCP на нативный бинарник: { "command": "brokre", "args": ["mcp"] }.

Путь A — npm одной командой (0.2.8+)

npm install -g brokre
# or without global install:
npx -y brokre@latest

При npm install автоматически происходят три вещи:

  1. Запуск MCPbrokre-mcp / npx -y brokre@latest запускает brokre mcp.

  2. Автоматическая регистрация IDEpostinstall запускает brokre-setup-mcp: обнаруживает только установленные IDE (приложение, CLI или реальные артефакты использования — не пустые папки) и добавляет указанную выше запись MCP в каждый глобальный конфиг. Идемпотентно; сохраняет ваши другие MCP-серверы.

  3. Автоматическое обновление бинарника — при каждом запуске MCP, если PATH или ~/.brokre/bin/brokre старше npm-пакета, загружается соответствующий GitHub Release.

IDE, охватываемые автоматической настройкой

IDE

Глобальный конфиг

Cursor

~/.cursor/mcp.json

VS Code / Insiders

…/Code/User/mcp.json

Claude Code

~/.claude.json

Claude Desktop

…/Claude/claude_desktop_config.json

Trae

…/Trae/User/mcp.json

Kimi Code

~/.kimi-code/mcp.json

Windsurf

~/.codeium/windsurf/mcp_config.json

OpenClaw

~/.openclaw/openclaw.json (mcp.servers)

Повторный запуск регистрации (например, вы установили brokre до Cursor, а затем установили Cursor позже):

brokre mcp setup              # via CLI — same logic as postinstall
npx brokre-setup-mcp          # via npm
brokre mcp setup --dry-run    # preview only
brokre mcp setup --force      # overwrite existing brokre entry

Пропустить автоматическую регистрацию при npm install: BROKRE_MCP_SKIP_SETUP=1. Отключить автоматическую загрузку бинарника: BROKRE_SKIP_AUTO_INSTALL=1. Зафиксировать бинарник: BROKRE_BIN=/path/to/brokre.

Требуется Node.js 18+ для пути через npm.

Путь B — Нативный CLI (install.sh / Homebrew, без npm)

curl -fsSL https://raw.githubusercontent.com/Furowu/brokre/main/install.sh | bash
brew tap Furowu/brokre
brew install brokre

Версия и обновление (встроено в CLI — npm не требуется):

brokre version                # version, binary path, install type
brokre version --check        # compare with latest GitHub release
brokre version --check --json
brokre upgrade                # download latest release (curl + tar)
brokre upgrade --check        # exit 1 if an update is available
brokre upgrade 0.2.10         # install a specific version
brokre upgrade --force        # reinstall even when up to date

Повторный запуск install.sh также обновляет, если существует более новая версия.

Регистрация MCP после установки CLI (требуется Node для скрипта установки или запасной вариант npx):

brokre mcp setup

Ручная настройка для каждой IDE (необязательно)

Используйте это только в том случае, если вы пропустили автоматическую настройку или вам нужна конфигурация в рамках проекта.

Cursorустановка в один клик, или ~/.cursor/mcp.json:

{
  "mcpServers": {
    "brokre": { "command": "npx", "args": ["-y", "brokre@latest"] }
  }
}

Claude Code — пользовательская область в ~/.claude.json или claude mcp add --scope user brokre -- npx -y brokre@latest. Область проекта: .mcp.json с "type": "stdio".

Дополнительные клиенты и переменные окружения: packages/brokre-mcp/README.md. MCP Registry ID: io.github.Furowu/brokre.

Инструменты MCP и их использование

MCP tool

Purpose

brokre_list

Сохранённые локальные алиасы по умолчанию; установите include_bastions=true, чтобы обнаружить маршрутизированные алиасы (b150::db), что может потребовать разблокировки бастиона; включает access/availability/bastion_gate

brokre_exec

Запуск любого сохранённого CLI-алиаса (binary + args); ssh поддерживает shell_command для удалённых скриптов; ssh + sudo/su автоматически переиспользует повышенную сессию

brokre_exec_elevated

Удалённая привилегированная команда (alias, command, mode); по умолчанию session=reuse (10 мин простоя)

brokre_setup

Открыть управляющий интерфейс в браузере, чтобы человек добавил учётные данные

brokre_audit_list

Запрос истории аудита (только метаданные — аргументы скрыты)

brokre_audit_verify

Проверка цепочки журнала аудита с защитой от подделки

brokre_bastion_policy

Чтение или установка режима шлюза бастиона (default / strict); возвращает key_set, unlocked

MCP против CLI (важно для AI-агентов)

brokre не является заменой ssh / mysql — вы должны добавлять префикс brokre для инъекции в хранилище.

Task

MCP (in IDE)

CLI (terminal / debugging)

Список алиасов

brokre_list

brokre list --json

SSH удалённая команда

brokre_exec binary=ssh, args=["prod","uname","-a"]

brokre ssh prod uname -a

Любой CLI

brokre_exec binary=mysql, args=["prod-db","-e","SHOW TABLES"]

brokre mysql prod-db -e "SHOW TABLES"

Запись удалённого скрипта

shell_command="…" (только ssh)

brokre ssh prod sh -c '…' (весь скрипт как один аргумент -c)

Привилегированное выполнение

brokre_exec_elevated command="…"

brokre ssh prod sudo … (MCP имеет пул сессий; CLI использует новый PTY каждый раз)

Добавление учётных данных

brokre_setup (открывает браузер)

brokre manage --open

Первое сохранение

недоступно (требуется TTY человека)

brokre ssh user@10.0.0.1

Частые ошибки (AI-агенты)

Неправильно

Правильно

ssh prod uptime

brokre ssh prod uptime

MCP args=["prod","uname -a"] (одна строка оболочки)

args=["prod","uname","-a"] (токены argv)

MCP args=["prod","sh -c 'echo hi'"]

shell_command="echo hi" или args=["prod","sh","-c","echo hi"]

голый mysql -h … -p

brokre mysql <saved-alias> …

Для удалённого SSH: токены после алиаса — это срезы argv, а не одна команда оболочки. Используйте раздельные токены для простых команд; используйте shell_command для сложных скриптов.

Повышенные сессии MCP (sudo / su, Unix)

По умолчанию brokre mcp переиспользует фоновую повышенную оболочку для каждого (alias, mode, user), чтобы пароли sudo не запрашивались повторно при каждом вызове.

brokre_exec_elevated (предпочтительно для повышения привилегий):

{
  "alias": "prod",
  "command": "systemctl status nginx",
  "mode": "sudo_login",
  "session": "reuse"
}

Field

Description

mode

sudo, sudo_login (или sudo-i), su

session

reuse (по умолчанию), new (закрыть старую сессию и открыть новую), close (завершить сессию; передайте command: "")

user

только для режима su; по умолчанию root

Когда пул сессий включён, ответы включают session_reused и session_idle_expires_at в дополнение к exit_code / stdout / stderr. session_idle_expires_at — это скользящая подсказка окна простоя, обновляемая при каждом вызове, а не фиксированная метка времени истечения. stderr обычно пуст на пути пула. stdout — это только вывод удалённой команды — эхо TTY, обрамление __BROKRE_* и приглашения оболочки удаляются.

brokre_exec: binary=ssh с sudo/su в args автоматически использует тот же пул (всегда reuse; нет session=new|close). Пример: args=["prod","sudo","whoami"].

Запись удалённых скриптов/файлов (shell_command, только binary=ssh): передавайте только алиас в args; поместите полный скрипт оболочки в shell_command (brokre нормализует до sh -c). Не встраивайте sh -c '...' в args и не разбивайте printf/перенаправления по токенам argv. Для привилегированных системных путей используйте brokre_exec_elevated.command.

{
  "binary": "ssh",
  "args": ["prod"],
  "shell_command": "cat > /tmp/deploy.sh <<'EOF'\n#!/bin/sh\necho ok\nEOF"
}

Маршруты бастиона работают так же: args=["b150::db"] с shell_command в качестве удалённого скрипта.

Туннель SessionRelay (по умолчанию)

brokre ssh b150::db по умолчанию использует путь SessionRelay: ноутбук запускает brokre tunnel agent --stdio на b150 через SSH, а агент выполняет brokre ssh db на бастионе. Многохоповые маршруты снимают по одному хопу на агента (b1::b2::db начинается на b1, затем b1 продолжает с b2::db). Внутренние учётные данные остаются в хранилище бастиона; ноутбук только ретранслирует байты терминала. BROKRE_TUNNEL=0 — временный запасной механизм для аварийного отката.

brokre tunnel doctor b150
brokre ssh b150::db uname -a

Ответы MCP brokre_exec для маршрутизированного SSH включают tunnel: { mode, active }. TcpForward, синхронизация конечных точек, элементы управления туннелем в Manage UI и постоянный tunneld — это более поздние фазы.

Control

Default

Завершение по простою

10 минут

Максимальное время жизни

30 минут

Тайм-аут на команду

120 секунд

Variable

Default

Meaning

BROKRE_MCP_SESSION

1

0 отключает пул; возврат к одноразовому выполнению подпроцесса

BROKRE_MCP_SESSION_IDLE_SECS

600

Тайм-аут простоя (секунды)

BROKRE_MCP_SESSION_MAX_SECS

1800

Максимальное время жизни сессии (секунды)

BROKRE_MCP_SESSION_CMD_TIMEOUT

120

Тайм-аут удалённой команды (секунды)

Не поддерживается: интерактивный sudo -i без команды, vim/top или пароли sudo, отличные от поля password в хранилище. См. THREAT_MODEL.md T12.

При первом подключении с пустым хранилищем brokre открывает manage в вашем браузере (http://127.0.0.1:56777/?t=…). Токены сессии остаются на localhost — никогда не возвращаются AI. Установите BROKRE_MCP_NO_AUTO_OPEN=1, чтобы отключить автоматическое открытие.

| Инструмент MCP | Назначение |

Добавление учётных данных

После установки CLI менеджер открывается при первом запуске (brokre manage --onboard --open). Или в любое время:

brokre manage --open

Или сохраните при первом интерактивном подключении (любой CLI):

brokre ssh root@10.0.0.1
brokre my-tool --host internal.corp

Использование (безопасно для AI)

brokre mysql prod-db -e "SHOW TABLES"
brokre ssh prod-bastion uname -a
brokre <your-cli> <alias> [args...]

Список метаданных (безопасно для AI / скриптов)

brokre list --json              # local aliases with reachability status (default probe)
brokre list --no-probe --json   # metadata only, skip TCP/SSH probes
brokre list --reachable-only    # hide unavailable aliases
brokre list --all --json        # compat: show all (same as default unless --reachable-only)
brokre list --no-bastion-discovery   # local only — no bastion SSH discovery

Когда бастионы зарегистрированы, brokre list по умолчанию остаётся только локальным и не выполняет SSH к бастионам и не запускает разблокировку бастиона. Используйте brokre list --include-bastions (MCP: include_bastions=true), когда вам действительно нужны маршрутизированные алиасы, такие как b150::db; это удалённое обнаружение может потребовать разблокировки.

Сессии OpenSSH по умолчанию внедряют ConnectTimeout=5 (BROKRE_SSH_CONNECT_TIMEOUT). Переопределите с помощью -o ConnectTimeout=N или переменной окружения. RPC бастиона (brokre list --include-bastions / удалённый список) истекает через 60 секунд (BROKRE_BASTION_RPC_TIMEOUT). Удалённые команды используют ControlPath=none, поэтому они не подключаются к мастеру ControlPersist mux.

Наследование списка между сетями (брокер бастиона)

Для кросс-сетевого доступа — поездки, VPN, публичные точки входа — когда прямые LAN-алиасы недоступны локально, но доступны через бастион, на котором работает brokre.

Предварительные требования

  1. Ноутбук: brokre bastion enable b150 (b150 — сохранённый SSH-алиас)

  2. Хост бастиона запускает brokre по пути ~/.brokre/bin/brokre (стандартная установка / путь npx) с сохранёнными внутренними алиасами (например, db)

Маршрутизированный список

brokre bastion unlock            # if bastion key is set
brokre list --include-bastions   # includes b150::db (route=b150, access=via_b150)

При кросс-сетевом доступе используйте --include-bastions, когда вам нужны маршрутизированные алиасы. Обычный brokre list остаётся только локальным и не разблокирует и не выполняет SSH к бастионам.

Выполнение

brokre ssh b150::db uname -a
# MCP: brokre_exec binary=ssh, args=["b150::db", "uname", "-a"]

Когда оба пути работают, список показывает оба db (direct) и b150::db (via_b150) — различайте по access.

Прокси бастиона (кросс-сеть / вход в интранет)

Превратите любой сохранённый SSH-алиас, чей удалённый хост запускает brokre, в брокер бастиона. Секреты остаются на бастионе; ноутбук кэширует метаданные и выполняет через SSH-проксирование.

brokre bastion enable b150        # register ssh alias b150 as bastion
brokre bastion set-key              # set bastion unlock key (TTY)
brokre bastion unlock               # unlock outbound session (TTL, 30 min idle default)
brokre list --include-bastions --json # discover bastion-routed aliases
brokre ssh b150::db uname -a        # routed exec via b150 remote brokre
brokre bastion sync b150 --json     # fetch alias list from one bastion
  • Разделитель маршрута :: (: недопустим в именах алиасов): db (локальный), b150::db (через бастион), b1::b2::inner (многохоповый, глубина по умолчанию ≤2).

  • Удалённый brokre: маршрутизированное выполнение вызывает ~/.brokre/bin/brokre на бастионе (с BROKRE_SOFT_MEMLOCK=1, BROKRE_ALLOW_FILE_KEYCHAIN=1, BROKRE_ROUTED_INNER=1 для headless Linux). Интерактивные команды (например, sudo -i) автоматически получают -tt.

  • Ограничения: предел параллелизма проб, тайм-ауты в мс, короткий кэш, обнаружение циклов, аудит route/bastion (HMAC v4).

  • Manage UI: вкладка Bastion в brokre manage — регистрация/отключение бастионов, установка ключа и разблокировка/блокировка через Web, переключение строгого режима, синхронизация удалённых алиасов; при отсутствии TTY всё равно автоматически открывается /bastion-auth. Вкладка аудита фильтрует по bastion/source и показывает поля маршрута.

Политика шлюза бастиона (по умолчанию против строгого)

Bastion-шлюз — это шаг разблокировки человеком перед чувствительными операциями. Он выключен, пока вы не зададите bastion-ключ (brokre bastion set-key). После создания ключа разблокировка устанавливает локальную TTL-сессию (brokre bastion unlock, парольная фраза TTY, manage UI /bastion-auth или MCP-запрос через браузер).

Политика хранится в ~/.brokre/bastion/policy.json (strict_mode, по умолчанию false).

Режим

gate_mode

Когда требуется разблокировка (ключ должен быть задан)

по умолчанию

default

Только исходящий bastion — маршрутизируемый exec b150::inner; SSH/scp/sftp к зарегистрированному bastion-алиасу; brokre list / brokre_list, когда обнаружение bastion выполняет SSH к bastion-хостам. Чисто локальный exec (например, brokre ssh lan-db) не требует разблокировки.

строгий

strict

Каждый brokre exec / MCP brokre_exec; brokre list только с метаданными остаётся локальным, а --include-bastions по-прежнему требует разблокировки. Используйте, когда нужен человек в цикле для выполнения агентом, пока настроен bastion-ключ.

Примеры (режим по умолчанию, ключ задан, сессия заблокирована)

Операция

Нужна разблокировка?

brokre ssh prod uname -a (локальный алиас)

Нет

brokre ssh b150::db uname -a

Да

brokre ssh b150 uptime (зарегистрированный bastion)

Да

brokre list --include-bastions

Да

brokre list (только локально)

Нет

В строгом режиме строки exec требуют разблокировки; brokre list только с метаданными остаётся локальным и не разблокируется, если не используется --include-bastions.

Установка режима шлюза

brokre bastion strict status    # default | strict
brokre bastion strict on        # strict — all exec gated; list stays local-only unless discovery is requested
brokre bastion strict off       # default — bastion outbound only

Поверхность

Как

CLI

brokre bastion strict on|off|status

Manage UI

Вкладка Bastion — переключатель строгого режима

MCP

brokre_bastion_policy — прочитать текущую политику или передать {"strict_mode": true} / false

Ответ MCP на чтение включает strict_mode, gate_mode, key_set, unlocked. Ответы list/exec включают bastion_gate (required, unlocked_during_call, idle_expires_at).

TTL сессии разблокировки (по умолчанию): 30 мин простоя (BROKRE_BASTION_IDLE_SECS), макс. время жизни 8 ч (BROKRE_BASTION_MAX_SECS). Окно простоя обновляется при каждом вызове через шлюз, пока сессия разблокирована (общее для CLI, MCP и manage UI через ~/.brokre/run/bastion_session.json). Аутентификация bastion-шлюза не зависит от истечения простоя сессии manage UI. Отключить автоматическое открытие браузера при разблокировке через MCP: BROKRE_BASTION_NO_AUTO_OPEN=1.

Показать / удалить (только человек, реальный TTY)

brokre reveal mysql prod-db --field password
brokre rm ssh prod-bastion

Журнал аудита (только метаданные)

brokre audit list --profile ssh --action exec --json
brokre audit verify --json

События хранятся в ~/.brokre/audit/audit.log (HMAC-цепочка). Аргументы команд единообразно редактируются как <REDACTED>. Новые события включают поле source (cli, mcp или manage). Вкладка Audit log в manage UI и MCP brokre_audit_list предоставляют те же метаданные.

Безопасность manage UI

  • Только 127.0.0.1; токен сессии в терминале

  • Пароли: только создание / ротация — нет API чтения

  • Удаление / ротация требуют парольной фразы reveal (или YES для автоматически сохранённых записей)

  • Тайм-аут простоя 15 минут

Архитектура

┌─────────┐     ┌──────────┐     ┌─────────────┐     ┌────────────┐
│ AI/User │────▶│ brokre CLI│────▶│ OS Keychain │────▶│ Vault File │
└─────────┘     └──────────┘     └─────────────┘     └────────────┘
                      │
                      ▼
               ┌─────────────┐
               │  PTY + inj. │──▶ any CLI on PATH (ssh, mysql, gsql, …)
               └─────────────┘
  • Двойное шифрование: уникальный DEK для каждого поля; обёрнут отдельно для exec и reveal.

  • Метаданные хранилища: profile, name, host_alias, saved_args в открытом виде рядом с шифротекстом (THREAT_MODEL.md T3).

  • Приватные SSH-ключи: временный файл 0600 + -i для сессии (docs/HARDENING.md).

Предустановленные группы manage UI

Удобные вкладки, когда бинарник находится в PATH:

Группа

Бинарники

SSH

ssh, scp, sftp (общие учётные данные)

FTP

ftp, lftp

MySQL

mysql, mariadb

PostgreSQL

psql, postgres

Redis

redis-cli, redis

ClickHouse

clickhouse-client, clickhouse

MinIO

mc, minio

Дорожная карта

Сегодня: универсальная PTY-обёртка + группы manage.toml + переопределения prompts.toml.

Запланировано: полные TOML-профили коннекторов в ~/.brokre/profiles/ со стратегиями внедрения для каждого инструмента.

Конвейерный stdin и общий доступ OpenSSH

  • Конвейерный stdin (tar | brokre ssh host 'tar xf -'): данные конвейера передаются только после завершения внедрения.

  • Семейство OpenSSH (ssh, scp, sftp): общие сохранённые учётные данные при совпадении хоста. Требуется интерактивное сохранение (TTY).

Разработка

cargo test    # unit tests in src/ only (no tests/ integration suite in this repo)
cargo clippy --all-targets --all-features -- -D warnings
cargo build --release   # binary: target/release/brokre

Версия релиза объявлена в VERSION (также отражена в Cargo.toml и packages/brokre-mcp/package.json). Официальные бинарники и npm-пакеты публикуются TechinOne через GitHub Releases и CI — это не часть данного дерева с открытым исходным кодом.

Лицензия

MIT — см. LICENSE.


Techinone · 成都同创合一科技有限公司

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityNo data
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Credential isolation proxy for AI agents. Injects API keys at the network boundary so your agent never sees the raw credential. Supports domain allowlists, agent auth, policy enforcement, and audit logging.
    3
    106
    13
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to securely access encrypted secrets (SSH keys, API tokens, passwords) with real-time user approval via Passkey, and supports SSH remote execution through the MCP protocol.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to securely access authenticated services (HTTP, SSH, SMTP) without exposing secrets, by acting as a server-side proxy that injects authentication.
    MIT

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/Furowu/brokre'

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