AgentGuard MCP
AgentGuard
Identitätssicherheit für KI-Agenten
AgentGuard ist eine identitätsbewusste Autorisierungsebene für autonome KI-Agenten.
Es gibt jedem Agenten eine eigene Maschinenidentität, begrenzt den Zugriff über OAuth-Scopes, bewertet kontextbezogene Richtlinien, bevor sensible Aktionen ausgeführt werden, und führt eine separat authentifizierte menschliche Genehmigungsgrenze ein, wenn autonome Autorität enden sollte.
Live-Produkt:
https://agentguard-eight.vercel.app
MCP-Autorisierungs-Backend:
https://github.com/haisamar/agentguard-mcp
Das Problem
KI-Agenten werden zunehmend mit realen Systemen verbunden:
CRMs
Finanzinstrumente
Support-Plattformen
interne APIs
Datenbanken
MCP-Server
Aber die Verbindung eines Agenten mit einem Tool wirft eine Sicherheitsfrage auf:
Nur weil ein Agent sich authentifizieren kann, sollte es ihm erlaubt sein, alles zu tun, was das Tool unterstützt?
Normalerweise nein.
Ein Vertriebsagent muss möglicherweise:
read CRM accounts
update opportunities
inspect support contextaber er sollte nicht automatisch in der Lage sein:
issue refunds
export customer data
modify security settingsUnd selbst ein Finanzagent, der legitimerweise über Rückerstattungsberechtigungen verfügt, benötigt möglicherweise eine menschliche Genehmigung, bevor er eine Rückerstattung mit hohem Wert ausführt.
AgentGuard demonstriert, wie Identität, Autorisierung, kontextbezogene Richtlinien und menschliche Kontrolle rund um die Ausführung von KI-Agenten geschichtet werden können.
Was AgentGuard tut
AgentGuard trennt die Autorisierung in mehrere Sicherheitsgrenzen:
AI Agent
↓
Machine Identity
↓
OAuth Scope Authorization
↓
Contextual Policy
↓
Human Approval if Required
↓
Controlled Execution
↓
Audit TrailAuthentifizierung allein bedeutet nicht unbegrenzte Autorität.
Live-Demo
Die öffentliche Demo kann ohne Authentifizierung erkundet werden:
https://agentguard-eight.vercel.app/demo
Sie enthält drei reale, persistierte Autorisierungsszenarien.
Related MCP server: Oakallow MCP Server
Szenario 1 – Von Menschen genehmigt
Ein Finanzagent fordert eine Rückerstattung über $750 an.
Finance Agent
↓
Authenticated machine identity
↓
finance:refund scope verified
↓
Refund exceeds $500 autonomous threshold
↓
APPROVAL_REQUIRED
↓
Authenticated human administrator approves
↓
Finance Agent executes approved refund
↓
ALLOWEndzustand:
EXECUTEDSzenario 2 – Von Menschen abgelehnt
Derselbe Finanzagent fordert eine weitere Rückerstattung über $750 an.
Der Agent besitzt die korrekte OAuth-Berechtigung, daher besteht die Anfrage die Scope-Prüfung.
Die kontextbezogene Richtlinie erfordert jedoch eine menschliche Genehmigung.
Finance Agent
↓
finance:refund ✓
↓
Refund > $500
↓
APPROVAL_REQUIRED
↓
Human Administrator
↓
DENY
↓
Finance Agent attempts execution
↓
DENYEndzustand:
DENIEDDies demonstriert:
Berechtigt zu sein, eine Aktion anzufordern, bedeutet nicht zwangsläufig, dass der Agent autorisiert ist, sie autonom auszuführen.
Szenario 3 – Scope blockiert
Ein Vertriebsagent versucht, eine Rückerstattung auszugeben.
Seine Identität enthält:
crm:read
crm:write
support:readaber das geschützte Tool erfordert:
finance:refundAgentGuard blockiert die Anfrage sofort.
Sales Agent
↓
Authenticated
↓
Missing finance:refund
↓
DENYDie kontextbezogene Richtlinie wird nie ausgewertet.
Eine menschliche Überprüfung wird nie erreicht.
Die Anfrage scheitert an der Grenze der geringsten Privilegien.
Architektur
AgentGuard trennt Maschinenauthentifizierung, Autorisierung mit geringsten Privilegien, kontextbezogene Risikoentscheidungen und menschliche Genehmigung, sodass ein authentifizierter KI-Agent niemals automatisch unbegrenzte Autorität erhält.
flowchart LR
AGENT["AI Agent<br/>Sales / Finance"]
AUTH0M["Auth0<br/>Machine Identity"]
TOKEN["OAuth Access Token<br/>Scoped Permissions"]
MCP["AgentGuard MCP<br/>Protected Tools"]
SCOPE{"Scope<br/>Authorized?"}
POLICY{"Contextual<br/>Policy"}
APPROVAL["Approval Request<br/>Persisted"]
AUTH0H["Auth0<br/>Human Identity"]
HUMAN{"Human<br/>Decision"}
EXEC["Controlled<br/>Execution"]
BLOCK["Execution<br/>Blocked"]
DB[("Supabase<br/>Approvals + Audit")]
AGENT --> AUTH0M
AUTH0M --> TOKEN
TOKEN --> MCP
MCP --> SCOPE
SCOPE -->|"Missing scope"| BLOCK
SCOPE -->|"Authorized"| POLICY
POLICY -->|"Low risk"| EXEC
POLICY -->|"Forbidden"| BLOCK
POLICY -->|"Sensitive"| APPROVAL
APPROVAL --> DB
APPROVAL --> AUTH0H
AUTH0H --> HUMAN
HUMAN -->|"Approve"| EXEC
HUMAN -->|"Deny"| BLOCK
EXEC --> DB
BLOCK --> DBIdentitätsmodell
AgentGuard trennt bewusst Maschinenidentitäten von menschlichen Identitäten.
Maschinenidentitäten
Jede Agentenlaufzeit erhält eine separate Auth0-Maschine-zu-Maschine-Identität.
Die Demo enthält drei Laufzeiten.
Identität | Rolle | OAuth-Scopes |
Vertriebsagent | Umsatzbetrieb |
|
Finanzagent | Finanzbetrieb |
|
Admin-Laufzeit | Sicherheitsverwaltung |
|
Dies verhindert, dass mehrere Agenten eine einzige, weitreichende Berechtigung gemeinsam nutzen.
Menschliche Identität
Sensible Entscheidungen werden durch eine separat authentifizierte Auth0-Benutzeridentität überprüft.
Der menschliche Administrator ist nicht dieselbe Identität wie die anfragende Maschine.
Beispiel:
Requested by
Finance Agent
Machine Identity
Reviewed by
Human Administrator
Human IdentityDies schafft eine klare Trennung zwischen:
machine authorityund:
human approval authorityAutorisierungsmodell
AgentGuard verwendet eine mehrschichtige Autorisierung.
1. Authentifizierung
Auth0 stellt die Identität des aufrufenden Agenten fest.
Der MCP-Server empfängt ein OAuth-Zugriffstoken, das die Maschinenidentität enthält.
2. OAuth-Scope-Autorisierung
Jedes geschützte MCP-Tool deklariert die Berechtigung, die für seinen Aufruf erforderlich ist.
Beispiel:
issue_refund
requires
finance:refundWenn der Agent nicht über den erforderlichen Scope verfügt:
DENYKeine Richtlinienauswertung oder menschliche Eskalation ist erforderlich.
3. Kontextbezogene Richtlinie
Das Bestehen der OAuth-Scope-Prüfung garantiert nicht automatisch die Ausführung.
AgentGuard bewertet den Kontext der angeforderten Aktion.
Die aktuellen Demonstrationsregeln umfassen:
Refund <= $500
→ ALLOW
Refund > $500
→ APPROVAL_REQUIRED
Customer data export
→ APPROVAL_REQUIRED
Customer deletion
→ DENYDies trennt:
Can this identity request this type of operation?von:
Should this exact operation execute autonomously?4. Menschliche Genehmigung (Human-in-the-Loop)
Sensible Vorgänge werden pausiert und persistiert.
Das geschützte Administrator-Dashboard zeigt die ausstehende Anfrage.
Der authentifizierte Mensch kann dann wählen:
Approveoder:
DenyDie Entscheidung wird persistiert und zum Sicherheitsauditpfad hinzugefügt.
5. Genehmigungsgebundene Ausführung
Eine menschliche Genehmigung führt die Aktion nicht direkt aus.
Die ursprüngliche Maschinenidentität kehrt zurück und fordert die Ausführung an.
AgentGuard überprüft dann:
Does the approval exist?
Is it APPROVED?
Does the approval belong to this agent?
Does it match this action?
Has it already been executed?Erst dann kann die Ausführung fortgesetzt werden.
6. Replay-Schutz
Erfolgreich ausgeführte Genehmigungen gehen über in:
EXECUTEDEin zweiter Versuch, dieselbe Genehmigung auszuführen, wird blockiert.
EXECUTED
↓
second execution attempt
↓
DENYDer Replay-Versuch wird als Sicherheitsereignis protokolliert.
Administrator-Konsole
Das geschützte Dashboard ist verfügbar unter:
/dashboardEs erfordert eine Auth0-Authentifizierung.
Die Administrator-Konsole bietet:
Maschinenidentitätsinventar
gewährte OAuth-Scopes
Kontext des authentifizierten menschlichen Bedieners
ausstehende Genehmigungen
Genehmigen-/Ablehnen-Steuerelemente
Autorisierungs-Trace-Explorer
Sicherheitsaktivitätsfeed
detaillierte Audit-Ereignisprüfung
Genehmigungsverlauf
Visualisierung von Maschinen- vs. menschlicher Identität
Rohidentitäts- und Auditkontext bleibt hinter der Authentifizierung geschützt.
Öffentliche Demo
Die öffentliche Demo existiert separat unter:
/demoSie ist absichtlich schreibgeschützt.
Bevor Daten den Browser erreichen, werden private Sicherheitsinformationen entfernt.
Die öffentliche Demo legt nicht offen:
Auth0 subject IDs
machine client IDs
administrator email addresses
OAuth access tokens
Supabase credentials
raw audit metadata
private approval identifiersDie öffentliche Oberfläche empfängt nur bereinigte Szenariodaten.
Autorisierungs-Trace-Explorer
AgentGuard enthält einen interaktiven Trace-Explorer, der persistierte Sicherheitsszenarien rekonstruiert.
Benutzer können wechseln zwischen:
Human Approved
Human Denied
Scope BlockedJeder Trace visualisiert:
01 Agent Identity
02 Scope Check
03 Contextual Policy
04 Human Review
05 ExecutionDies macht den Autorisierungslebenszyklus verständlich, ohne Zugriff auf den MCP-Inspektor, das Auth0-Dashboard oder die Datenbank zu benötigen.
Sicherheitsaktivität
Jede wichtige Autorisierungsentscheidung wird als Audit-Ereignis aufgezeichnet.
Beispielentscheidungen umfassen:
ALLOW
DENY
APPROVAL_REQUIRED
APPROVEDDie Auswahl eines Ereignisses öffnet eine detaillierte Sicherheitsansicht mit Informationen wie:
Identity
Identity Type
Decision
Action
Required Scope
Reason
Approval Reference
Timestamp
Event ID
Security MetadataBeispiel für eine Autorisierungsablehnung:
Sales Agent
Action
issue_refund
Decision
DENY
Required Scope
finance:refund
Granted Scopes
crm:read
crm:write
support:read
Missing Scope
finance:refund
Security Event
authorization_failureGenehmigungslebenszyklus
Sensible Aktionen werden durch persistierte Genehmigungsdatensätze dargestellt.
Verfügbare Zustände:
PENDING
APPROVED
DENIED
EXECUTEDErfolgreicher Ablauf:
PENDING
↓
APPROVED
↓
EXECUTEDAbgelehnter Ablauf:
PENDING
↓
DENIEDAgentGuard trennt außerdem:
reviewed_byvon:
approved_bydamit eine abgelehnte Anfrage korrekt darstellen kann:
status = DENIED
reviewed_by = Human Administrator
approved_by = nullTechnologie
AgentGuard ist gebaut mit:
Identität & Autorisierung
Auth0
OAuth 2.0
Machine-to-Machine Applications
Human Authentication
Scoped Access TokensAgentenoberfläche
Model Context Protocol
FastMCPBackend
Python
Starlette
UvicornAnwendung
Next.js 16
React
TypeScript
Tailwind CSSPersistenz
Supabase
PostgreSQL
Row Level SecurityBereitstellung
Vercel
GitHubRepository-Struktur
agentguard/
│
├── src/
│ ├── app/
│ │ ├── dashboard/
│ │ │ ├── ApprovalButtons.tsx
│ │ │ ├── SecurityActivity.tsx
│ │ │ ├── TraceExplorer.tsx
│ │ │ ├── actions.ts
│ │ │ ├── layout.tsx
│ │ │ └── page.tsx
│ │ │
│ │ ├── demo/
│ │ │ ├── PublicTraceExplorer.tsx
│ │ │ └── page.tsx
│ │ │
│ │ └── page.tsx
│ │
│ ├── lib/
│ │ ├── agentguard-data.ts
│ │ ├── auth0.ts
│ │ └── public-demo-data.ts
│ │
│ └── proxy.ts
│
├── package.json
└── README.mdDer Python-MCP-Autorisierungsserver wird separat gepflegt:
https://github.com/haisamar/agentguard-mcp
Backend-MCP-Server
Das begleitende Backend implementiert:
Auth0-Zugriffstoken-Validierung
OAuth-Metadaten für geschützte Ressourcen
MCP-Tool-Autorisierung
Durchsetzung erforderlicher Scopes
kontextbezogene Richtlinienauswertung
Genehmigungserstellung
Durchsetzung menschlicher Genehmigungen
genehmigungsgebundene Ausführung
Replay-Schutz
Supabase-Persistenz
Sicherheitsauditprotokollierung
Backend-Repository:
https://github.com/haisamar/agentguard-mcp
MCP-Tools
Der aktuelle Sicherheitsprototyp umfasst:
search_accounts
issue_refund
list_pending_approvals
approve_action
execute_approved_refundBeispiel:
Finance Agent
finance:refund
↓
issue_refund($100)
↓
ALLOWim Vergleich zu:
Finance Agent
finance:refund
↓
issue_refund($750)
↓
APPROVAL_REQUIREDim Vergleich zu:
Sales Agent
no finance:refund
↓
issue_refund($750)
↓
DENYDatenbanksicherheit
Genehmigungs- und Auditdatensätze liegen in Supabase/PostgreSQL.
Auf den zugrunde liegenden Tabellen ist Zeilenebenen-Sicherheit aktiviert.
Für sensible AgentGuard-Datensätze sind keine öffentlichen Browserrichtlinien definiert.
Server-seitige Komponenten verwenden geschützte Umgebungsvariablen.
Der Supabase-Geheimschlüssel wird niemals an clientseitiges JavaScript übergeben.
Öffentliche Demoinformationen werden serverseitig bereinigt, bevor sie an interaktive Client-Komponenten übergeben werden.
Lokale Entwicklung
Voraussetzungen
Node.js
Auth0 tenant
Supabase project
AgentGuard MCP backendKlonen:
git clone https://github.com/haisamar/agentguard.git
cd agentguardInstallieren:
npm installErstellen:
.env.localmit Ihrer eigenen Umgebungskonfiguration.
Beispielvariablen:
SUPABASE_URL=
SUPABASE_SECRET_KEY=
AUTH0_DOMAIN=
AUTH0_CLIENT_ID=
AUTH0_CLIENT_SECRET=
AUTH0_SECRET=
APP_BASE_URL=http://localhost:3000
AGENTGUARD_ADMIN_EMAIL=Committen Sie niemals .env.local.
Ausführen:
npm run devDann öffnen Sie:
http://localhost:3000Routenmodell
/
Public product page
/demo
Public sanitized security demo
/dashboard
Auth0-protected administrator consoleDiese Trennung ermöglicht es dem Projekt, als Portfolio-Projekt leicht überprüfbar zu bleiben, ohne privilegierte administrative Funktionalität offenzulegen.
Produktion
Das Frontend ist auf Vercel bereitgestellt:
https://agentguard-eight.vercel.app
Die Produktionsauthentifizierung verwendet eine Auth0-Regular-Web-Anwendung mit expliziten Produktions-Callback-, Logout- und Ursprungs-URLs.
Geheimnisse werden als Vercel-Umgebungsvariablen gespeichert und nicht in Git committet.
Demonstrierte Sicherheitsgrenzen
AgentGuard demonstriert mehrere Identitätssicherheitskonzepte in einem System:
Authentifizierung ≠ Autorisierung
Ein authentifizierter Agent kann dennoch abgelehnt werden.
Geringste Privilegien
Agenten erhalten nur die Scopes, die ihre Rolle erfordert.
Kontextbewusste Autorisierung
Die Autorisierung kann von Details der Aktion abhängen, nicht nur vom Aufrufer.
Aufgabentrennung
Eine Maschine kann eine Aktion anfordern, während ein Mensch sie unabhängig genehmigt.
Human-in-the-Loop-Kontrolle
Autonome Ausführung kann an definierten Risikogrenzen stoppen.
Genehmigungsgebundene Ausführung
Die Genehmigung ist mit der anfragenden Identität und Aktion verknüpft.
Replay-Schutz
Bereits ausgeführte Genehmigungen können nicht wiederverwendet werden.
Auditierbarkeit
Autorisierungsentscheidungen werden mit Identitäts- und Entscheidungskontext persistiert.
Öffentliche/private Trennung
Portfolio-Besucher können bereinigte Szenarien erkunden, ohne Zugriff auf administrative Daten zu erhalten.
Was ich erkunden wollte
AgentGuard wurde gebaut, um eine Frage zu untersuchen:
Wie sieht Identitätssicherheit aus, wenn der Benutzer nicht immer ein Mensch ist?
Traditionelle Anwendungssicherheit geht oft davon aus, dass sich Menschen authentifizieren und dann direkt mit Systemen interagieren.
KI-Agenten verändern dieses Modell.
Autonome Laufzeiten können:
call APIs
use tools
modify records
trigger workflows
take financial actionsDas macht Identität und Autorisierung auf der Agentenebene zunehmend wichtig.
AgentGuard untersucht, wie vertraute IAM-Konzepte wie:
machine identity
OAuth scopes
least privilege
separation of duties
human approval
auditabilityauf die Ausführung von KI-Agenten angewendet werden können.
Aktueller Umfang
AgentGuard ist ein Sicherheits-Portfolio-Prototyp, kein Produktions-IAM-Produkt.
Einige bewusste Grenzen umfassen:
kontextbezogene Richtlinien sind derzeit im Code definiert
Maschinenidentitäten sind Demonstrationsrollen zugeordnet
die Autorisierung des menschlichen Administrators verwendet derzeit eine Anwendungsebene-Allowlist
das Richtlinienmanagement hat noch keine eigene Steuerungsebene
Datenbank-Auditdatensätze sind nicht kryptografisch unveränderbar
verteiltes Sperren in der Produktion liegt außerhalb des Prototyp-Umfangs
die MCP-Backend-Bereitstellung ist für kontrollierte Tests ausgelegt
der Ablauf von Genehmigungen ist derzeit nicht implementiert
Diese Einschränkungen sind bewusst dokumentiert und nicht versteckt.
Mögliche Erweiterungen
Zukünftige Versionen könnten erkunden:
Auth0 role-based administration
policy-as-code
policy versioning
agent identity registry
workload identity federation
delegated authorization
resource-level authorization
organization isolation
approval expiration
time-bound privileges
step-up authentication
signed audit events
SIEM integration
policy simulation
risk scoring
dynamic authorization
production MCP deploymentVerwandtes Repository
AgentGuard MCP
Python-Autorisierungsserver, Richtlinien-Engine, Genehmigungsdurchsetzung und Audit-Persistenz:
https://github.com/haisamar/agentguard-mcp
Live-Projekt
AgentGuard
https://agentguard-eight.vercel.app
Interaktive Demo
https://agentguard-eight.vercel.app/demo
Administrator-Konsole
https://agentguard-eight.vercel.app/dashboardAuthentifizierung erforderlich.
This server cannot be installed
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 gradedqualityDmaintenanceA 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.1MIT No Attribution

Oakallow MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceRuntime permission, approval, and audit governance for AI agent tool execution, enabling human oversight of risky actions via an MCP server.1MIT- 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.
- FlicenseNot gradedqualityCmaintenanceA protected Model Context Protocol server that gives AI agents distinct machine identities, enforces least-privilege OAuth permissions, applies contextual authorization policies, and pauses sensitive actions for human approval.
Related MCP Connectors
Runtime permission, approval, and audit layer for AI agent tool execution.
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
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/haisamar/agentguard'
If you have feedback or need assistance with the MCP directory API, please join our Discord server