Skip to main content
Glama
Jai-095
by Jai-095

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_server.py

Предоставляет функции продавца и покупки как MCP-инструменты

policy.py

Применяет политики покупок и записывает решения

razorpay_client.py

Создаёт тестовые заказы Razorpay

dashboard.py

Предоставляет панель управления для одобрения человеком

test_agent.py

Имитирует ИИ-агента и тестирует MCP-поток

data/products.json

Каталог товаров продавца

logs/audit.db

База данных аудита SQLite

Установка

1. Создайте виртуальное окружение

Windows:

python -m venv venv
venv\Scripts\activate

Linux/macOS:

python3 -m venv venv
source venv/bin/activate

2. Установите зависимости

pip install -r requirements.txt

3. Настройте тестовый режим 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.

Каждый продукт должен иметь следующие поля:

Поле

Описание

id

Уникальный идентификатор продукта

name

Название продукта

price

Цена в INR

stock

Наличие на складе (in / out)

category

Категория продукта

Также вы можете настроить политики в policy.py, включая пороги одобрения и максимальную сумму сессии.

Тестирование

Вы можете запустить тестового агента, который имитирует полный поток:

Buy me the Wireless Earbuds because I need them for online classes.

Этот скрипт демонстрирует:

  • Просмотр каталога

  • Получение деталей продукта

  • Покупку низкой стоимости

  • Покупку высокой стоимости

  • Отклонённую покупку

  • Получение журнала аудита

Технологический стек

Компонент

Технология

MCP-сервер

Python SDK (mcp)

Платёжная система

Razorpay (тестовый режим)

База данных

SQLite

Дашборд

Streamlit

Ключевые файлы

Файл

Описание

mcp_server.py

Сервер MCP и определения инструментов

policy.py

Логика политик: лимиты расходов, причины, одобрение человеком

razorpay_client.py

Клиент Razorpay для создания тестовых заказов

dashboard.py

Дашборд для одобрения/отклонения покупок человеком

test_agent.py

Скрипт, имитирующий ИИ-агента и проверяющий MCP-поток

data/products.json

Каталог товаров

logs/audit.db

База данных аудита SQLite

Демо-сценарий

Вот сценарий, который используется в демо:

  1. Подключите MCP-сервер к ИИ-агенту.

  2. Попросите агента просмотреть каталог.

  3. Попросите агента купить Беспроводные наушники (p001, ₹1,499) с указанием причины.

  4. Покажите, что покупка автоматически одобрена, и тестовый заказ Razorpay создан.

  5. Попросите агента купить Клавиатуру (p002, ₹3,499).

  6. Покажите, что требуется одобрение человеком.

  7. Одобрьте покупку на дашборде.

  8. Покажите, как выглядит журнал аудита после одобрения.

  9. Попробуйте купить товар, отсутствующий на складе, и покажите отказ с объяснением.

  10. Покажите полный журнал аудита для сессии.

Примечание о безопасности: Этот проект предназначен только для демонстрации. В производстве необходимо реализовать аутентификацию пользователей, защиту от атак и дополнительные проверки безопасности.

Пример диалога

Пользователь: Найди мне беспроводные наушники до 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 / Rejects

2. Запустите симуляцию тестового агента

Purchase Request
       ↓
Policy Check
       ↓
Out of Stock
       ↓
Rejected
       ↓
Clear Explanation

3. Запустите дашборд для проверки одобрений

python test_agent.py

4. Подключите MCP-сервер к вашему ИИ-агенту

AI Agent
   ↓
Request Purchase
   ↓
Policy Engine
   ↓
┌──────────────┬─────────────────┬──────────────┐
│              │                 │
Approved    Human Review       Rejected
│              │                 │
↓              ↓                 ↓
Razorpay    Dashboard         No Payment
Test Order  Approval
│              │
└──────────────┴─────────────────┐
                                 ↓
                           Audit Trail

Политика и логика аудита

Политика применяется перед любым действием по оплате. Логика следующая:

  1. Агент запрашивает покупку через инструмент request_purchase.

  2. Система проверяет наличие товара.

  3. Система проверяет причину покупки.

  4. Система проверяет сумму покупки против порогов.

  5. Если требуется одобрение — покупка помечается как pending.

  6. После одобрения создаётся заказ 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 для описания архитектуры и дизайна решений.

Related MCP Connectors

Related MCP Servers