safe-cart-ai
SafeCart-AI
Трек: 01 — ИИ-рост и агентная коммерция
Проблема: Скоро люди не будут покупать, общаясь с ботом продавца — они попросят своего собственного ИИ-агента делать покупки за них. Продавцам нужен безопасный способ позволить ИИ-агенту просматривать их каталог и тратить деньги от имени клиента. Этот проект обеспечивает недостающий уровень доверия.
Что он делает
SafeCart-AI предоставляет каталог товаров продавца любому MCP-совместимому ИИ-агенту (например, Claude) через Model Context Protocol.
Агент может просматривать товары и запрашивать покупки, но каждая покупка должна пройти через движок политик, прежде чем будет создан заказ в тестовом режиме Razorpay.
Движок политик обеспечивает:
Объяснимость — агент должен предоставить осмысленную причину для покупки.
Ограничение расходов — покупки контролируются лимитами на транзакцию и общим лимитом расходов за сессию.
Гейтинг — покупки среднего ценового диапазона отправляются на одобрение человеком вместо автоматического выполнения.
Аудит — попытки покупок логируются с указанием того, что было запрошено, почему и какое решение приняла система.
Корректная обработка ошибок — неверные запросы, такие как товары, отсутствующие на складе, отклоняются с понятным объяснением.
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 вызывается только после того, как политика одобрит запрос на покупку. Это сохраняет логику принятия решений отдельной от платёжной интеграции и делает решение о покупке объяснимым и аудируемым.
Проект построен на принципе:
ИИ может запросить покупку, политика решает, разрешена ли она, а более рискованные покупки могут требовать одобрения человека.
Политика
В текущей демо-версии используются следующие лимиты:
Сумма покупки | Решение |
≤ 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 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