safe-cart-ai
SafeCart-AI
Track: 01 — AI Growth & Agentic Commerce
Problema: Pronto la gente no comprará chateando con el bot de un comerciante: pedirán a su propio agente de IA que compre por ellos. Los comerciantes necesitan una forma segura de permitir que un agente de IA navegue por su catálogo y gaste dinero en nombre de un cliente. Este proyecto proporciona esa capa de confianza que falta.
Qué hace
SafeCart-AI expone el catálogo de productos de un comerciante a cualquier agente de IA compatible con MCP (como Claude) a través del Model Context Protocol.
El agente puede navegar por los productos y solicitar compras, pero cada compra debe pasar por un motor de políticas antes de que se cree el pedido en modo de prueba de Razorpay.
El motor de políticas aplica:
Explicabilidad — el agente debe proporcionar un motivo significativo para la compra.
Gasto limitado — las compras están controladas por límites por transacción y un tope de gasto por sesión.
Control de acceso — las compras de importe medio se envían para aprobación humana en lugar de ejecutarse automáticamente.
Registro de auditoría — los intentos de compra se registran con qué se solicitó, por qué se solicitó y qué decidió el sistema.
Gestión controlada de fallos — las solicitudes no válidas, como productos sin stock, se rechazan con una explicación clara.
Related MCP server: agent-commerce-mcp-server
Arquitectura
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 UIPor qué este diseño
La integración de pagos está deliberadamente separada del motor de políticas.
razorpay_client.py solo se llama después de que la capa de políticas apruebe una solicitud de compra. Esto mantiene la lógica de decisión separada de la integración de pagos y hace que la decisión de compra sea explicable y auditable.
El proyecto está diseñado en torno al principio:
La IA puede solicitar una compra, la política decide si está permitida y las compras de mayor riesgo pueden requerir aprobación humana.
Reglas de la política
La demo actual utiliza los siguientes límites:
Importe de la compra | Decisión |
≤ ₹2,000 | Aprobación automática |
₹2,001–₹6,000 | Requiere aprobación humana |
> ₹6,000 | Rechazo automático |
Total de la sesión > ₹15,000 | Rechazado |
Estos valores se pueden ajustar en policy.py.
El agente también debe proporcionar un motivo de compra significativo. Las solicitudes con un motivo ausente o muy corto se rechazan.
Estructura del proyecto
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.dbArchivos principales
Archivo | Propósito |
| Expone la funcionalidad de comercio y compra como herramientas MCP |
| Aplica las políticas de compra y registra las decisiones |
| Crea pedidos de Razorpay en modo de prueba |
| Proporciona el panel de aprobación/rechazo humano |
| Simula un agente de IA y prueba el flujo MCP |
| Catálogo de productos del comerciante |
| Base de datos de auditoría SQLite |
Configuración
1. Crear un entorno virtual
Windows:
python -m venv venv
venv\Scripts\activateLinux/macOS:
python3 -m venv venv
source venv/bin/activate2. Instalar las dependencias
pip install -r requirements.txt3. Configurar el modo de prueba de Razorpay
Crea un archivo .env a partir de .env.example y añade tus credenciales de Razorpay en MODO DE PRUEBA:
RAZORPAY_KEY_ID=your_test_key_id
RAZORPAY_KEY_SECRET=your_test_key_secretNunca hagas commit de .env ni de credenciales reales a GitHub.
Ejecutar el proyecto
1. Iniciar el servidor MCP
python mcp_server.pyEsto inicia el servidor al que se conecta un agente de IA compatible con MCP.
2. Conectar un agente de IA
Para Claude Desktop, añade el servidor MCP a tu configuración de Claude Desktop:
{
"mcpServers": {
"agent-commerce-gateway": {
"command": "python",
"args": [
"/absolute/path/to/mcp_server.py"
]
}
}
}Reemplaza /absolute/path/to/mcp_server.py por la ruta real en tu ordenador.
Reinicia Claude Desktop después de guardar la configuración.
A continuación, puedes pedirle al agente de IA conectado:
Browse this merchant's products.o:
Buy me the wireless earbuds because I need them for online classes.3. Iniciar el panel
Abre otra terminal:
python dashboard.pyA continuación, abre:
http://localhost:5001El panel se utiliza para ver el registro de auditoría y revisar las compras que requieren aprobación humana.
Cómo funciona el flujo de compra
Ejemplo 1 — Compra aprobada automáticamente
Supón que el usuario pide:
Buy me the Wireless Earbuds because I need them for online classes.La IA envía una solicitud de compra con el producto, la cantidad y el motivo.
Si el total está dentro del límite de aprobación automática:
Purchase Request
↓
Policy Check
↓
Approved
↓
Razorpay Test OrderEjemplo 2 — Aprobación humana
Supón que el usuario solicita el Mechanical Keyboard con un precio de ₹3,499.
Al estar por encima del límite de aprobación automática pero dentro del rango de revisión humana:
Purchase Request
↓
Policy Check
↓
Pending Human Approval
↓
Dashboard
↓
Human Approves / RejectsNota sobre el prototipo: La implementación actual registra la aprobación del panel en la base de datos de auditoría. Una implementación de producción debería conectar esa aprobación con el paso posterior de creación del pedido en Razorpay.
Ejemplo 3 — Rechazo controlado
Si un producto solicitado no tiene stock:
Purchase Request
↓
Policy Check
↓
Out of Stock
↓
Rejected
↓
Clear ExplanationEl sistema no falla silenciosamente ni continúa con el pago.
Herramientas MCP
El servidor MCP expone cuatro herramientas principales:
browse_products()
Devuelve el catálogo de productos actual del comerciante.
get_product_details(product_id)
Devuelve información detallada de un producto específico.
request_purchase(product_id, quantity, reason)
Solicita una compra en nombre del usuario. El motor de políticas evalúa la solicitud antes de que se cree cualquier pedido de Razorpay.
get_audit_trail()
Devuelve los intentos de compra y sus decisiones para la sesión actual.
Registro de auditoría
Cada intento de compra se almacena en SQLite.
El registro de auditoría incluye:
Marca de tiempo
ID de sesión
ID de producto
Nombre del producto
Precio
Cantidad
Motivo de la compra
Decisión
Explicación de la decisión
Esto permite comprender:
¿Qué solicitó la IA? ¿Por qué lo solicitó? ¿Qué decidió el sistema?
Guion de la demo
Para la demostración del proyecto:
Conecta el servidor MCP al agente de IA.
Pide al agente de IA que navegue por el catálogo del comerciante.
Solicita los Wireless Earbuds (p001, ₹1,499) con un motivo claro.
Muestra que la compra se aprueba automáticamente y que se crea un pedido de prueba de Razorpay.
Solicita el Mechanical Keyboard (p003, ₹3,499).
Muestra que requiere aprobación humana a través del panel.
Solicita la 4K Webcam (p005).
Muestra que la solicitud de producto sin stock se rechaza de forma controlada.
Muestra el registro de auditoría completo.
Pruebas
Se incluye un agente de prueba para ejercitar el flujo principal de MCP.
Ejecuta:
python test_agent.pyEl script de prueba demuestra:
Conexión MCP
Navegación por el catálogo de productos
Compra de bajo importe
Compra de importe medio
Compra de producto sin stock
Recuperación del registro de auditoría
Qué falló y cómo se resolvió
1. Motivos de compra no válidos
La capa de políticas exige un motivo significativo para cada compra. Las solicitudes con un motivo ausente o muy corto se rechazan en lugar de permitir una compra sin explicación.
2. Productos sin stock
Una solicitud de producto sin stock se gestiona dentro de la capa de políticas y se devuelve como un rechazo claro en lugar de provocar un fallo de la aplicación.
3. Fallo de Razorpay
La creación de pedidos de Razorpay se encapsula por separado de la decisión de la política. Si la creación del pedido de prueba falla después de una aprobación de la política, el servidor MCP captura la excepción y devuelve un resultado payment_error claro en lugar de fallar.
4. Límites de gasto
Los totales de compra se verifican tanto contra los límites por transacción como contra el tope de gasto de la sesión antes de la aprobación.
Limitaciones / Próximos pasos
Este es un prototipo diseñado para el alcance del hackathon/la demo.
La identidad de sesión está simplificada: la implementación actual usa un ID de sesión por ejecución del servidor. Un sistema de producción debería asociar las solicitudes con identidades autenticadas de agente y de usuario.
Los umbrales de la política son estáticos: una versión de producción podría ajustar los límites utilizando el historial de confianza del agente, las preferencias del usuario, las puntuaciones de riesgo o las reglas del comerciante.
Solo pagos en modo de prueba: el proyecto crea pedidos de Razorpay en modo de prueba y no implementa un flujo completo de captura de pagos reales.
Autenticación del panel: el panel Flask actual está pensado para la demostración y debería usar autenticación y autorización en producción.
Ejecución de la aprobación humana: el prototipo actual registra una aprobación humana en la base de datos de auditoría; una implementación de producción debería conectar la acción de aprobación con el paso posterior de ejecución del pago/pedido.
Seguridad del prototipo: el despliegue en producción requeriría una validación, autenticación y autorización más sólidas, una gestión segura de las sesiones y protección contra agentes maliciosos o comprometidos.
Alcance futuro
Las posibles mejoras futuras incluyen:
Autenticación de agentes y gestión de identidades
Límites de gasto específicos por usuario
Puntuación de riesgo dinámica
Puntuación de confianza/reputación del agente
Umbrales de política adaptativos
Webhooks de estado de pago
Flujo completo de captura de pagos
Autenticación segura del panel
Detección de fraude
Analítica avanzada
Pruebas automatizadas más completas
🏆 Propuesta en una frase
SafeCart-AI es una pasarela de comercio MCP controlada por políticas que permite a los agentes de IA comprar en nombre de los usuarios, aplicando límites de gasto explicables, aprobación humana para compras arriesgadas y un registro de auditoría completo.
Principio fundamental
AI Agent
↓
Request Purchase
↓
Policy Engine
↓
┌──────────────┬─────────────────┬──────────────┐
│ │ │
Approved Human Review Rejected
│ │ │
↓ ↓ ↓
Razorpay Dashboard No Payment
Test Order Approval
│ │
└──────────────┴─────────────────┐
↓
Audit TrailLa IA solicita. La política decide. Los humanos controlan el riesgo. El pago se ejecuta solo tras la autorización.
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