cordon
Jedes Unternehmen möchte KI-Agenten einsetzen. Kein Unternehmen ist bereit, einem Agenten die Schlüssel zu seiner Datenbank zu geben.
Cordon schließt die Vertrauenslücke.
Demo
https://github.com/user-attachments/assets/153d978f-6303-443a-b49b-b4ec7ebf0452
Related MCP server: border-patrol-mcp
Das Problem
Das Model Context Protocol (MCP) hat es trivial einfach gemacht, KI-Agenten Zugriff auf mächtige Werkzeuge zu geben – Datenbanken, Dateisysteme, APIs, Cloud-Infrastruktur.
Aber MCP hat kein eingebautes Sicherheitsmodell. Keine Audit-Logs. Keine Genehmigungsworkflows. Keine Ratenbegrenzungen. Heute ist ein KI-Agent entweder aus oder vollständiger Administrator. Es gibt nichts dazwischen.
Dies ist das größte Hindernis, das KI-Agenten daran hindert, die Produktion zu erreichen.
Die Lösung
Cordon ist das Sicherheits-Gateway, das zwischen dem LLM und Ihren MCP-Servern sitzt.
Es fungiert als Firewall, Prüfer und Fernbedienung – und gibt Ihnen vollständige Transparenz und Kontrolle darüber, was Ihre KI-Agenten tun können und was nicht.
┌─────────┐ ┌──────────┐ ┌──────────────┐
│ LLM / │ ──▶ │ Cordon │ ──▶ │ MCP Server │
│ Agent │ ◀── │ Gateway │ ◀── │ (database, │
└─────────┘ └──────────┘ │ fs, APIs) │
│ └──────────────┘
├── Policy Engine
├── Audit Logger
└── Approval WorkflowsKeine Infrastrukturänderungen. Kein Umschreiben. Eine Konfigurationsdatei.
Schnellstart
Schritt 1 — Initialisieren
Führen Sie dies in Ihrem Projekt aus (dort, wo Ihre claude_desktop_config.json existiert):
npx cordon-cli initDies liest Ihre bestehende Claude Desktop MCP-Konfiguration, generiert cordon.config.ts und patcht Claude Desktop, um alle Tool-Aufrufe über Cordon zu leiten.
Schritt 2 — Starten
npx cordon-cli startCordon startet, verbindet sich mit Ihren MCP-Servern und beginnt, Tool-Aufrufe abzufangen. Starten Sie Claude Desktop neu und jeder Tool-Aufruf fließt nun durch das Gateway.
Manuelle Einrichtung
Wenn Sie die Konfiguration lieber manuell vornehmen möchten, installieren Sie es global und erstellen Sie eine Konfiguration:
npm install -g cordon-cli
cordon initcordon init generiert eine 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
},
});Warum Cordon
Ohne Cordon | Mit Cordon |
Agent hat uneingeschränkten Tool-Zugriff | Granulare Richtlinien pro Tool |
Keine Sichtbarkeit, was Agenten getan haben | Strukturierter Audit-Trail jedes Aufrufs |
"Hat der Agent gerade eine Tabelle gelöscht?" | Echtzeit-Genehmigungen im Terminal |
Lese- und Schreibzugriffe werden gleich behandelt |
|
Compliance-Team lehnt KI ab | Audit-Logs bereit für den Export |
Funktionen
Richtlinien-Engine
Definieren Sie Regeln pro Tool, pro Server oder global. Richtlinien auf Tool-Ebene überschreiben Server-Richtlinien.
// 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
},Human-in-the-Loop-Genehmigungen
Wenn ein Tool-Aufruf eine Genehmigung erfordert, hält Cordon den Agenten an und fragt Sie direkt in Ihrem Terminal:
╔══════════════════════════════════════╗
║ ⚠ APPROVAL REQUIRED ║
╚══════════════════════════════════════╝
Server : database
Tool : execute_sql
Args :
{
"query": "DELETE FROM sessions WHERE expires_at < NOW()"
}
[A]pprove [D]eny
>Der Agent wartet. Sie entscheiden.
Audit-Protokollierung
Jeder Tool-Aufruf wird als strukturiertes JSON protokolliert – die Anfrage, die Richtlinienentscheidung, die Antwort und das Timing. Leiten Sie dies an stdout weiter oder schreiben Sie es in eine Datei für Ihr Compliance-Team.
{"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}Schreibgeschützter Modus
Eine Richtlinieneinstellung, um alle Schreibvorgänge auf einem Server zu blockieren. Kein Rätselraten darüber, was als Schreibvorgang zählt – Cordon erkennt dies am Tool-Namen.
policy: 'read-only' // any tool starting with write/create/update/delete/drop/execute/... is blockedVersteckte Tools
Für Tools, die das Modell niemals sehen sollte – nicht nur beim Aufruf abgelehnt, sondern vollständig aus der tools/list-Antwort gefiltert. Schließt eine Angriffsfläche für Prompt-Injection: Wenn das Modell nie erfährt, dass ein Tool existiert, kann es nicht dazu verleitet werden, es aufzurufen.
{
name: 'database',
policy: 'approve-writes',
tools: {
drop_table: 'block', // call attempts are rejected
internal_admin: 'hidden', // not advertised to the client at all
},
}Closed-World Tool-Kataloge
Deklarieren Sie genau die Tool-Oberfläche, die Ihr Upstream-Server ankündigen soll. Wenn der Upstream in einer zukünftigen Version ein neues Tool hinzufügt, blockiert Cordon es automatisch, bis Sie es explizit freigeben.
{
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
}Wenn die nächste Postgres MCP-Version truncate_table hinzufügt, blockiert Cordon es mit einer stderr-Warnung – keine Richtlinienaktualisierung erforderlich. Lassen Sie knownTools undefiniert für abwärtskompatibles Open-World-Verhalten.
Funktionsweise
Cordon läuft als einzelner aggregierender MCP-Proxy. Anstatt dass Claude Desktop sich direkt mit Ihren MCP-Servern verbindet, verbindet es sich mit Cordon. Cordon verwaltet dann Ihre Server intern.
Before: Claude ──▶ MCP Server A (full access)
Claude ──▶ MCP Server B (full access)
After: Claude ──▶ Cordon ──▶ MCP Server A (governed)
──▶ MCP Server B (governed)Ihr LLM-Client und Ihre MCP-Server ändern sich überhaupt nicht. cordon init übernimmt das Patchen der Konfiguration.
Konfiguration
Richtlinienaktionen
Richtlinie | Verhalten |
| Sofort durchlassen |
| Ablehnen – Agent erhält einen Fehler |
| Anhalten, wartet auf menschliche Genehmigung im Terminal |
| Lesezugriffe werden durchgelassen; Schreibzugriffe erfordern Genehmigung |
| Alle Schreibvorgänge werden blockiert |
| Durchlassen, aber im Audit-Log markiert |
| Aus tools/list gefiltert – das Modell sieht es nie |
Richtlinien können auf Server-Ebene (Standard für alle Tools) oder pro Tool (überschreibt den Server-Standard) festgelegt werden:
{
name: 'my-server',
policy: 'approve-writes', // server default
tools: {
safe_read: 'allow', // override: always allow
nuke_db: 'block', // override: always block
},
}Genehmigungskanäle
Kanal | Status |
| Verfügbar – interaktive Eingabeaufforderung in Ihrem Terminal |
| Verfügbar – Block Kit-Nachrichten, HMAC-verifizierte Interaktionen |
| Kommt in v0.3 |
| Kommt in v0.3 |
Audit-Ausgaben
Ausgabe | Status |
| Verfügbar |
| Verfügbar – JSON-Zeilen, die in eine lokale Datei geschrieben werden |
| Verfügbar – sendet Ereignisse an das Cordon-Dashboard |
| Kommt in v0.3 |
Pakete
Paket | Beschreibung |
| Das CLI – |
| TypeScript-Konfigurations-SDK – |
| Kern-Proxy-Engine – Richtlinien-Evaluator, Audit-Logger, Genehmigungs-Manager |
Roadmap
[x] MCP-Proxy mit Aggregator-Modell (mehrere Server, ein Gateway)
[x] Richtlinien-Engine – allow, block, approve, approve-writes, read-only, log-only, hidden
[x] Closed-World Tool-Kataloge –
knownTools+onUnknownToolfür zukunftssichere Upstream-Oberflächenkontrolle[x] Terminal-Genehmigungskanal mit TTY-sicherer Eingabeaufforderung
[x] Slack-Genehmigungskanal – Block Kit-Nachrichten, Umfragen für Antworten
[x] Strukturierte JSON-Audit-Protokollierung an stdout, Datei oder gehostetes Dashboard
[x]
cordon init– liest automatisch die Claude Desktop-Konfiguration und patcht sie[x] Ratenbegrenzung – gleitendes Fenster, global / pro Server / pro Tool
[x] Gehostetes Dashboard – Audit-Log-Historie, CSV/JSON-Export, GitHub OAuth
[x] Stripe-Abrechnung – Kostenlose und Pro-Tarife
[ ] OpenTelemetry-Export
[ ] Team-Konten und zentralisierte Governance
[ ] HTTP/SSE-Transportunterstützung
Beispiele
Siehe examples/security-showcase für eine funktionierende Demo von Cordon, das einen Agenten abfängt, der versucht, eine Produktionsdatenbanktabelle zu löschen.
cd examples/security-showcase
npm install
npm run demoAnwendungsfälle
Solo-Entwickler – Sichern Sie Ihr lokales Claude/Cursor-Setup. Sehen Sie genau, was Ihr Agent aufruft, und blockieren Sie alles Gefährliche, bevor es die Produktion erreicht.
Startup-Team – Setzen Sie Agenten mit Zuversicht ein. Jeder Tool-Aufruf wird protokolliert, Schreibvorgänge erfordern eine Genehmigung und Ihr Compliance-Team hat einen Nachweis.
Unternehmen – Zentralisierte Governance über alle KI-Agenten-Bereitstellungen hinweg. Policy-as-Code, strukturierte Protokolle und ein klarer Weg zu SOC2-konformen Audit-Trails.
Funktioniert hervorragend mit
Agent Toolbelt – ein typisiertes Toolkit mit fertigen MCP-Tools (Websuche, Fetch, Dateisystem und mehr). Binden Sie es in Claude Desktop ein und leiten Sie diese Tool-Aufrufe dann durch Cordon zur Richtliniendurchsetzung und Audit-Protokollierung. Agent Toolbelt gibt Ihren Agenten Macht; Cordon stellt sicher, dass sie fragen, bevor sie sie nutzen.
Build & Ship MCP Tools – der Begleitkurs, der Sie Schritt für Schritt durch den Aufbau Ihrer eigenen MCP-Server führt. Modul 6 behandelt die Sicherung Ihres Servers mit Cordon.
Mitwirken
Cordon ist Open Source und wir freuen uns über Beiträge.
git clone https://github.com/marras0914/cordon.git
cd cordon
npm install
npm run build
npm run devLizenz
MIT – siehe LICENSE für Details.
Maintenance
Related MCP Connectors
Zero-secret MCP gateway for AI agents: risk-scored, audited calls with human-in-the-loop approval.
- gatewayOAuthai.sealgate
MCP gateway with runtime security policy, tool-call-level control, and audit of agent actions.
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
Find, vet, and run MCP tools through a secure audited gateway with prompt-injection risk scoring
Related MCP Servers
- 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.5789 npm10MIT
- 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.8 npmMIT
- FlicenseNot gradedqualityCmaintenanceMCP server that provides a security gateway for AI agents, enforcing allow/confirm/deny policies on tool calls and requiring human approval for risky operations, with full audit logging.-
- AlicenseNot gradedqualityBmaintenanceProvides a human-in-the-loop approval gateway for AI agents, enforcing policies and audit logging for MCP-compatible tool calls.Apache 2.0