mcpField
D
Derbent

Derbent

ローカル
github.comセキュリティ14 週間前に更新

Derbent について

Derbentは、コーディングエージェントのMCPおよび組み込みツール呼び出しを管理するローカルゲートです。許可・拒否・承認待ちのルールを適用し、改ざんを検知できる記録を残しますが、サンドボックスではありません。

主な機能

  1. 01MCPと組み込みツールのルール
  2. 02対話式の承認と拒否
  3. 03ハッシュチェーン形式の記録
  4. 04エージェント間のメモとタスク引き継ぎ
  5. 05ツール定義の固定と予算
  6. 06ターミナルUIとルールの説明

活用シーン

  1. 01特定のツール呼び出しに承認を求める
  2. 02エージェントの呼び出し記録を確認
  3. 03複数エージェント間でメモやタスクを共有
  4. 04予算でツール呼び出しのループを制限

MCP 対応

Derbentはコーディングエージェントを単一のMCPサーバーに接続し、ほかのMCPサーバーをその背後に配置します。CLIフックは、対応する組み込みツールの呼び出しも同じルールと記録のゲートに通します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Derbent

Derbent

すべてのコーディングエージェントを守る、ひとつのゲート。

Derbent MCP server – quality and maintenance score on Glama

MCP または CLI の組み込みツールを問わず、Derbent に届くすべてのツール呼び出しは、ひとつのポリシーで判断され、改ざんを検知できるログに記録されます。確認が必要な呼び出しは、あなたの応答を待ちます。

A terminal session: derbent explain shows that git push origin main matches an ask rule; Claude Code
hook calls fed to derbent gate let go test run and deny rm -rf by a rule; derbent receipts lists both
calls and derbent verify finds the chain intact; after one receipt is edited with sqlite3, derbent verify
names receipt 2 as where the chain breaks

Derbent はミスやプロンプトインジェクションを防ぎ、監査証跡を保持します。ただし、サンドボックスではありません。すでにあなたとしてシェルコマンドを実行できるエージェントは、Derbent を回避できます(制限を参照)。

トルコの歴史において、derbent は山道に設けられた警備所を指し、守衛は通行者を判断し、通過した人の記録を残していました。Derbent は、コーディングエージェントのツール呼び出しに対して同じ役割を果たします。

Claude Code、Codex、GitHub Copilot CLI、Antigravity CLI は、ひとつの MCP サーバーとして Derbent に接続し、ほかの MCP サーバーはその背後に配置します。各 CLI のツール実行前フックは、シェルやファイル編集などの組み込みツールを、同じゲートに通します。すべての呼び出しはルールに基づいて判断され、記録されます。

Codex と Antigravity CLI のサポートは実験的です(ドキュメントに基づいて設定していますが、実際のセッションではまだ確認していません)。

Four coding agent CLIs send MCP calls to derbent mcp and built-in tool calls to the derbent gate hook; both write a receipt to derbent.db, which the derbent terminal UI reads to show and approve calls, allowed MCP calls go on to your MCP servers, and a built-in call that is not denied runs in the CLI, which still applies its own permission check to a rule allow

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 だけにする方法については、下流サーバーをご覧ください。

呼び出しの判定方法

ツール呼び出しはルールに照らして確認され、最初に一致したルールが適用されます。次に、より厳格にすることだけができるプロジェクトのルール、続いて予算と照合されます。判定結果は許可、あなたの応答を待つ確認、または拒否のいずれかで、すべての呼び出しにレシートが1つ作成されます

ルールはユーザー設定ディレクトリの 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)、プロジェクトのルール、予算、ルールの提案について説明しています。

レシート

各レシートには、どのツールを誰が呼び出したか、判定結果、結果のハッシュ、そして1つ前のレシートのハッシュが保存されます。derbent verify はチェーンを再計算して最初に破損したレシートを特定します。エクスポートを検証できるように、先頭のハッシュを別の場所に保存できます

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 における中央値です。

LinuxWindows
MCP ツール呼び出し、サーバーに直接接続256.5 µs293.0 µs
MCP ツール呼び出し、ゲート経由756.0 µs909.0 µs
バイナリの起動と終了4.292 ms40.40 ms
フック呼び出し、derbent gate、許可6.421 ms64.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 用のエクスポートを備えたチーム監査証跡は、計画ではなくアイデアの段階です。必要だと思われる場合は、こちらのディスカッションでお知らせください。

ドキュメント

変更内容は変更履歴に記載されています。ビルド、テスト、変更の送信については CONTRIBUTING.mdを参照してください。脆弱性の報告についてはSECURITY.mdを参照してください。

ライセンス

Apache 2.0。LICENSEを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。