safe-cart-ai
SafeCart-AI
Track: 01 — AI Growth & Agentic Commerce
问题: 很快,人们将不再通过商家的聊天机器人购物,而是会让自己专属的 AI 代理代为购物。商家需要一种安全的方式,让 AI 代理浏览其商品目录,并代理客户花钱。本项目正是提供了这一缺失的信任层。
它能做什么
SafeCart-AI 通过 Model Context Protocol,将商家的商品目录开放给任何兼容 MCP 的 AI 代理(例如 Claude)。
AI 代理可以浏览商品并发起购买请求,但在创建 Razorpay 测试模式订单之前,每一笔购买都必须通过策略引擎。
策略引擎强制执行:
可解释性 —— AI 代理必须为购买提供有意义的理由。
消费限额 —— 购买受到单笔交易限额和整个会话消费上限的管控。
门控(Gating) —— 中等金额的购买会被转至人工审批,而不是自动执行。
审计记录 —— 每次购买尝试都会被记录下来,包括请求了什么、为什么请求,以及系统做了什么决定。
优雅的失败处理 —— 无效请求(如商品缺货)会被明确拒绝,并附带清晰说明。
Related MCP server: agent-commerce-mcp-server
架构
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 UI为什么这样设计
支付集成被刻意与策略引擎分离开来。
只有在策略层批准了购买请求之后,才会调用 razorpay_client.py。这样可以让决策逻辑与支付集成互相分离,使购买决策可解释、可审计。
本项目围绕如下原则设计:
AI 可以请求购买,策略决定是否允许,而风险较高的购买可以要求人工审批。
策略规则
当前 demo 使用以下限额:
购买金额 | 决策 |
≤ ₹2,000 | 自动通过 |
₹2,001–₹6,000 | 需要人工审批 |
> ₹6,000 | 自动拒绝 |
会话总额 > ₹15,000 | 拒绝 |
这些数值可以在 policy.py 中调整。
AI 代理还必须提供有意义购买理由。理由缺失或过短的购买请求会被拒绝。
项目结构
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.db核心文件
文件 | 用途 |
| 通过 MCP 工具开放商家与购买功能 |
| 应用购买策略并记录决策决定 |
| 创建 Razorpay 测试订单 |
| 提供人工批准/拒绝面板(dashboard) |
| 模拟 AI 代理并测试 MCP 流程 |
| 商家商品目录 |
| SQLite 审计数据库 |
安装
1. 创建虚拟环境
Windows:
python -m venv venv
venv\Scripts\activateLinux/macOS:
python3 -m venv venv
source venv/bin/activate2. 安装依赖
pip install -r requirements.txt3. 配置 Razorpay 测试模式
从 .env.example 创建 .env 文件,并填写你的 Razorpay 凭据(测试模式):
RAZORPAY_KEY_ID=your_test_key_id
RAZORPAY_KEY_SECRET=your_test_key_secret切勿将 .env 或真实凭据提交到 GitHub。
如何运行项目
1. 启动 MCP 服务器
python mcp_server.py这将启动一个兼容 MCP 的 AI 代理可以连接的服务器。
2. 接入 AI 代理
以 Claude Desktop 为例,将 MCP 服务器加入你的 Claude Desktop 配置中:
{
"mcpServers": {
"agent-commerce-gateway": {
"command": "python",
"args": [
"/absolute/path/to/mcp_server.py"
]
}
}
}将 /absolute/path/to/mcp_server.py 替换为你电脑上的实际路径。
保存配置后,重启 Claude Desktop。
之后你就可以对已连接的 AI 代理提问:
Browse this merchant's products.或者:
Buy me the wireless earbuds because I need them for online classes.3. 启动面板(Dashboard)
另外打开一个终端:
python dashboard.py然后打开浏览器访问:
http://localhost:5001面板用于查看审计记录,并审查需要人工审批的购买请求。
购买流程如何工作
示例 1 —— 自动通过的购买
假设用户提出如下请求:
Buy me the Wireless Earbuds because I need them for online classes.AI 会发送一个购买请求,包含商品、数量与理由。
如果总价在自动通过限额以内:
Purchase Request
↓
Policy Check
↓
Approved
↓
Razorpay Test Order示例 2 —— 需要人工审批
假设用户请求的是定价为 ₹3,499 的 Mechanical Keyboard:
由于该商品高于自动通过限额,但处于人工审查范围内:
Purchase Request
↓
Policy Check
↓
Pending Human Approval
↓
Dashboard
↓
Human Approves / Rejects原型说明: 目前实现只是将面板审批记录写入审计数据库。生产环境应将审批操作与后续的 Razorpay 订单创建步骤关联起来。
示例 3 —— 优雅拒绝
如果请求商品缺货:
Purchase Request
↓
Policy Check
↓
Out of Stock
↓
Rejected
↓
Clear Explanation系统不会静默失败,也不会继续付款流程。
MCP 工具
MCP 服务器提供四个主要工具:
browse_products()
返回商家当前的完整商品目录。
get_product_details(product_id)
返回商品特定商品的详细信息。
request_purchase(product_id, quantity, reason)
代表用户请求购买商品。请求在创建任何 Razorpay 订单之前,会先经过策略引擎评估。
get_audit_trail()
返回当前会话中的所有购买尝试及其决策结果。
审计追踪
每一次购买尝试都会存入 SQLite。
每条审计记录包括:
时间戳
会话 ID
商品 ID
商品名称
价格
商品名称
数量
购买理由
决策结果
决策说明
可视化可以通过它清晰地还原:
AI 请求了什么?为什么请求?系统凭什么逻辑作了什么决定?
演示脚本
为 demo 演示:
将 MCP 服务器连接到 AI 即可。
让 AI 代理浏览商家目录。
请求 Wireless Earbuds(p001,₹1,499),并附上明确理由。
展示该购买被自动通过,并且 Razorpay 测试订单已成功创建等待。
请求 Mechanical Keyboard(p003,₹3,499)。
展示该购买需要面板上的人工审批。
请求 4K Webcam(p005)。
展示缺货请求被优雅拒绝。
展示完整审计追踪。
测试
项目自带一个测试代理,用于覆盖 MCP 主流程。
运行:
python test_agent.py测试脚本演示了以下能力:
MCP 连接
商品目录浏览
小额购买
中等金额购买
缺货购买
审计追踪获取
遇到的问题及如何解决
1. 购买理由无效
策略层要求每次购买都必须提供有意义的理由。缺少理由或理由过短的请求会被拒绝禁止,而不是允许一笔无法解释的购买。
2. 商品缺货
缺货请求会在策略层内部处理,并以明确拒绝包裹正常返回,而不是导致应用崩溃。
3. Razorpay 异常
Razorpay 订单创建逻辑与策略决策逻辑被分离。如果策略通过后,创建测试单失败,MCP 服务器会捕获异常并返回明确的 payment_error 结果,而不会崩溃。
4. 消费限额
购买总额在批准前会同时检查单笔交易上限和会话级消费上限。
相关限制 / 后续规划
本项目是围绕黑客松目录/演示场景设计的原型。
会话身份被简化,维护为:当前实现为每次服务器运行分配一个全局会话 ID。生产系统应把请求与已认证的 AI 代理及用户身份关联。
策略阈值是静态:生产版本可结合代理信任历史、用户偏好、风险评分或商户规则来自动调整限额。
仅测试模式支付:项目仅利用 Razorpay 测试订单,不包含完整的真实支付捕获流程。
Dashboard 认证:当前 Flask Dashboard 仅用于演示;生产环境必须加入认证和授权。
人工审批的进一步衔接:当前以记录审批事件为简略替代;生产实现应将人工审批已关联到后续的支付/订单执行步骤。
原型安全性:生产环境需要更强的校验与认证,安全的会话管理,并防范恶意或被盗用的多类代理。
未来方向
可能的改进方向包括:
代理身份认证与统一管理
用户级消费限额
动态风险评分
代理信任 / 信誉评分
自适应策略阈值
支付状态 Webhook
完整支付捕获流程
更安全的 Dashboard 认证
欺诈识别
高级分析
更全面的自动化测试
🏆 一句话说明
SafeCart-AI 是一个策略受控的 MCP 商务网关,让 AI 代理代表用户购物,同时强制执行可解释的消费限额、高风险购买的人工审批,以及全量审计追踪。
核心原则
AI Agent
↓
Request Purchase
↓
Policy Engine
↓
┌──────────────┬─────────────────┬──────────────┐
│ │ │
Approved Human Review Rejected
│ │ │
↓ ↓ ↓
Razorpay Dashboard No Payment
Test Order Approval
│ │
└──────────────┴─────────────────┐
↓
Audit Trail人工智能只负责发起请求,策略负责决策,人类掌控风险;支付流程仅在完成授权后执行。
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