Derbent について
Derbentは、コーディングエージェントのMCPおよび組み込みツール呼び出しを管理するローカルゲートです。許可・拒否・承認待ちのルールを適用し、改ざんを検知できる記録を残しますが、サンドボックスではありません。
主な機能
- 01MCPと組み込みツールのルール
- 02対話式の承認と拒否
- 03ハッシュチェーン形式の記録
- 04エージェント間のメモとタスク引き継ぎ
- 05ツール定義の固定と予算
- 06ターミナルUIとルールの説明
活用シーン
- 01特定のツール呼び出しに承認を求める
- 02エージェントの呼び出し記録を確認
- 03複数エージェント間でメモやタスクを共有
- 04予算でツール呼び出しのループを制限
MCP 対応
Derbentはコーディングエージェントを単一のMCPサーバーに接続し、ほかのMCPサーバーをその背後に配置します。CLIフックは、対応する組み込みツールの呼び出しも同じルールと記録のゲートに通します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Derbent
すべてのコーディングエージェントを守る、ひとつのゲート。
MCP または CLI の組み込みツールを問わず、Derbent に届くすべてのツール呼び出しは、ひとつのポリシーで判断され、改ざんを検知できるログに記録されます。確認が必要な呼び出しは、あなたの応答を待ちます。

Derbent はミスやプロンプトインジェクションを防ぎ、監査証跡を保持します。ただし、サンドボックスではありません。すでにあなたとしてシェルコマンドを実行できるエージェントは、Derbent を回避できます(制限を参照)。
トルコの歴史において、derbent は山道に設けられた警備所を指し、守衛は通行者を判断し、通過した人の記録を残していました。Derbent は、コーディングエージェントのツール呼び出しに対して同じ役割を果たします。
Claude Code、Codex、GitHub Copilot CLI、Antigravity CLI は、ひとつの MCP サーバーとして Derbent に接続し、ほかの MCP サーバーはその背後に配置します。各 CLI のツール実行前フックは、シェルやファイル編集などの組み込みツールを、同じゲートに通します。すべての呼び出しはルールに基づいて判断され、記録されます。
Codex と Antigravity CLI のサポートは実験的です(ドキュメントに基づいて設定していますが、実際のセッションではまだ確認していません)。

Windows、macOS、Linux 向けの単一バイナリです。デーモンもネットワークリスナーもありません。共有状態は SQLite ファイルのみです(ADR 0001)。
利用できる機能
- 許可、拒否、確認を求めるルール。 エージェント、ツール、引数ごとに設定できます。最初に一致したルールが適用されます。4 つの CLI すべてで、MCP ツールとシェルなどの組み込みツールに同じルールが適用されます。また、リポジトリにプロジェクトルールを追加して、制限を厳しくすることもできます。
- 承認。 ルールによって確認が求められた呼び出しは、ターミナル UI で
aを押すまで保留されます。既定では 50 秒後に拒否されます。 - レシート。 すべての呼び出しについて、ハッシュチェーンで連結されたレシートが作成されます。レシートが編集、移動、挿入、削除された場合、
derbent verifyはチェーンが途切れた最初のレシートを示します。最新のレシートの削除も検出できるよう、表示されたヘッドハッシュを保管してください。
さらに、次の機能もあります。
- 共有メモリと引き継ぎ。 エージェントはリポジトリごとにメモを保持し、互いにタスクを引き継げます。
- ピン。 定義が変更された下流サーバーのツールを保留します。
- 予算。 ループから抜け出せなくなったエージェントを停止します。
インストール
お使いのシステム用のバイナリと SHA256SUMS を最新リリースからダウンロードし、ハッシュを確認して、PATH に derbent(Windows では derbent.exe)として配置します。
# Linux on amd64; the other files differ only in the end of the name
curl -LO https://github.com/tunahanaliozturk/derbent/releases/download/v1.0.0/derbent-v1.0.0-linux-amd64
curl -LO https://github.com/tunahanaliozturk/derbent/releases/download/v1.0.0/SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS
install -m 755 derbent-v1.0.0-linux-amd64 ~/.local/bin/derbent
または、Go 1.27 以降でビルドします。
go install github.com/tunahanaliozturk/derbent/cmd/derbent@latest
Homebrew(brew install tunahanaliozturk/tap/derbent)と Scoop でもインストールできます。詳しくはインストールとセットアップを参照してください。
すべてのリリースは、タグからバイト単位で同一のものを再ビルドできます。インストールとセットアップでは、ほかのシステムへのインストール方法、リリースの確認方法、各 CLI の設定項目を手動で登録する方法を説明しています。
クイックスタート
derbent init --preset balanced # add Derbent to each CLI it finds, and write a first config
derbent doctor # check what init wrote
derbent # open the terminal UI in a terminal of its own
derbent init は変更内容をすべて表示し、変更を適用する前に一度だけ確認を求めます。変更するファイルはそれぞれ先にコピーし、すでに存在するエントリーを置き換えることはありません。--dry-run を指定すると、変更内容を表示するだけです。実際に実行した際の出力のうち、パスを短縮した例を2つ示します。
claude: ~/.claude.json
copied first to ~/.claude.json.derbent-backup-20260930T205424Z
runs:
claude mcp add --scope user derbent -- ~/bin/derbent mcp --agent claude
derbent: ~/.config/derbent/config.toml
a new file
adds the balanced preset (derbent init --preset balanced --print shows it)
各 CLI の設定に derbent gate フックも追加します。すべてのエントリーはインストールとセットアップをご覧ください。エージェントはいつもどおり起動してください。エージェントからの呼び出しが UI に表示され、ルールによって確認が必要とされた呼び出しは、そこであなたの応答を待ちます。組み込みツールでは、各 CLI のフックが対象とする範囲を説明しています。
ほかの MCP サーバーもゲートの配下に置き、各エージェントに必要なエントリーを derbent だけにする方法については、下流サーバーをご覧ください。
呼び出しの判定方法

