Skip to main content
Glama

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


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 Genehmigungs-Workflows. 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 Fernsteuerung — 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 Workflows

Keine 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 init

Dies 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 start

Cordon 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 init

cordon 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

Lesen und Schreiben werden gleich behandelt

approve-writes lässt Lesezugriffe automatisch durch

Compliance-Team sagt Nein zu KI

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-Logging

Jeder Tool-Aufruf wird als strukturiertes JSON protokolliert — die Anfrage, die Richtlinienentscheidung, die Antwort und das Timing. Leiten Sie es 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, 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 blocked

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

Richtlinien-Aktionen

Richtlinie

Verhalten

allow

Sofort durchlassen

block

Ablehnen — Agent erhält einen Fehler

approve

Anhalten bis zur menschlichen Genehmigung im Terminal

approve-writes

Lesezugriffe werden durchgelassen; Schreibzugriffe erfordern Genehmigung

read-only

Alle Schreibvorgänge werden blockiert

log-only

Durchlassen, aber im Audit-Log markieren

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

terminal

Verfügbar — interaktive Eingabeaufforderung in Ihrem Terminal

slack

Verfügbar — Block Kit-Nachrichten, HMAC-verifizierte Interaktionen

web

Kommt in v0.3

webhook

Kommt in v0.3

Audit-Ausgaben

Ausgabe

Status

stdout

Verfügbar

file

Verfügbar — JSON-Zeilen werden in eine lokale Datei geschrieben

hosted

Verfügbar — sendet Ereignisse an das Cordon-Dashboard

otlp

Kommt in v0.3


Pakete

Paket

Beschreibung

cordon-cli

Das CLI — npx cordon-cli start

cordon-sdk

TypeScript-Konfigurations-SDK — defineConfig() und alle Typen

@getcordon/core

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

  • [x] Terminal-Genehmigungskanal mit TTY-sicherer Eingabeaufforderung

  • [x] Slack-Genehmigungskanal — Block Kit-Nachrichten, Umfragen für Antworten

  • [x] Strukturiertes JSON-Audit-Logging 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-Verlauf, 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 demo

Anwendungsfä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 die Erstellung 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 dev

Lizenz

MIT — siehe LICENSE für Details.


-
security - not tested
A
license - permissive license
-
quality - not tested

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/marras0914/cordon'

If you have feedback or need assistance with the MCP directory API, please join our Discord server