safe-cart-ai
SafeCart-AI
Bereich: 01 — AI Growth & Agentic Commerce
Problem: Bald werden Menschen nicht mehr über den Bot eines Händlers einkaufen, sondern ihren eigenen KI-Agenten damit beauftragen, für sie einzukaufen. Händler brauchen eine sichere Möglichkeit, einem KI-Agenten das Durchsuchen ihres Katalogs und das Ausgeben von Geld im Namen eines Kunden zu erlauben. Dieses Projekt liefert diese fehlende Vertrauensebene.
Funktionen
SafeCart-AI stellt den Produktkatalog eines Händlers jedem MCP-kompatiblen KI-Agenten (wie Claude) über das Model Context Protocol bereit.
Der Agent kann Produkte durchsuchen und Käufe anfragen, aber jeder Kauf muss vor der Erstellung einer Razorpay-Testbestellung eine Policy-Engine durchlaufen.
Die Policy-Engine erzwingt:
Erklärbarkeit — der Agent muss einen sinnvollen Grund für den Kauf angeben.
Ausgabenlimit — Käufe werden durch Transaktionslimits und ein Sitzungslimit begrenzt.
Freigabeprozess — mittlere Beträge werden zur menschlichen Genehmigung weitergeleitet, anstatt automatisch ausgeführt zu werden.
Prüfpfad — Kaufversuche werden mit Anfrage, Begründung und Entscheidung protokolliert.
Fehlerbehandlung — ungültige Anfragen wie nicht vorrätige Produkte werden mit einer klaren Erklärung abgelehnt.
Related MCP server: agent-commerce-mcp-server
Architektur
AI Agent (Claude, etc.)
│
│ MCP tools:
│ browse_products
│ get_product_details
│ request_purchase
│ get_audit_trail
▼
mcp_server.py
│
▼
policy.py ──────────────► SQLite audit log
│ logs/audit.db
│
│ approved requests
▼
razorpay_client.py ────────► Razorpay Test-Mode Orders API
dashboard.py (Flask)
│
└────────────────────► Human approve/reject UIWarum dieses Design?
Die Zahlungsintegration ist bewusst von der Policy-Engine getrennt.
razorpay_client.py wird erst aufgerufen, nachdem die Policy-Ebene eine Kaufanfrage genehmigt hat. Dadurch bleibt die Entscheidungslogik von der Zahlungsintegration getrennt und die Kaufentscheidung wird nachvollziehbar und prüfbar.
Das Projekt basiert auf dem Prinzip:
KI kann einen Kauf anfragen, die Policy entscheidet, ob er erlaubt ist, und risikoreichere Käufe können eine menschliche Genehmigung erfordern.
Policy-Regeln
Die aktuelle Demo verwendet folgende Limits:
Kaufbetrag | Entscheidung |
≤ 2.000 ₹ | Automatisch genehmigt |
2.001–6.000 ₹ | Menschliche Genehmigung erforderlich |
> 6.000 ₹ | Automatisch abgelehnt |
Sitzungssumme > 15.000 ₹ | Abgelehnt |
Diese Werte können in policy.py angepasst werden.
Der Agent muss außerdem einen sinnvollen Kaufgrund angeben. Anfragen mit fehlendem oder sehr kurzem Grund werden abgelehnt.
Projektstruktur
agent-commerce-gateway/
│
├── mcp_server.py
├── policy.py
├── razorpay_client.py
├── dashboard.py
├── test_agent.py
├── requirements.txt
├── README.md
├── .env.example
│
├── data/
│ └── products.json
│
├── templates/
│ └── dashboard.html
│
└── logs/
└── audit.dbHauptdateien
Datei | Zweck |
| Stellt Händler- und Kauf-Funktionen als MCP-Tools bereit |
| Wendet Kaufrichtlinien an und protokolliert Entscheidungen |
| Erstellt Razorpay-Testbestellungen |
| Stellt das Dashboard für menschliche Genehmigungen/Ablehnungen bereit |
| Simuliert einen KI-Agenten und testet den MCP-Ablauf |
| Produktkatalog des Händlers |
| SQLite-Prüfdatenbank |
Einrichtung
1. Virtuelle Umgebung erstellen
Windows:
python -m venv venv
venv\Scripts\activateLinux/macOS:
python3 -m venv venv
source venv/bin/activate2. Abhängigkeiten installieren
pip install -r requirements.txt3. Razorpay-Testmodus konfigurieren
Erstellen Sie eine .env-Datei aus .env.example und fügen Sie Ihre Razorpay-TESTMODUS-Anmeldedaten hinzu:
RAZORPAY_KEY_ID=your_test_key_id
RAZORPAY_KEY_SECRET=your_test_key_secretÜbertragen Sie .env oder echte Anmeldedaten niemals auf GitHub.
Projekt ausführen
1. MCP-Server starten
python mcp_server.pyDadurch wird der Server gestartet, mit dem sich ein MCP-kompatibler KI-Agent verbindet.
2. KI-Agenten verbinden
Fügen Sie für Claude Desktop den MCP-Server zu Ihrer Claude-Desktop-Konfiguration hinzu:
{
"mcpServers": {
"agent-commerce-gateway": {
"command": "python",
"args": [
"/absolute/path/to/mcp_server.py"
]
}
}
}Ersetzen Sie /absolute/path/to/mcp_server.py durch den tatsächlichen Pfad auf Ihrem Computer.
Starten Sie Claude Desktop nach dem Speichern der Konfiguration neu.
Sie können den verbundenen KI-Agenten dann zum Beispiel fragen:
Browse this merchant's products.oder:
Buy me the wireless earbuds because I need them for online classes.3. Dashboard starten
Öffnen Sie ein weiteres Terminal:
python dashboard.pyÖffnen Sie dann:
http://localhost:5001Das Dashboard dient zur Anzeige des Prüfpfads und zur Überprüfung von Käufen, die eine menschliche Genehmigung erfordern.
So funktioniert der Kaufablauf
Beispiel 1 — Automatisch genehmigter Kauf
Angenommen, der Benutzer fragt:
Buy me the Wireless Earbuds because I need them for online classes.Der KI-Agent sendet eine Kaufanfrage mit Produkt, Menge und Grund.
Wenn der Gesamtbetrag innerhalb des automatischen Genehmigungslimits liegt:
Purchase Request
↓
Policy Check
↓
Approved
↓
Razorpay Test OrderBeispiel 2 — Menschliche Genehmigung
Angenommen, der Benutzer fordert die mechanische Tastatur für 3.499 ₹ an.
Da sie über dem automatischen Genehmigungslimit, aber innerhalb des Bereichs für die menschliche Prüfung liegt:
Purchase Request
↓
Policy Check
↓
Pending Human Approval
↓
Dashboard
↓
Human Approves / RejectsHinweis zum Prototyp: Die aktuelle Implementierung protokolliert die Dashboard-Genehmigung in der Prüfdatenbank. Eine Produktionsimplementierung sollte diese Genehmigung mit dem anschließenden Schritt der Razorpay-Bestellabwicklung verbinden.
Beispiel 3 — Saubere Ablehnung
Wenn ein angefragtes Produkt nicht auf Lager ist:
Purchase Request
↓
Policy Check
↓
Out of Stock
↓
Rejected
↓
Clear ExplanationDas System schlägt nicht stillschweigend fehl und fährt auch nicht mit der Zahlung fort.
MCP-Tools
Der MCP-Server stellt vier Hauptwerkzeuge bereit:
browse_products()
Gibt den aktuellen Produktkatalog des Händlers zurück.
get_product_details(product_id)
Gibt detaillierte Informationen zu einem bestimmten Produkt zurück.
request_purchase(product_id, quantity, reason)
Fordert einen Kauf im Namen des Benutzers an. Die Anfrage wird von der Policy-Engine ausgewertet, bevor eine Razorpay-Bestellung erstellt wird.
get_audit_trail()
Gibt Kaufversuche und deren Entscheidungen für die aktuelle Sitzung zurück.
Prüfpfad
Jeder Kaufversuch wird in SQLite gespeichert.
Der Prüfdatensatz enthält:
Zeitstempel
Sitzungs-ID
Produkt-ID
Produktname
Preis
Menge
Kaufgrund
Entscheidung
Begründung der Entscheidung
Dadurch ist es möglich zu verstehen:
Was hat die KI angefragt? Warum hat sie es angefragt? Was hat das System entschieden?
Demo-Skript
Für die Projektvorführung:
Verbinden Sie den MCP-Server mit dem KI-Agenten.
Bitten Sie den KI-Agenten, den Händlerkatalog zu durchsuchen.
Fordern Sie die kabellosen Ohrhörer (p001, 1.499 ₹) mit einem klaren Grund an.
Zeigen Sie, dass der Kauf automatisch genehmigt und eine Razorpay-Testbestellung erstellt wird.
Fordern Sie die mechanische Tastatur (p003, 3.499 ₹) an.
Zeigen Sie, dass eine menschliche Genehmigung über das Dashboard erforderlich ist.
Fordern Sie die 4K-Webcam (p005) an.
Zeigen Sie, dass die Anfrage für das nicht vorrätige Produkt sauber abgelehnt wird.
Zeigen Sie den vollständigen Prüfpfad.
Testen
Ein Testagent ist enthalten, um den Haupt-MCP-Ablauf zu testen.
Ausführen:
python test_agent.pyDas Testskript demonstriert:
MCP-Verbindung
Produktkatalog durchsuchen
Kauf mit geringem Wert
Kauf mit mittlerem Wert
Kauf eines nicht vorrätigen Produkts
Abruf des Prüfpfads
Was schiefging und wie es gelöst wurde
1. Ungültige Kaufgründe
Die Policy-Ebene verlangt für jeden Kauf einen sinnvollen Grund. Anfragen mit fehlendem oder sehr kurzem Grund werden abgelehnt, anstatt einen unerklärten Kauf zu erlauben.
2. Nicht vorrätige Produkte
Eine Anfrage für ein nicht vorrätiges Produkt wird in der Policy-Ebene behandelt und als klare Ablehnung zurückgegeben, anstatt einen Absturz der Anwendung zu verursachen.
3. Razorpay-Fehler
Die Razorpay-Bestellerstellung ist getrennt von der Policy-Entscheidung gekapselt. Wenn die Erstellung einer Testbestellung nach einer Policy-Genehmigung fehlschlägt, fängt der MCP-Server die Ausnahme ab und gibt ein klares payment_error-Ergebnis zurück, anstatt abzustürzen.
4. Ausgabengrenzen
Die Kaufsummen werden vor der Genehmigung sowohl gegen die Transaktionslimits als auch gegen das Sitzungslimit geprüft.
Einschränkungen / Nächste Schritte
Dies ist ein Prototyp, der auf den Hackathon-/Demo-Umfang ausgelegt ist.
Die Sitzungsidentität ist vereinfacht: Die aktuelle Implementierung verwendet eine Sitzungs-ID pro Serverlauf. Ein Produktionssystem sollte Anfragen authentifizierten Agenten- und Benutzeridentitäten zuordnen.
Die Richtlinienschwellenwerte sind statisch: Eine Produktionsversion könnte die Limits mithilfe der Vertrauenshistorie des Agenten, Benutzereinstellungen, Risikobewertungen oder Händlerregeln anpassen.
Nur Testmodus-Zahlungen: Das Projekt erstellt Razorpay-Testbestellungen und implementiert keinen vollständigen Zahlungseinzugsprozess.
Dashboard-Authentifizierung: Das aktuelle Flask-Dashboard dient der Demonstration und sollte in der Produktion Authentifizierung und Autorisierung verwenden.
Ausführung der menschlichen Genehmigung: Der aktuelle Prototyp protokolliert eine menschliche Genehmigung in der Prüfdatenbank; eine Produktionsimplementierung sollte die Genehmigungsaktion mit dem anschließenden Zahlungs-/Auftragsausführungsschritt verbinden.
Prototypsicherheit: Eine Produktionsbereitstellung würde stärkere Validierung, Authentifizierung, Autorisierung, sicheres Sitzungsmanagement und Schutz vor böswilligen oder kompromittierten Agenten erfordern.
Zukünftiger Umfang
Mögliche zukünftige Verbesserungen umfassen:
Agentenauthentifizierung und Identitätsmanagement
Benutzerspezifische Ausgabengrenzen
Dynamische Risikobewertung
Vertrauens-/Reputationsbewertung von Agenten
Adaptive Richtlinienschwellenwerte
Webhooks für Zahlungsstatus
Vollständiger Zahlungseinzugsprozess
Sichere Dashboard-Authentifizierung
Betrugserkennung
Erweiterte Analysen
Umfassendere automatisierte Tests
🏆 Ein-Satz-Werbespruch
SafeCart-AI ist ein richtliniengesteuertes MCP-Commerce-Gateway, das es KI-Agenten ermöglicht, im Namen von Benutzern einzukaufen, während erklärbare Ausgabengrenzen, menschliche Genehmigung für riskante Käufe und ein vollständiger Prüfpfad durchgesetzt werden.
Kernprinzip
AI Agent
↓
Request Purchase
↓
Policy Engine
↓
┌──────────────┬─────────────────┬──────────────┐
│ │ │
Approved Human Review Rejected
│ │ │
↓ ↓ ↓
Razorpay Dashboard No Payment
Test Order Approval
│ │
└──────────────┴─────────────────┐
↓
Audit TrailKI fragt an. Die Policy entscheidet. Menschen kontrollieren das Risiko. Die Zahlung wird nur nach Autorisierung ausgeführt.
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
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to perform e-commerce operations including product search, budget-constrained shopping recommendations, and sustainability analysis. Includes a secure HTTP bridge with OAuth integration and observability features for production deployment.
- AlicenseAqualityDmaintenanceEnables AI agents to create, compare, and track purchases with structured buying workflows, offer comparison, and merchant verification.5MIT
- AlicenseNot gradedqualityFmaintenanceEnables intelligent ecommerce tools for agents and applications, including product catalog access, product addition, and shopping policies.1Apache 2.0
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to discover products, build carts, and complete purchases across multiple downstream commerce services through a secure, contract-driven API.
Related MCP Connectors
Policy review and purchase discovery for AI-agent commerce actions.
Secure agent purchasing with human-approved virtual cards, receipts, and audit trails.
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/Jai-095/safe-cart-ai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server