Skip to main content
Glama

brokre — AIセーフな資格情報ブローカー

English | 简体中文

brokre は、AIエージェントと人間のためのローカル資格情報ブローカーです。Cursor、Claude Code、Kimi Code、Trae、OpenClaw、Hermes Agent、ChatClaw、その他のMCP対応クライアントで使用して、sshmysqlpsql などを実行できます — パスワードがAIコンテキスト、環境変数、ps 出力に入ることはありませんPATH 上の任意のCLI(SSHやMySQLだけでなく)をラップし、保存されたパスワードをプロンプトで注入します — 平文をAIプロセス、シェル履歴、プロセス環境に公開することなく

開発: Techinone (成都同创合一科技有限公司)。

0.2.17の新機能

0.2.17 は現在のリリースです: デフォルトでSessionRelayルーティングSSHマルチホップ踏み台ルートデフォルトでローカルのみのリスト、そして既存のワンコマンドnpmインストール / 自動MCP登録 / 自動バイナリアップグレードフロー。

npm — インストール、自動更新、自動MCPセットアップ

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

機能

動作

自動MCP登録

postinstallbrokre-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 をダウンロードします。

npmなしのCLI

install.shユーザー向けの brokre version / brokre upgrade。IDEインストール後にMCPを登録するには brokre mcp setup

対応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"] }

踏み台ブローカー — クラスタ管理

踏み台レイヤーにより、AIエージェントは1つのジャンプボックスの背後にある多数のホストを、ボールトのパスワードをコンテキストにコピーしたり、ラップトップにシークレットを散らしたりすることなく操作できます。

利点

実際の意味

単一コントロールプレーン

踏み台SSHエイリアス(b150)を登録し、リモートのbrokreから内部エイリアスを同期し、brokre list / MCP brokre_list からクラスタ全体を操作します

スマートルーティング

b150::dbb150::app-01、マルチホップ b1::b2::inner — ルート区切りは ::。ルーティングされたSSHはデフォルトでSessionRelayを使用します

シークレットは踏み台に留まる

ルーティングされた実行はジャンプホスト上で ~/.brokre/bin/brokre を実行します。ラップトップはメタデータとセッションゲートを保持し、内部ホストのパスワードは保持しません

人間のゲート、エージェントフレンドリー

踏み台のアウトバウンドにはロック解除が必要です(TTY、/bastion-auth、またはMCP URLの引き出し)。ゲート認証は管理UIのアイドル期限を超えて存続するため、長時間のMCP実行は機能し続けます

クラスタ安全なデフォルト

デフォルトでローカルのみのリスト。明示的な踏み台ディスカバリ。msタイムアウトと同時実行制限付きの到達可能性プローブ。ループ検出と監査 route/bastion フィールド

ルート経由の特権操作

brokre_exec_elevatedsudo/sudo -i パスは、セッション再利用とPTY強化を備えた踏み台経由で動作します

1つのエントリホストの背後にあるK8s / DB / バッチクラスタの典型的なフロー:

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 まで非アクティブです。その後、デフォルトは踏み台アウトバウンドパスのみをロック解除します。厳格は、踏み台ディスカバリが要求されない限り、リストがローカルのみのままである間、すべての実行にロック解除を要求します。

セットアップの詳細については、以下の クロスネットワークリスト継承踏み台プロキシ を参照してください。

Related MCP server: SSH Vault MCP

CLIセキュリティ(コア)

brokreは1つのルールに基づいています: シークレットはAIの手の届かない場所、および観測可能なプロセス状態の外に留まります。

レイヤー

brokreの動作

env / ps 漏洩なし

注入はPTYプロンプトベースです — パスワードは -pSSHPASSMYSQL_PWD、またはエクスポートされた環境変数を介して渡されることはありません

親は平文を保持しない (Unix)

保存されたパスワードは、短命の brokre --internal-injector 子プロセスで復号化され、PTYに一度書き込まれた後、子プロセスは終了します

AIは reveal できない

brokre reveal には実際のTTYとマスターパスフレーズが必要です。Web UIでは利用できず、MCP経由では公開されません

保存時のボールト

フィールドごとのAES-256-GCM。DEKはOSキーリング(Linux)または ~/.brokre/.master_kek(macOS)でラップされ、オプションのArgon2idリビールパスフレーズが付きます

