Skip to main content
Glama
codeit-ronit

SENTINEL

by codeit-ronit

SENTINEL

ci Live-Demo → · Handbuch · Build- & Live-Test-Bericht

Eine Policy-Durchsetzungs-, Audit- und Bewertungs-Kontrollebene für LLM-Agenten, die auf Zahlungsinfrastruktur operieren.

Prompt-Ebene-Guardrails sind nur Empfehlungen. SENTINEL macht sie verbindlich, indem die Durchsetzung an die Tool-Aufruf-Grenze verlagert wird — ein Prozess, den das Modell nicht kontrolliert — und beweist dies mit einer deterministischen Bewertungsharness und einer adversarialen Red-Team-Suite.


⚠️ Nur Testmodus · Nicht mit Razorpay verbunden

Unabhängiges Open-Source-Projekt. Nicht mit Razorpay verbunden, weder unterstützt noch hergestellt. Integriert den öffentlich veröffentlichten Open-Source- razorpay/razorpay-mcp-server. Nur Testschlüssel (rzp_test_*) — ein rzp_live_-Schlüssel wird beim Start abgelehnt und von der CI blockiert. Alle Daten sind synthetisch und prüfsummenungültig, sodass kein generierter Wert mit einer echten Kennung kollidieren kann. Das Red-Team läuft ausschließlich gegen den lokalen Fixture-Server, niemals gegen einen gehosteten Endpunkt.


Das Problem in drei Sätzen

Ein No-Code-Builder will Nicht-Entwicklern erlauben, LLM-Agenten auf APIs loszulassen, die Geld bewegen — und diese Agenten verarbeiten von Natur aus angreiferkontrollierten Text: Support- Tickets, Chargeback-Nachweise, hochgeladene Kontoauszüge. Der branchenübliche Schutz ist ein Satz im System-Prompt, also eine Bitte an das Modell: Er kann nicht unit-getestet werden, erzeugt kein Artefakt, weder im Erfolgs- noch im Fehlerfall, und verschlechtert sich unter adversarialen Eingaben und Modell-Updates. SENTINEL unterbricht jeden Tool-Aufruf an der Protokollgrenze, klassifiziert ihn, schwärzt personenbezogene Daten (PII), bewertet ihn gegen eine deklarative Policy und erlaubt, verweigert oder eskaliert ihn an einen Menschen — bevor er ausgeführt wird.

Related MCP server: NORNR MCP Control

Die drei wichtigsten Kennzahlen

Erzeugt offline per make redteam (gepaarter A/B-Vergleich, regelbasiertes Bewerten), reproduzierbar von jedem ohne API-Schlüssel.

So sind diese Zahlen zu lesen (das ist wichtig). Der getestete Agent ist ein Worst-Case-, vollständig kompromittierter Agent — ein deterministischer Platzhalter, der geschrieben wurde, um jeder injizierten Anweisung zu folgen. Das ist beabsichtigt: Es ist gängige Sicherheits- methodik, eine Verteidigung gegen einen maximalen Gegner zu testen, nicht gegen einen durchschnittlichen. Ein echtes Modell könnte einer Injektion durch Zufall widerstehen; dieser Platzhalter nie. Die Spalte „Guardrails aus" ist also keine Behauptung, dass ein echtes Modell in X % der Fälle getäuscht wird — es ist der Worst Case, und es zählt, was die Kontrollebene dagegen tut:

Gegen einen Worst-Case-Agenten, der jeder Injektion folgt

Ergebnis

Guardrails aus (keine Kontrollebene)

24 unbefugte Geldbewegungen + 5 Datenabflüsse ausgeführt

Guardrails an

0 unbefugte Geldbewegungen, 0 Datenabflüsse (24/29 Versuche weiterhin unternommen — alle an der Grenze blockiert)

Fehlalarmrate bei legitimer Arbeit

0 % (bei kleinem, wohlwollendem Testset — siehe Einschränkungen)

