safe-cart-ai
SafeCart-AI
Трек: 01 — ИИ-рост и агентная коммерция
Проблема: Скоро люди не будут покупать, общаясь с ботом продавца — они попросят своего собственного ИИ-агента делать покупки за них. Продавцам нужен безопасный способ позволить ИИ-агенту просматривать их каталог и тратить деньги от имени клиента. Этот проект обеспечивает недостающий уровень доверия.
Что он делает
SafeCart-AI предоставляет каталог товаров продавца любому MCP-совместимому ИИ-агенту (например, Claude) через Model Context Protocol.
Агент может просматривать товары и запрашивать покупки, но каждая покупка должна пройти через движок политик, прежде чем будет создан заказ в тестовом режиме Razorpay.
Движок политик обеспечивает:
Объяснимость — агент должен предоставить осмысленную причину для покупки.
Ограничение расходов — покупки контролируются лимитами на транзакцию и общим лимитом расходов за сессию.
Гейтинг — покупки среднего ценового диапазона отправляются на одобрение человеком вместо автоматического выполнения.
Аудит — попытки покупок логируются с указанием того, что было запрошено, почему и какое решение приняла система.
Корректная обработка ошибок — неверные запросы, такие как товары, отсутствующие на складе, отклоняются с понятным объяснением.
Related MCP server: Allowance MCP
Архитектура
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 вызывается только после того, как политика одобрит запрос на покупку. Это сохраняет логику принятия решений отдельной от платёжной интеграции и делает решение о покупке объяснимым и аудируемым.
Проект построен на принципе:
ИИ может запросить покупку, политика решает, разрешена ли она, а более рискованные покупки могут требовать одобрения человека.
Политика
В текущей демо-версии используются следующие лимиты:
Сумма покупки | Решение |
≤ 2 000 ₹ | Автоматическое одобрение |
2 001–6 000 ₹ | Требуется одобрение человека |
> 6 000 ₹ | Автоматический отказ |
Итог сессии > 15 000 ₹ | Отклонено |
Эти значения можно изменить в policy.py.
Агент также должен указать осмысленную причину покупки. Запросы с отсутствующей или слишком короткой причиной отклоняются.
Структура проекта
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 |
| Предоставляет панель управления для одобрения человеком |
| Имитирует ИИ-агента и тестирует 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 из .env.example и добавьте свои учётные данные Razorpay ТЕСТОВОГО РЕЖИМА:
RAZORPAY_KEY_ID=your_test_key_id
RAZORPAY_KEY_SECRET=your_test_key_secretНикогда не коммитьте .env или реальные учётные данные в GitHub.
Запуск проекта
1. Запустите MCP-сервер
python mcp_server.pyЭто запустит сервер, к которому подключается MCP-совместимый ИИ-агент.
2. Подключите ИИ-агента
Для 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 после сохранения конфигурации.
Затем вы можете попросить подключённого ИИ-агента:
Browse this merchant's products.3. Запустите дашборд
Buy me the wireless earbuds because I need them for online classes.Затем откройте:
python dashboard.pyЗдесь вы можете просмотреть журнал аудита и одобрить или отклонить покупки, ожидающие решения человека.
Как работает поток покупки
Когда пользователь просит агента купить товар, агент вызывает инструмент request_purchase. Запрос анализируется следующим образом:
http://localhost:5001Как настроить собственный магазин
Вы можете легко заменить каталог демо-магазина на свой, отредактировав data/products.json.
Каждый продукт должен иметь следующие поля:
Поле | Описание |
| Уникальный идентификатор продукта |
| Название продукта |
| Цена в INR |
| Наличие на складе ( |
| Категория продукта |
Также вы можете настроить политики в policy.py, включая пороги одобрения и максимальную сумму сессии.
Тестирование
Вы можете запустить тестового агента, который имитирует полный поток:
Buy me the Wireless Earbuds because I need them for online classes.Этот скрипт демонстрирует:
Просмотр каталога
Получение деталей продукта
Покупку низкой стоимости
Покупку высокой стоимости
Отклонённую покупку
Получение журнала аудита
Технологический стек
Компонент | Технология |
MCP-сервер | Python SDK ( |
Платёжная система | Razorpay (тестовый режим) |
База данных | SQLite |
Дашборд | Streamlit |
Ключевые файлы
Файл | Описание |
| Сервер MCP и определения инструментов |
| Логика политик: лимиты расходов, причины, одобрение человеком |
| Клиент Razorpay для создания тестовых заказов |
| Дашборд для одобрения/отклонения покупок человеком |
| Скрипт, имитирующий ИИ-агента и проверяющий MCP-поток |
| Каталог товаров |
| База данных аудита SQLite |
Демо-сценарий
Вот сценарий, который используется в демо:
Подключите MCP-сервер к ИИ-агенту.
Попросите агента просмотреть каталог.
Попросите агента купить Беспроводные наушники (p001, ₹1,499) с указанием причины.
Покажите, что покупка автоматически одобрена, и тестовый заказ Razorpay создан.
Попросите агента купить Клавиатуру (p002, ₹3,499).
Покажите, что требуется одобрение человеком.
Одобрьте покупку на дашборде.
Покажите, как выглядит журнал аудита после одобрения.
Попробуйте купить товар, отсутствующий на складе, и покажите отказ с объяснением.
Покажите полный журнал аудита для сессии.
Примечание о безопасности: Этот проект предназначен только для демонстрации. В производстве необходимо реализовать аутентификацию пользователей, защиту от атак и дополнительные проверки безопасности.
Пример диалога
Пользователь: Найди мне беспроводные наушники до 2500 рупий.
Агент:
Purchase Request
↓
Policy Check
↓
Approved
↓
Razorpay Test OrderПользователь: Да, купи их.
Агент: Запрашиваю покупку... Одобрено. Заказ создан в тестовом режиме Razorpay.
Витрина
Экран 1 — Каталог товаров (браузинг, поиск, информация о товаре)
Экран 2 — Агент покупает от имени пользователя
Экран 3 — ИИ-агент запрашивает и использует purchase-инструменты
Экран 4 — ИИ-агент покупает (MCP)
Экран 5 — Поток покупки от запроса до подтверждения
Экран 6 — Панель одобрения для человека
Экран 7 — Журнал аудита
Экран 8 — request_purchase требует причину
Экран 9 — Агент вносит изменения в корзину, оформление заказа и оплату
Экран 10 — Управление заказами
Дополнительная информация
Обратите внимание, что этот трек ориентирован на агентную коммерцию, и мы всё ещё находимся в демо-фазе. Всё выполняется в тестовом режиме (клиентские данные, продукты, платежи).
Запуск демо
1. Запустите MCP-сервер
Purchase Request
↓
Policy Check
↓
Pending Human Approval
↓
Dashboard
↓
Human Approves / Rejects2. Запустите симуляцию тестового агента
Purchase Request
↓
Policy Check
↓
Out of Stock
↓
Rejected
↓
Clear Explanation3. Запустите дашборд для проверки одобрений
python test_agent.py4. Подключите MCP-сервер к вашему ИИ-агенту
AI Agent
↓
Request Purchase
↓
Policy Engine
↓
┌──────────────┬─────────────────┬──────────────┐
│ │ │
Approved Human Review Rejected
│ │ │
↓ ↓ ↓
Razorpay Dashboard No Payment
Test Order Approval
│ │
└──────────────┴─────────────────┐
↓
Audit TrailПолитика и логика аудита
Политика применяется перед любым действием по оплате. Логика следующая:
Агент запрашивает покупку через инструмент
request_purchase.Система проверяет наличие товара.
Система проверяет причину покупки.
Система проверяет сумму покупки против порогов.
Если требуется одобрение — покупка помечается как
pending.После одобрения создаётся заказ Razorpay.
Устранение неполадок
Проблема: инструменты не видны в Claude
Убедитесь, что конфигурация MCP-сервера в Claude Desktop настроена правильно, и перезапустите Claude Desktop.
Проблема: среда Python не найдена
Проверьте, активирована ли виртуальная среда. На Windows используйте venv\Scripts\activate, на macOS/Linux — source venv/bin/activate.
Проблема: Razorpay order creation fails
Убедитесь, что ключи в .env корректны и указан тестовый режим (RAZORPAY_KEY_ID и RAZORPAY_KEY_SECRET из тестовой среды). Создайте тестовые ключи на https://dashboard.razorpay.com.
Тестирование
Запуск тестов
GXP19
Что проверяют тесты
Политика: лимиты покупок, отсутствие причины, лимиты сессии
Интеграция с Razorpay (тестовая среда)
Аудит-лог
MCP-эндпоинты
Смотрите
EXPLANATION.mdдля описания архитектуры и дизайна решений.
This server cannot be deployed
Maintenance
Related MCP Connectors
Policy review and purchase discovery for AI-agent commerce actions.
Governance and agentic-commerce policy tools for AI agents: spend, purchase and charter controls.
Pre-spend firewall for AI agents. Approves, blocks, flags transactions against policy rules.
Secure agent purchasing with human-approved virtual cards, receipts, and audit trails.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to create, compare, and track purchases with structured buying workflows, offer comparison, and merchant verification.543 PyPIMIT

Allowance MCPofficial
FlicenseNot gradedqualityDmaintenanceEnables AI agents to request purchase approval from humans, receive scoped virtual cards, complete checkout, and report receipts for audit.-- AlicenseNot gradedqualityBmaintenanceEnables AI agents to discover, check stock, and purchase products through your existing store APIs, with spend mandates, discount ceilings, and a full audit trail enforced in code.40,017 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to browse catalogs, manage carts, check out, and make payments via Shopify and Razorpay under user-defined policies and explicit approval, while maintaining a complete audit trail.-