監査

~/.brokre/audit/audit.log のHMACチェーンJSONL。brokre audit list は履歴を照会します(メタデータのみ)。brokre audit verify は改ざんを検出します

MCP境界

MCPはメタデータ(brokre_list)、実行(brokre_execbrokre_exec_elevated)、brokre_setup、読み取り専用監査(brokre_audit_listbrokre_audit_verify)を公開します — パスワード、セッショントークン、reveal はありません

管理UI

127.0.0.1 のみにバインド。パスワードは書き込み専用。履歴用の監査ログタブ。セッショントークンはターミナルに印刷され、AIに返されることはありません

OS強化

コアダンプ無効、ptraceチェック(Linux)、オプションの mlockalldocs/HARDENING.md を参照

完全な脅威モデル: SECURITY.mdTHREAT_MODEL.md

PATH 上の任意のCLI(設計上ジェネリック)

brokreはデータベース/SSHラッパーの固定リストではありません。コアモデルは次のとおりです:

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

最初の接続: そのまま実行し、プロンプトで入力したパスワードをキャプチャし、エイリアスとして保存することを提案します。
次回: brokre <cli> <alias> … が自動注入します — AIとスクリプトはエイリアス名のみを認識します。

プリセットプロンプトパターンは一般的なツール(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 — 管理UIのカスタムセクション(例: GaussDB、内部ツール)

組み込みの管理UIタブ(バイナリがインストールされている場合)には、SSH、FTP、MySQL、PostgreSQL、Redis、ClickHouse、MinIOが含まれます — 利便性のためだけです。PTYラッパーは任意のCLIで動作します

インストール(MCP優先 — AIに推奨)

npmパッケージ brokre は、Cursor、Claude Code、Kimi Code、Trae、OpenClaw、Windsurf、VS Code、その他のMCPクライアント向けに、stdio経由でローカルの brokre mcp サーバーを起動します。

インストールパスの選択

パス

最適な用途

インストール

IDEでのMCP

CLIアップグレード

npm (推奨)

AIユーザー。ワンコマンドを希望

npm install -g brokre

インストール時に自動postinstall

npm + 各MCP起動時の自動ダウンロード

install.sh / Homebrew

本番環境。日常使用にNode不要

curl … | bash または brew install brokre

IDEインストール後に brokre mcp setup を実行

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 時に、3つのことが自動的に行われます:

  1. MCPランチャーbrokre-mcp / npx -y brokre@latestbrokre mcp を起動します。

  2. IDE自動登録postinstallbrokre-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)

