cordon
すべての企業がAIエージェントを導入したいと考えています。しかし、データベースの鍵をエージェントに渡してもよいと考えている企業はありません。
Cordonは、その信頼のギャップを埋めます。
デモ
https://github.com/user-attachments/assets/153d978f-6303-443a-b49b-b4ec7ebf0452
Related MCP server: protect-mcp
課題
Model Context Protocol (MCP) により、AIエージェントにデータベース、ファイルシステム、API、クラウドインフラなどの強力なツールへのアクセスを簡単に提供できるようになりました。
しかし、MCPには組み込みのセキュリティモデルがありません。監査ログも、承認ワークフローも、レート制限もありません。現在、AIエージェントは「オフ」か「フル管理者権限」のどちらかであり、その中間が存在しません。
これが、AIエージェントの本番環境導入を阻む最大の障壁となっています。
解決策
Cordonは、LLMとMCPサーバーの間に配置されるセキュリティゲートウェイです。
これはファイアウォール、監査人、そしてリモートコントロールとして機能し、AIエージェントが何を行い、何を行えないかについて、完全な可視性と権限をあなたに提供します。
┌─────────┐ ┌──────────┐ ┌──────────────┐
│ LLM / │ ──▶ │ Cordon │ ──▶ │ MCP Server │
│ Agent │ ◀── │ Gateway │ ◀── │ (database, │
└─────────┘ └──────────┘ │ fs, APIs) │
│ └──────────────┘
├── Policy Engine
├── Audit Logger
└── Approval Workflowsインフラの変更は不要。書き換えも不要。設定ファイルは1つだけです。
クイックスタート
ステップ 1 — 初期化
プロジェクト内(claude_desktop_config.jsonが存在する場所)で以下を実行します:
npx cordon-cli initこれにより、既存のClaude DesktopのMCP設定が読み取られ、cordon.config.tsが生成され、すべてのツール呼び出しがCordonを経由するようにClaude Desktopにパッチが適用されます。
ステップ 2 — 開始
npx cordon-cli startCordonが起動し、MCPサーバーに接続してツール呼び出しのインターセプトを開始します。Claude Desktopを再起動すれば、すべてのツール呼び出しがゲートウェイを経由するようになります。
手動設定
手動での設定を好む場合は、グローバルにインストールして設定を作成してください:
npm install -g cordon-cli
cordon initcordon initを実行するとcordon.config.tsが生成されます:
import { defineConfig } from 'cordon-sdk';
export default defineConfig({
servers: [
{
name: 'database',
transport: 'stdio',
command: 'npx',
args: ['-y', '@my-org/db-mcp-server'],
policy: 'read-only', // Block all write operations
},
{
name: 'github',
transport: 'stdio',
command: 'npx',
args: ['-y', '@modelcontextprotocol/server-github'],
policy: 'approve-writes', // Reads pass; writes require approval
tools: {
delete_branch: 'block', // Never, regardless of approval
},
},
],
audit: {
enabled: true,
output: 'stdout', // or 'file'
},
approvals: {
channel: 'terminal',
timeoutMs: 60_000, // auto-deny after 60s if no response
},
});Cordonを選ぶ理由
Cordonなし | Cordonあり |
エージェントがツールに無制限にアクセス可能 | ツールごとの詳細なポリシー |
エージェントの行動が可視化されない | すべての呼び出しの構造化された監査証跡 |
「エージェントがテーブルを削除した?」 | リアルタイムのターミナル承認 |
読み取りと書き込みが同じ扱い |
|
コンプライアンスチームがAIに反対 | エクスポート可能な監査ログ |
機能
ポリシーエンジン
ツールごと、サーバーごと、またはグローバルにルールを定義できます。ツールレベルのポリシーはサーバーポリシーを上書きします。
// Server-level default
policy: 'approve-writes',
// Per-tool overrides
tools: {
query: 'allow', // reads: pass through
execute: 'approve', // writes: pause for human approval
drop_table: 'block', // catastrophic: always reject
list_tables: 'log-only', // audit but don't interrupt
},ヒューマン・イン・ザ・ループ承認
ツール呼び出しに承認が必要な場合、Cordonはエージェントを一時停止し、ターミナルで直接あなたに確認を求めます:
╔══════════════════════════════════════╗
║ ⚠ APPROVAL REQUIRED ║
╚══════════════════════════════════════╝
Server : database
Tool : execute_sql
Args :
{
"query": "DELETE FROM sessions WHERE expires_at < NOW()"
}
[A]pprove [D]eny
>エージェントは待機します。あなたが判断を下します。
監査ログ
すべてのツール呼び出しは、リクエスト、ポリシー決定、レスポンス、タイミングを含む構造化されたJSONとしてログに記録されます。stdoutにパイプしたり、コンプライアンスチームのためにファイルに書き出したりできます。
{"event":"tool_call_received","callId":"...","serverName":"database","toolName":"execute_sql","timestamp":1773434469641}
{"event":"approval_requested","callId":"...","serverName":"database","toolName":"execute_sql","timestamp":1773434469641}
{"event":"tool_call_approved","callId":"...","serverName":"database","toolName":"execute_sql","timestamp":1773434471203}
{"event":"tool_call_completed","callId":"...","durationMs":34,"isError":false,"timestamp":1773434471237}読み取り専用モード
サーバー全体のすべての書き込み操作をブロックするポリシー設定です。何が書き込みとみなされるかについて推測する必要はありません。Cordonはツール名からそれを検出します。
policy: 'read-only' // any tool starting with write/create/update/delete/drop/execute/... is blocked非表示ツール
モデルに決して見せるべきではないツールに対して使用します。呼び出し時に拒否するだけでなく、tools/listレスポンスから完全に除外します。プロンプトインジェクションの表面を閉じます。モデルがツールの存在を知らなければ、それを呼び出すように騙すことはできません。
{
name: 'database',
policy: 'approve-writes',
tools: {
drop_table: 'block', // call attempts are rejected
internal_admin: 'hidden', // not advertised to the client at all
},
}クローズドワールド・ツールカタログ
アップストリームサーバーがアドバタイズする正確なツールセットを宣言します。将来のリリースでアップストリームが新しいツールを追加しても、明示的に許可するまでCordonは自動的にブロックします。
{
name: 'postgres',
command: 'npx',
args: ['-y', '@modelcontextprotocol/server-postgres', process.env.POSTGRES_URL!],
policy: 'read-only',
knownTools: ['query', 'list_tables', 'describe_table'], // your approved surface
onUnknownTool: 'block', // default when knownTools is set
}次回のPostgres MCPリリースでtruncate_tableが追加された場合、Cordonはポリシー更新なしでstderr警告を出してブロックします。後方互換性のあるオープンワールド動作が必要な場合は、knownToolsを未定義のままにしてください。
仕組み
Cordonは単一の集約型MCPプロキシとして動作します。Claude DesktopがMCPサーバーに直接接続する代わりに、Cordonに接続します。Cordonが内部でサーバーを管理します。
Before: Claude ──▶ MCP Server A (full access)
Claude ──▶ MCP Server B (full access)
After: Claude ──▶ Cordon ──▶ MCP Server A (governed)
──▶ MCP Server B (governed)LLMクライアントとMCPサーバーは一切変更する必要がありません。cordon initが設定のパッチ適用を処理します。
設定
ポリシーアクション
ポリシー | 動作 |
| 即座に通過 |
| 拒否 — エージェントはエラーを受け取る |
| ターミナルでの人間による承認待ちで一時停止 |
| 読み取りは通過、書き込みは承認が必要 |
| すべての書き込み操作をブロック |
| 通過させるが、監査ログにフラグを立てる |
| tools/listから除外 — モデルは存在を知らない |
ポリシーはサーバーレベル(全ツールのデフォルト)またはツールごと(サーバーデフォルトを上書き)に設定できます:
{
name: 'my-server',
policy: 'approve-writes', // server default
tools: {
safe_read: 'allow', // override: always allow
nuke_db: 'block', // override: always block
},
}承認チャンネル
チャンネル | ステータス |
| 利用可能 — ターミナルでの対話型プロンプト |
| 利用可能 — Block Kitメッセージ、HMAC検証済みインタラクション |
| v0.3で対応予定 |
| v0.3で対応予定 |
監査出力
出力 | ステータス |
| 利用可能 |
| 利用可能 — ローカルファイルへのJSON行書き出し |
| 利用可能 — Cordonダッシュボードへのイベント送信 |
| v0.3で対応予定 |
パッケージ
パッケージ | 説明 |
| CLI — |
| TypeScript設定SDK — |
| コアプロキシエンジン — ポリシー評価、監査ログ、承認管理 |
ロードマップ
[x] 集約モデルを備えたMCPプロキシ(複数のサーバー、1つのゲートウェイ)
[x] ポリシーエンジン — allow, block, approve, approve-writes, read-only, log-only, hidden
[x] クローズドワールド・ツールカタログ —
knownTools+onUnknownToolによる将来を見据えたアップストリーム制御[x] TTYセーフなプロンプトを備えたターミナル承認チャンネル
[x] Slack承認チャンネル — Block Kitメッセージ、応答のポーリング
[x] stdout、ファイル、またはホスト型ダッシュボードへの構造化JSON監査ログ
[x]
cordon init— Claude Desktop設定の自動読み取りとパッチ適用[x] レート制限 — スライディングウィンドウ、グローバル/サーバーごと/ツールごと
[x] ホスト型ダッシュボード — 監査ログ履歴、CSV/JSONエクスポート、GitHub OAuth
[x] Stripe課金 — 無料およびProプラン
[ ] OpenTelemetryエクスポート
[ ] チームアカウントと集中ガバナンス
[ ] HTTP/SSEトランスポートサポート
例
本番データベーステーブルを削除しようとするエージェントをCordonがインターセプトする動作デモについては、examples/security-showcase を参照してください。
cd examples/security-showcase
npm install
npm run demoユースケース
個人開発者 — ローカルのClaude/Cursor環境を保護します。エージェントが何を呼び出しているかを正確に把握し、危険な操作を本番環境に到達する前にブロックします。
スタートアップチーム — 自信を持ってエージェントを導入します。すべてのツール呼び出しがログに記録され、書き込みには承認が必要となり、コンプライアンスチームのための証跡が残ります。
エンタープライズ — すべてのAIエージェント導入における集中ガバナンス。ポリシー・アズ・コード、構造化ログ、SOC2対応の監査証跡への明確な道筋を提供します。
連携ツール
Agent Toolbelt — すぐに使えるMCPツール(Web検索、フェッチ、ファイルシステムなど)の型付きツールキットです。これをClaude Desktopに組み込み、Cordon経由でルーティングすることで、ポリシー強制と監査ログを実現します。Agent Toolbeltはエージェントに力を与え、Cordonはそれを使う前に確認させることを保証します。
Build & Ship MCP Tools — 独自のMCPサーバーをゼロから構築する方法を解説するコンパニオンコースです。モジュール6では、Cordonを使用したサーバーの保護について解説しています。
貢献
Cordonはオープンソースであり、貢献を歓迎します。
git clone https://github.com/marras0914/cordon.git
cd cordon
npm install
npm run build
npm run devライセンス
MIT — 詳細は LICENSE を参照してください。
Maintenance
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
AlicenseNot gradedqualityCmaintenancePolicy enforcement gateway for MCP tool calls, evaluating every tool invocation against declarative YAML policies (allow/deny/escalate-to-human), generating cryptographic hash-chained audit receipts, and including built-in content safety scanning.2MIT- AlicenseBqualityCmaintenanceSecurity gateway that wraps any MCP server with per-tool policies, approval gates, and optional Ed25519-signed decision receipts. Shadow mode logs every tool call without blocking; enforce mode applies block, rate-limit, and minimum-tier rules. Receipts are independently verifiable offline with no accounts needed.54699MIT
- AlicenseNot gradedqualityBmaintenanceA policy-enforcing MCP gateway that intercepts all tool calls to downstream MCP servers, applying allow/deny/ask rules with human approval and audit logging for safe access to dangerous tools.23MIT

evav-gatewayofficial
AlicenseNot gradedqualityBmaintenanceGoverned MCP gateway that lets AI agents call tools with policy enforcement, prompt-injection screening, a kill-switch, and tamper-evident signed audit logs.Apache 2.0
Related MCP Connectors
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
Runtime permission, approval, and audit layer for AI agent tool execution.
See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/marras0914/cordon'
If you have feedback or need assistance with the MCP directory API, please join our Discord server