ルールはユーザー設定ディレクトリの config.toml に記述します(Windows では %AppData%\derbent\、Linux では ~/.config/derbent/、macOS では ~/Library/Application Support/derbent/)。下流 MCP サーバーのツール名は <server>__<tool>、CLI の組み込みツール名は native__<tool> です。
[[rule]]
tool = "github__issue_read"
action = "allow"
[[rule]]
tool = "github__*" # every other GitHub tool waits for you
action = "ask"
[[rule]]
agent = "claude"
tool = "native__Bash" # Claude Code's shell, through the hook
args = { command = "git push*" }
action = "ask"
[[rule]]
action = "allow" # the last rule has no condition
呼び出しが実行される前に、どのように判定されるかを確認するには、次のようにします。
derbent explain --agent claude --tool native__Bash --args '{"command":"git push origin main"}'
各ルールについて、一致するかどうかとその理由を最初に一致するルールまで表示します。続いて、プロジェクトのルール、予算、ピン、付与済み権限を表示し、上記のルールのもとでこの呼び出しに対する verdict: ask (rule:3) で終了します。ルールでは、グロブ、3つのプリセット(watch、balanced、strict)、プロジェクトのルール、予算、ルールの提案について説明しています。
レシート

derbent verify # count, head hash, and whether the chain is intact
derbent receipts --agent codex --since 1h # also --tool, --project, --limit, --json
レシートには、秘密情報をマスキングした後の引数と、ツールが返した内容のサイズおよびハッシュだけが保存されます(ADR 0004)。データベースに書き込める人は、チェーン全体を書き換えたり、最新のレシートを削除したりできます。そのため、後からそれを検知できるようにするには、先頭のハッシュを別の場所に保存してください。レシートと検証では、データベースなしで検証できるエクスポートについて説明しています。
コマンド
| コマンド | 内容 | 詳細 |
|---|---|---|
derbent | ターミナル UI:応答待ちの呼び出し、エージェント、リアルタイムのレシート、メモリ、付与済み権限 | 承認 |
derbent init、derbent doctor | 各 CLI に Derbent を追加し、セットアップを確認します | インストール |
derbent mcp --agent <name> | 各 CLI が起動する MCP サーバー | インストール |
derbent gate --agent <name> | 組み込みツール用のツール実行前フック | 組み込みツール |
derbent pending、approve、deny | 任意のシェルから応答待ちの呼び出しに回答します | 承認 |
derbent grants、revoke | セッションに付与された権限を一覧表示し、取り消します | 承認 |
derbent explain | 呼び出しがどのように判定されるかを表示します | ルール |
derbent suggest | 回答から導かれるルールを表示します | ルール |
derbent config check | 設定を検証し、各サーバーのツールを一覧表示します | サーバー |
derbent pins | 変更された下流ツールを確認して承認します | サーバー |
derbent receipts、verify | レシートを読み取り、エクスポートして検証します | レシート |
derbent handoffs | エージェント同士が引き継いだタスクを一覧表示します | メモリと引き継ぎ |
derbent version | リリースを表示します |
オーバーヘッド
2026-10-01 に GitHub のホステッドランナー(Intel Xeon Platinum 8370C 搭載の Linux、AMD EPYC 9V74 搭載の Windows、各 4 vCPU)で測定した値です。docs/benchmark-results に基づく、10 回の実行の p50 における中央値です。
| Linux | Windows | |
|---|---|---|
| MCP ツール呼び出し、サーバーに直接接続 | 256.5 µs | 293.0 µs |
| MCP ツール呼び出し、ゲート経由 | 756.0 µs | 909.0 µs |
| バイナリの起動と終了 | 4.292 ms | 40.40 ms |
フック呼び出し、derbent gate、許可 | 6.421 ms | 64.51 ms |
ゲートによって、追加の stdio ホップ、ルール判定、プロジェクトルールの確認、SQLite へのレシート書き込みが発生するため、MCP 呼び出しにかかる時間は Linux で 499.5 µs、Windows で 616.0 µs 増加します。フック呼び出しにかかる時間は、Linux ではバイナリ起動より約 2.1 ms、Windows では 24 ms 増加します。Windows ではそのコストの大部分がプロセスの起動です。数値は共有ランナーでの 1 回の実行によるもので、実行ごとの差は 1 回分の区間より大きくなります。前日、同じ Windows CPU モデルで同じコードを実行したところ、ゲートによる MCP 呼び出しの増加分は 459.5 µs でしたが、今回は 616.0 µs でした。結果ページには p99、1 秒あたりの呼び出し数、注意事項が記載されています。
制限事項
理由を含む制限事項の一覧は、既知の制限事項とリスク にあります。まず知っておくべき点は次のとおりです。
- ゲートを通過する呼び出しのみが認識されます。Codex のホステッドウェブ検索のように、CLI がフックを公開しないツールは対象外です。
- 冒頭で実験的と記されている CLI については、各 CLI のドキュメントに従ったエントリーとフックアダプターが用意されていますが、実際のセッションでは検証されていません。Claude Code と Copilot CLI(2026-10-02 時点で 1.0.88)は検証済みです。
- 引数の glob は意味ではなく文字列に一致します。
git push*はcd repo && git pushには一致しません。 - 承認機能は、MCP 内でのミスやプロンプトインジェクションを防ぐものです。すでにあなたとしてシェルコマンドを実行できるエージェントは阻止できません。そのエージェントは自分で
derbent approveを実行できます。 - レシートのエクスポートで、最後の実行から変更されていないことを確認できるのは、保持していたヘッドに対してのみです。また、何も除外されていないことは確認できません。
- サジェスト機能は認識しているシェル、ランチャー、演算子を拒否しますが、テキストルールは回避される可能性があり、これらの一覧を完全にすることはできません。また、コマンドのプレフィックスに対する
allowは、あらゆるオプションを許可します。 - ハンドオフのアドレスは識別子ではなくラベルです。
handoff_takeを呼び出せるエージェントは、*宛ての未処理ハンドオフをすべて受け取れます。 - 承認機能は、あなたが監視していることを前提とします。無人の場合、タイムアウト後に
askは拒否として扱われます。 - ピンは、最初に確認した定義を信頼します。これには、更新によってピン留めされたサーバーに追加された新しいツールも含まれます。そのため、更新を確認しないサーバーでは、許可するツールを指定してください。
- 同時に処理中の呼び出しによって、予算を超過することがあります。
- CI では Windows と Linux でテストを実行し、macOS ではビルドのみを行います。
チーム向け
各マシンのレシートを同期し、SIEM 用のエクスポートを備えたチーム監査証跡は、計画ではなくアイデアの段階です。必要だと思われる場合は、こちらのディスカッションでお知らせください。
ドキュメント
- インストールとセットアップ:各システム、リリースの確認、各 CLI の手動設定
- ルール:ルール、プリセット、
explain、プロジェクトルール、予算、サジェスト - 承認と UI:キー、許可、シェルからの応答
- 組み込みツール:フック、CLI ごとのツール名、各 CLI の対応範囲
- 下流サーバーとツールのピン
- レシートと検証:レシートに含まれる内容、エクスポート、
verify --file - メモリとハンドオフ
- デモ:1 つのゲートを共有する、実際の Claude Code セッション 2 件の記録
- 設計:ビルドの契約、およびその背景にある決定事項
変更内容は変更履歴に記載されています。ビルド、テスト、変更の送信については CONTRIBUTING.mdを参照してください。脆弱性の報告についてはSECURITY.mdを参照してください。
ライセンス
Apache 2.0。LICENSEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。