Die Durchsetzung hängt nicht vom Widerstand des Modells ab. Die 0 ist modellunabhängig, nachweislich echt — der Proxy verweigert, was auch immer der Agent versucht. (Die Quarantäne-Vertrauensgrenze ist eine Abschwächung; die Berechtigungseingrenzung an der Grenze ist die Garantie. Wir haben Prompt-Injection nicht „gelöst" — das hat niemand.)

Overhead der Guardrails: Die Policy-Auswertung kostet nachweislich deutlich unter 0,1 ms pro Aufruf, ohne messbaren Genauigkeitsverlust.

Differenzierung der Agentenfähigkeiten (noch kein echtes Multi-Modell-Ergebnis)

Die Laufzeit ist bewusst modellagnostisch, und die Harness läuft gegen zwei deterministische Platzhalter-Agenten unterschiedlicher Qualität:

Ein „starker" Platzhalter erreichte 100 % Aufgaben-Erfolg; ein „schwacher" 87 % mit 13 fehlerhaften Tool-Aufrufen und geringerer Genauigkeit bei harten Fällen — während beide 0 unbefugte Ausführungen, 0 PII-Leaks, 0 Policy-Verstöße aufwiesen. Das zeigt: Die Harness kann Agentenfähigkeiten unterscheiden, während die Durchsetzung konstant bleibt. Es ist kein Groq-vs-Gemini-Vergleich — der erfordert einen einmaligen Aufzeichnungslauf mit echten Provider-Schlüsseln (SENTINEL_CASSETTE=record), der vorbereitet und einsatzbereit, aber noch nicht ausgeführt ist.

Gegen den echten razorpay/mcp verifiziert (Testmodus)

Nicht nur ein Mock — SENTINEL wird gegen den echten, veröffentlichten Server geprüft:

  • Die Tool-Oberfläche ist echt. Das Referenzmanifest wurde live erfasst durch Ausführen von razorpay/mcp:latest über MCP stdio und Aufruf von tools/list (41 Tools); der Fixture lädt diese Erfassung wörtlich, die Parität ist also echt, nicht zirkulär. (Dies korrigierte mehrere aus der Doku abgeleitete Fehler — siehe DECISIONS.md ADR-003a.)

  • Die Durchsetzung gilt gegen den Live-Server. Mit Testschlüsseln wird ein create_refund verweigert, bevor er jemals an Razorpay weitergeleitet wird, und ein echter fetch_all_payments liefert die echte {entity,items,count}-Struktur durch den Proxy mit Schwärzung + Audit intakt.

  • Reproduzieren: export RAZORPAY_KEY_ID=rzp_test_… RAZORPAY_KEY_SECRET=… && make check-schemas-live (benötigt Docker). Nur Testschlüssel; es werden keine echten Geldbewegungen ausgeführt; Schlüssel werden nie in Dateien geschrieben.

Schnellstart (keine Zugangsdaten erforderlich)

Alles läuft offline im Fixture-Modus mit Cassette-Replay — kein API-Schlüssel, kein Netzwerk.

make install        # venv + dependencies
make test           # tiers 1-3 + the 5 load-bearing safety tests (~3s, no model)
make demo-cli       # THE HEADLINE: an injected refund DENIED with a plain reason
make eval           # golden set, per-model metrics, regression gates
make redteam        # the paired A/B (100% -> 0%), ablation, false-positive rate
make verify-audit   # walk the tamper-evident hash chain
make demo           # the operator surface at http://localhost:8080

make demo-cli Ausgabe (gekürzt):

2 · Prompt injection in the statement — the refund is DENIED
    the fooled model attempted: create_refund  amount=₹450.00
    ✕ DENIED [DENY_FAIL_CLOSED]
      Blocked: no rule permits create_refund for this agent, and the default is to deny.
    refunds actually executed in the fixture: 0
4 · The audit chain — verifiable, and it breaks when tampered
    ⛓ verified — 7 entries, chain intact
    after altering entry #2: ⛓ CHAIN BROKEN at entry #2 — refusing to certify

Öffentliche Demo bereitstellen (Fixture-Modus, keine Zugangsdaten)

Die Bedienoberfläche + API werden als ein Multi-Stage-Docker-Image ausgeliefert (verifiziert: es baut und bedient die SPA, die API und die Red-Team-Zahlen). Kostenlos hosten auf Render / Fly / Railway oder jedem Docker-Host — vollständige Schritte in DEPLOY.md:

docker build -t sentinel . && docker run -p 8080:8080 sentinel   # -> http://localhost:8080
# Render: New > Blueprint (reads render.yaml).  Fly: fly launch --no-deploy && fly deploy.

Setzen Sie keinen echten Schlüssel auf der öffentlichen Demo — sie ist dafür gedacht, ohne echte Daten zu laufen (es sind keine im Repository).

Architektur — Durchsetzung in einem Prozess, den das Modell nicht kontrolliert

Operator surface (React) ──REST+SSE──> Control-plane API (FastAPI)
                                              │
                                     Agent runtime (in-house loop)
                                     ├─ in-loop guard (layer 2, the experience)
                                     └─ provider abstraction (Groq/Gemini, cassettes)
                                              │  MCP protocol
                                   SENTINEL MCP proxy (layer 1 — THE GUARANTEE)
                                   classify → redact → evaluate → allow/deny/escalate
                                   → idempotency → forward → scan/quarantine → audit
                                              │
                        fixture upstream (default)  |  razorpay/mcp (live, test keys)

  cross-cutting: pure policy engine · redaction · hash-chained audit · approvals
  offline: eval harness (golden set) · red-team A/B  →  CI regression gates

Der MCP-Proxy ist ein echter MCP-Server, sodass ein völlig anderer MCP-Client, der darauf zeigt, derselben Policy unterliegt — eine Eigenschaft, die ein Prompt niemals haben kann. Beide Durchsetzungsebenen rufen die gleiche pure Policy-Engine über den gleichen Kontext- Builder auf; eine Abweichung wird als P0-Zwischenfall protokolliert. Vollständige Erläuterung und jede Entscheidung: docs/handbook.html und die Lektüre unten.

Wie es hält, selbst wenn das Modell falsch liegt

  • Pure Policy-Engineevaluate(policy_set, context), ohne I/O, erschöpfend getestet und eigenschaftsbasiert getestet. Eine Klassen-Invariante macht es unmöglich, dass eine Policy-Datei, wie auch immer geschrieben, Geldbewegungen ohne Freigabe automatisch erlaubt (bewiesen über 400 generierte Policies).

  • Schwärzung — das Modell arbeitet mit stabilen Token (ACCT_a17f), niemals mit echten PANs/Konten/VPAs; ein nicht ausgegebenes Token in einem Tool-Aufruf wird als Datenabfluss markiert. Die PII-Invariante wird bei jedem Commit über jede Ausgabeoberfläche getestet.

  • Vertrauens-Quarantäne — nicht vertrauenswürdiger Text wird in ein pro-Lauf eindeutiges Nonce-Trennzeichen gehüllt; provenance_guard schränkt die Berechtigungen des Agenten ein, sobald er nicht vertrauenswürdigen Inhalt aufnimmt.

  • Manipulationssicheres Audit — eine append-only SHA-256-Hash-Kette; der Verifizierer meldet den ersten Bruch an der exakten Position.

Was dies nicht ist

Kein Agent-Studio-Klon, kein Zahlungsprodukt, keine Allzweck-KI- Firewall, kein Betrugsmodell und nicht mit Razorpay verbunden.

Einschränkungen (die ehrlichen — vollständige Liste in LIMITATIONS.md)

  • Das Audit-Ledger ist manipulationssicher, nicht manipulationsfest: Jeder, der in die Datenbank schreiben kann, kann die gesamte Kette neu berechnen. Echte Widerstandsfähigkeit braucht einen externen Anker (ein RFC-6962-Transparenzprotokoll) oder Write-once-Speicher — nicht implementiert.

  • Prompt-Injection ist nicht gelöst. L1 (Verhaltensänderung) ist selbst mit aktivierten Guardrails ungleich null; das Design macht dies harmlos, anstatt so zu tun, als sei es unmöglich.

  • Die Offline-„Modelle" sind deterministische Platzhalter — echte Groq/Gemini-Adapter und die Cassette-Ebene sind gebaut und aktivieren sich, wenn ein Schlüssel vorhanden ist (SENTINEL_CASSETTE=record); das Durchsetzungsergebnis ist offline unabhängig davon beweisbar.

  • Die tools/call-Antworten des Agenten auf echten Daten werden nur auf Form/Enforcement validiert (das Testkonto ist leer); die Schwärzung echter PII wird an synthetischen Fixtures bewiesen, noch nicht an befüllten Live-Daten.

Dokumentation

Zahlen reproduzieren

git clone <repo> && cd sentinel && make install
SENTINEL_CASSETTE=replay make eval      # replays committed cassettes, no key -> same numbers
SENTINEL_CASSETTE=replay make redteam

Phasenweise gebaut gemäß docs/spec/11-BUILD-ORDER.md; 169 Tests grün (Stufen 1–3), mit fünf tragenden Sicherheitstests markiert als @pytest.mark.critical.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A transparent proxy and execution firewall that intercepts and audits AI agent tool calls against configurable security policies before forwarding them to downstream MCP servers. It provides safe execution environments with features like data redaction, anti-loop protection, and unified alert dispatching.
  • A
    license
    Not graded
    quality
    D
    maintenance
    A governance and control layer for MCP tools that manages tool requests as intents through policy-based approval, queuing, or blocking. It enables secure human oversight and audit trails for consequential agent actions across platforms like Claude Desktop and Cursor.
    1
    MIT No Attribution
  • A
    license
    Not graded
    quality
    A
    maintenance
    A local-first control plane for AI agent tools, providing policy enforcement, spend caps, rate limiting, and audit trails for MCP servers.
    1
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.

  • Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.

  • Runtime permission, approval, and audit layer for AI agent tool execution.

View all MCP Connectors

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/codeit-ronit/SENTINEL'

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