再登録(例: Cursorより先にbrokreをインストールし、後で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

npmパスには Node.js 18+ が必要です。

パス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 を再実行すると、新しいリリースが存在する場合にアップグレードされます。

CLIインストール後にMCPを登録(セットアップスクリプトには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。プロジェクトスコープは"type": "stdio"を含む.mcp.json

その他のクライアントと環境変数: packages/brokre-mcp/README.mdMCP Registry ID: io.github.Furuwu/brokre

MCPツールと使用方法

MCPツール

目的

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

リモート特権コマンド(aliascommandmode)。デフォルトはsession=reuse(アイドルタイムアウト10分)

brokre_setup

人間が認証情報を追加するための管理UIをブラウザで開く

brokre_audit_list

監査履歴を照会(メタデータのみ — 引数は編集済み)

brokre_audit_verify

改ざん防止監査ログチェーンを検証

brokre_bastion_policy

バスティオンゲートモード(default / strict)を読み取りまたは設定。key_setunlockedを返します

MCPとCLIの比較(AIエージェントに必須)

brokreはssh / mysql代替品ではありません — ボールト注入にはbrokreを前置する必要があります。

タスク

MCP(IDE内)

CLI(ターミナル / デバッグ)

エイリアスの一覧表示

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 '…'(スクリプト全体を1つの-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"
}

フィールド

説明

mode

sudosudo_login(またはsudo-i)、su

session

reuse(デフォルト)、new(古いセッションを閉じて新しいセッションを開く)、close(セッションを終了。command: ""を渡す)

user

suモードのみ。デフォルトはroot

セッションプールが有効な場合、レスポンスにはexit_code / stdout / stderrに加えてsession_reusedsession_idle_expires_atが含まれます。session_idle_expires_atは固定の有効期限タイムスタンプではなく、呼び出しのたびに更新されるローリングアイドルウィンドウのヒントです。プールパスではstderrは通常空です。stdoutはリモートコマンドの出力のみ — TTYエコー、__BROKRE_*フレーミング、シェルプロンプトは除去されます。

brokre_exec: args内のsudo/suを含むbinary=sshは同じプールを自動使用します(常にreusesession=new|closeは不可)。例: args=["prod","sudo","whoami"]

リモートスクリプト/ファイルの作成shell_commandbinary=sshのみ): argsにはエイリアスのみを渡し、完全なシェルスクリプトはshell_commandに置きます(brokreがsh -cに正規化します)。argssh -c '...'を埋め込んだり、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パスを使用します: ラップトップがSSH経由でb150上にbrokre tunnel agent --stdioを起動し、エージェントがバスティオン上でbrokre ssh dbを実行します。マルチホップルートはエージェントごとに1ホップずつ剥がします(b1::b2::dbb1で開始し、b1b2::dbで継続)。内部の認証情報はバスティオンのボールトに留まり、ラップトップはターミナルのバイトを中継するだけです。BROKRE_TUNNEL=0は緊急ロールバック用の一時的なレガシー回避策です。

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

ルーティングSSHのMCP brokre_execレスポンスにはtunnel: { mode, active }が含まれます。TcpForward、エンドポイント同期、Manage UIのトンネルコントロール、永続的なtunneldは後のフェーズです。

制御

デフォルト

アイドル破棄

10分

最大有効期間

30分

コマンドごとのタイムアウト

120秒

変数

デフォルト

意味

BROKRE_MCP_SESSION

1

0はプールを無効化。ワンショットのサブプロセス実行にフォールバック

BROKRE_MCP_SESSION_IDLE_SECS

600

アイドルタイムアウト(秒)

BROKRE_MCP_SESSION_MAX_SECS

1800

最大セッション有効期間(秒)

BROKRE_MCP_SESSION_CMD_TIMEOUT

120

リモートコマンドのタイムアウト(秒)

非対応: コマンドなしの対話型sudo -ivim/top、またはボールトのpasswordフィールドと異なるsudoパスワード。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やバスティオンのロック解除をトリガーしません。b150::dbなどのルーティングエイリアスが実際に必要な場合はbrokre list --include-bastions(MCP: include_bastions=true)を使用してください。そのリモート検出にはロック解除が必要な場合があります。

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 b150b150は保存済みのSSHエイリアス)

  2. バスティオンホストが~/.brokre/bin/brokre(標準インストール / npxパス)でbrokreを実行し、内部エイリアスが保存されている(例: 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"]

両方のパスが機能する場合、リストにはdbdirect)とb150::dbvia_b150)の両方が表示されます — accessで区別します。

バスティオンプロキシ(クロスネットワーク / イントラネットエントリ)

リモートホストがbrokreを実行している任意の保存済みSSHエイリアスをバスティオンブローカーに昇格させます。シークレットはバスティオンに留まり、ラップトップはメタデータをキャッシュし、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を呼び出します(ヘッドレスLinux用にBROKRE_SOFT_MEMLOCK=1BROKRE_ALLOW_FILE_KEYCHAIN=1BROKRE_ROUTED_INNER=1付き)。対話型コマンド(例: sudo -i)には自動的に-ttが付与されます。

  • ガードレール: プローブの同時実行上限、msタイムアウト、短いキャッシュ、ループ検出、route/bastionの監査(HMAC v4)。

  • Manage UI: brokre manageBastionタブ — バスティオンの登録/無効化、Webでのキー設定とロック解除/ロック、strictモードの切り替え、リモートエイリアスの同期。非TTYでも/bastion-authが自動的に開きます。監査タブはbastion/sourceでフィルタリングし、ルートフィールドを表示します。

バスティオンゲートポリシー(default vs strict)

バスティオンゲートは、機密操作の前に行う人間によるロック解除ステップです。バスティオンキーを設定するまでオフです(brokre bastion set-key)。キーが存在すると、ロック解除によりローカルTTLセッションが確立されます(brokre bastion unlock、TTYパスフレーズ、管理UI /bastion-auth、またはMCPブラウザの聞き出し)。

ポリシーは~/.brokre/bastion/policy.jsonに保存されます(strict_mode、デフォルトはfalse)。

モード

gate_mode

ロック解除が必要な場合(キーが設定されている必要あり)

デフォルト

default

バスティオンアウトバウンドのみb150::innerルーティングexec。登録済みバスティオンエイリアスへのSSH/scp/sftp。バスティオンディスカバリがバスティオンにSSHする際のbrokre list / brokre_list。純粋にローカルなexec(例: brokre ssh lan-db)はロック解除を必要としません

厳格

strict

すべての brokre exec / MCP brokre_exec。メタデータのみのbrokre listはローカルのみに留まりますが、--include-bastionsは依然としてロック解除が必要です。バスティオンキーが設定されている間に、エージェント実行に人間の介入を求める場合に使用します。

例(デフォルトモード、キー設定済み、セッションロック中)

操作

ロック解除が必要か?

brokre ssh prod uname -a(ローカルエイリアス)

いいえ

brokre ssh b150::db uname -a

はい

brokre ssh b150 uptime(登録済みバスティオン)

はい

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

管理UI

バスティオンタブ — 厳格モードトグル

MCP

brokre_bastion_policy — 現在のポリシーを読み取るか、{"strict_mode": true} / falseを渡す

MCP読み取りレスポンスにはstrict_modegate_modekey_setunlockedが含まれます。リスト/execレスポンスにはbastion_gaterequiredunlocked_during_callidle_expires_at)が含まれます。

ロック解除セッションTTL(デフォルト): アイドル30分BROKRE_BASTION_IDLE_SECS)、最大有効期間8時間BROKRE_BASTION_MAX_SECS)。アイドルウィンドウは、ロック解除中にゲートされた呼び出しのたびに更新されます(CLI、MCP、管理UI間で~/.brokre/run/bastion_session.jsonを介して共有)。バスティオンゲート認証は、管理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フィールド(climcp、またはmanage)が含まれます。管理UIの監査ログタブとMCP brokre_audit_listは同じメタデータを公開します。

管理UIのセキュリティ

  • 127.0.0.1のみ。セッショントークンはターミナルに表示

  • パスワード: 作成 / ローテーションのみ — 読み取りAPIなし

  • 削除 / ローテーションには表示パスフレーズが必要(自動保存レコードの場合はYES

  • アイドルタイムアウト15分

アーキテクチャ

┌─────────┐     ┌──────────┐     ┌─────────────┐     ┌────────────┐
│ AI/User │────▶│ brokre CLI│────▶│ OS Keychain │────▶│ Vault File │
└─────────┘     └──────────┘     └─────────────┘     └────────────┘
                      │
                      ▼
               ┌─────────────┐
               │  PTY + inj. │──▶ any CLI on PATH (ssh, mysql, gsql, …)
               └─────────────┘
  • 二重暗号化: フィールドごとに一意のDEK。execreveal用に別々にラップ。

  • Vaultメタデータ: profilenamehost_aliassaved_argsは暗号文の横に平文で保存(THREAT_MODEL.md T3)。

  • SSH秘密鍵: 0600一時ファイル + セッション用の-idocs/HARDENING.md)。

プリセット管理UIグループ

バイナリがPATH上にある場合の便利なタブ:

グループ

バイナリ

SSH

sshscpsftp(共有資格情報)

FTP

ftplftp

MySQL

mysqlmariadb

PostgreSQL

psqlpostgres

Redis

redis-cliredis

ClickHouse

clickhouse-clientclickhouse

MinIO

mcminio

ロードマップ

現在: 汎用PTYラッパー + manage.tomlグループ + prompts.tomlオーバーライド。

計画中: ~/.brokre/profiles/配下の完全なTOMLコネクタプロファイル。ツールごとの注入戦略付き。

パイプ標準入力とOpenSSH共有

  • パイプ標準入力tar | brokre ssh host 'tar xf -'): パイプデータは注入完了後にのみ転送されます。

  • OpenSSHファミリーsshscpsftp): ホストが一致する場合に共有保存資格情報を使用。対話的な保存が最初に必要です(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.tomlpackages/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