Ops Lense
Ops Lense
Ops Lense — это удаленно размещенный сервер Model Context Protocol (MCP) для операций электронной коммерции. Он помогает специалисту по операциям расследовать зависшие заказы, понять, что пошло не так, и выполнить следующее безопасное действие без необходимости привлекать инженера для каждого инцидента.
Данное задание намеренно фокусируется на одном рабочем процессе в глубину: расследование и исправление зависших заказов по заказам, платежам, запасам и выполнению.
Что он демонстрирует
Оператор может задать AI-клиенту с поддержкой MCP вопросы, такие как:
Почему этот оплаченный заказ все еще завис?
AI может использовать Ops Lense, чтобы:
найти заказ;
изучить его операционную временную шкалу;
диагностировать вероятный сбой на основе данных бэкенда;
определить, насколько безопасно можно выполнить предлагаемое действие;
предварительно просмотреть и выполнить ограниченное исправление после подтверждения оператора; или
отправить действие высокого риска в очередь ручной проверки вместо его выполнения.
Таким образом, MCP является основным интерфейсом продукта, а не дополнительной интеграцией вокруг отдельного приложения.
Related MCP server: Commerce Ops MCP Server
Модель безопасности
Не все операции электронной коммерции должны иметь одинаковый уровень автономии AI. Ops Lense разделяет действия на три категории.
Категория | Поведение | Примеры |
Мгновенные | Расследование только для чтения может выполняться немедленно | Поиск заказов, просмотр временной шкалы, диагностика заказа, просмотр статистики |
Требуется подтверждение | MCP сначала предварительно просматривает изменение и выполняет только после явного одобрения оператора | Повторная синхронизация отсутствующего резервирования запасов |
Только ручная проверка | MCP не может выполнить действие; он создает запрос на ожидающую проверку | Возврат платежа, отмена отправленного заказа, переопределение выполнения, корректировка запасов |
Процесс подтверждения
resync_inventory_reservation — это защищенная операция записи.
Первый вызов:
confirmed=falseСервер проверяет заказ и возвращает предполагаемый эффект без изменения базы данных.
После того как оператор явно одобрит действие, клиент может вызвать:
confirmed=trueЗатем сервер выполняет ограниченную мутацию и записывает запись аудита.
Процесс ручной проверки
Критические действия намеренно недоступны как прямые мутации MCP. request_manual_review создает запись аудита pending_review вместо этого.
Отдельный процесс, в котором другой оператор проверяет, одобряет и выполняет эти запросы, намеренно выходит за рамки задания. Ожидающие запросы остаются видимыми через list_manual_reviews.
Инструменты MCP
Инструмент | Безопасность | Назначение |
| Мгновенные | Поиск последних заказов, опционально отфильтрованных по статусу |
| Мгновенные | Просмотр хронологической истории операций заказа |
| Мгновенные | Обнаружение поддерживаемых условий зависшего заказа на основе платежных и операционных доказательств |
| Мгновенные | Просмотр агрегированных количеств заказов и выручки по статусу |
| Требуется подтверждение | Предварительный просмотр и исправление отсутствующего резервирования запасов после явного одобрения |
| Только ручная проверка | Постановка в очередь операции высокого риска без ее выполнения |
| Мгновенные | Просмотр ожидающих запросов на ручную проверку |
Ресурс MCP
Ops Lense предоставляет один операционный ресурс:
ops://action-policyОн описывает три категории действий и правила, которым должен следовать клиент MCP при выборе или выполнении инструментов.
Я выбрал ресурс вместо подсказки MCP, потому что это стабильная операционная политика, которая должна быть доступна независимо от того, как пользователь формулирует свой запрос. Выделенная подсказка добавила бы мало ценности этому намеренно узкому рабочему процессу.
Пример сквозного рабочего процесса
Типичный инцидент — заказ, в котором платеж был успешно захвачен, но этап резервирования запасов отсутствует.
Оператор спрашивает, почему заказ завис.
AI использует
search_orders, если ему нужно найти заказ.Он вызывает
get_order_timeline, чтобы проверить, что произошло.Он вызывает
diagnose_order, чтобы сопоставить платеж и операционное состояние.Диагностика определяет
INVENTORY_RESERVATION_MISSINGи рекомендуетresync_inventory_reservation.AI вызывает инструмент с
confirmed=falseи показывает предлагаемое исправление оператору.Оператор одобряет его.
AI снова вызывает инструмент с
confirmed=true.MCP выполняет исправление и записывает запись аудита.
AI снова вызывает
get_order_timeline, чтобы проверить итоговое состояние.
Запрос высокого риска следует по другому пути. Например, если оператор запрашивает возврат средств, MCP создает запрос на ручную проверку, а не изменяет состояние платежа. Затем запрос можно проверить с помощью list_manual_reviews.
Это дает демо одну связную историю, охватывающую расследование → диагностику → подтверждение человеком → мутацию → проверку → эскалацию.
Архитектура
MCP-enabled AI client
|
| Streamable HTTP
v
Ops Lense MCP
|
+-- Investigation tools
+-- Diagnostic logic
+-- Safety / action policy
+-- Guarded actions
|
v
Neon PostgreSQL
synthetic commerce dataТехнологии:
TypeScript
Bun для локальной разработки и скриптов
Node.js 24 на Heroku
Пакеты сервера Model Context Protocol
Транспорт Express HTTP
Neon PostgreSQL
Проверка входных данных Zod
Синтетические данные моделируют минимальные системы бэкенда, необходимые для рабочего процесса: клиенты, заказы, платежи, запасы, выполнение, операционные события, история расследований и записи аудита действий.
Локальный запуск
Предварительные требования
Вам понадобятся:
Bun
база данных PostgreSQL; Neon хорошо подходит для размещенного демо
1. Установка зависимостей
bun install2. Настройка переменных окружения
Создайте файл .env в корне проекта:
DATABASE_URL=postgresql://YOUR_DATABASE_URL
MCP_AUTH_TOKEN=YOUR_STRONG_RANDOM_TOKEN
PORT=30003. Создание синтетической базы данных
bun scripts/setup-db.tsЭта команда удаляет и заново создает таблицы задания. Не запускайте ее для базы данных, содержащей данные, которые вам нужно сохранить.
4. Загрузка демо-данных
bun scripts/seed-db.tsВсе загруженные записи клиентов, заказов, платежей, запасов и выполнения являются синтетическими.
5. Сборка и запуск сервера MCP
bun run build
bun run startbun run build компилирует TypeScript в dist/. Затем команда запуска запускает скомпилированный сервер с Node, соответствующий пути выполнения Heroku.
Локальная конечная точка MCP:
http://localhost:3000/mcpРазвертывание на Heroku
Репозиторий содержит Procfile, который запускает веб-динозавр с npm start. Heroku собирает проект TypeScript и запускает скомпилированный сервер Node.js.
1. Создание приложения Heroku
heroku create YOUR_APP_NAME2. Настройка базы данных
Установите строку подключения PostgreSQL и надежный маркер носителя, используемый для защиты конечной точки MCP:
heroku config:set DATABASE_URL="YOUR_DATABASE_URL" MCP_AUTH_TOKEN="YOUR_STRONG_RANDOM_TOKEN" -a YOUR_APP_NAMEHeroku предоставляет PORT автоматически, поэтому вам не нужно настраивать его вручную.
3. Развертывание
git push heroku HEAD:mainВо время развертывания Heroku устанавливает зависимости Node и запускает скрипт build. Затем запускается веб-динозавр:
node dist/index.jsРазмещенная конечная точка MCP будет:
https://YOUR_APP_NAME.herokuapp.com/mcpЕсли ваше приложение Heroku использует пользовательский домен, используйте этот домен с /mcp.
4. Проверка развертывания
heroku logs --tail -a YOUR_APP_NAMEВы должны увидеть, как сервер MCP запускается и привязывается к назначенному порту Heroku.
Синтетическую базу данных можно инициализировать перед развертыванием с вашей локальной машины, используя ту же DATABASE_URL, или запустив сценарии установки и заполнения как одноразовые команды Heroku, если Bun доступен в этой среде. Для самого простого пути развертывания инициализируйте и заполните Neon локально перед развертыванием сервера.
Подключение от AI-клиента
Ops Lense использует удаленную конечную точку HTTP MCP. В клиенте MCP, поддерживающем удаленные/потоковые HTTP-серверы, добавьте конечную точку и маркер носителя:
{
"serverUrl": "http://localhost:3000/mcp",
"headers": {
"Authorization": "Bearer YOUR_STRONG_RANDOM_TOKEN"
}
}Для развернутого экземпляра замените локальный URL на размещенный URL MCP и используйте тот же маркер, который настроен как MCP_AUTH_TOKEN на сервере.
После подключения клиент должен автоматически обнаружить инструменты и ресурс ops://action-policy.
Затем вы можете начать естественно, например:
Show me recent orders that may need attention.Why is this order stuck? Investigate it and tell me what we can safely do.Show me all actions currently waiting for manual review.Для операций, требующих подтверждения, AI должен представить предварительный просмотр оператору и получить явное одобрение перед выполнением второго вызова инструмента с confirmed=true.
Подключение с помощью MCP Inspector
MCP Inspector полезен для тестирования сервера независимо от чат-клиента.
При запущенном локальном сервере:
npx @modelcontextprotocol/inspectorВ Inspector подключитесь к:
http://localhost:3000/mcpЗатем вы можете проверить обнаруженные инструменты/ресурс и вызвать рабочий процесс вручную.
Проверка
Проверьте типы проекта с помощью:
npm run typecheckЗапустите целенаправленный набор интеграционных тестов Vitest для настроенной синтетической базы данных:
npm testТесты в tests/operations.test.ts создают изолированные временные записи, выполняют реальные функции инструментов для PostgreSQL и удаляют эти записи после завершения. Они проверяют:
захваченный платеж с отсутствующим резервированием приводит к
INVENTORY_RESERVATION_MISSING;терминальные заказы не диагностируются как активные сбои запасов;
confirmed=falseне выполняет мутации;confirmed=trueвыполняет ограниченное исправление запасов и записывает запись аудита;повторение уже завершенной повторной синхронизации является безопасным холостым действием;
запрос на возврат средств ставится в очередь на проверку без изменения состояния платежа;
дублирующиеся запросы на ожидающую проверку подавляются.
Набор в настоящее время содержит 8 интеграционных тестов. Успешный запуск сообщает 8 passed.
Эти тесты намеренно сфокусированы на рабочем процессе и границах безопасности, а не на широких показателях охвата.
Ключевые продуктовые решения
Сохраняйте рабочий процесс узким
Задание не пытается создать полный бэкенд электронной коммерции. Операции с зависшими заказами были выбраны, потому что они предоставляют компактный рабочий процесс, включающий несколько систем, диагностику, исправление, безопасность и проверку.
Дайте AI полезную автономию, а не неограниченный доступ на запись
Если сделать каждую операцию только для чтения, оператор будет зависеть от другой системы для решения даже простых инцидентов. Разрешение всех мутаций создало бы ненужный операционный риск.
Трехуровневая модель обеспечивает золотую середину: расследование автоматическое, ограниченное исправление требует подтверждения оператора, а важные действия остаются за ручной проверкой.
Критические действия не должны выполняться через MCP
Возвраты и аналогичные операции технически могут быть представлены как мутации базы данных в этом синтетическом проекте, но это демонстрировало бы неправильное производственное поведение. Вместо этого MCP создает запрос на проверку и делает границу явной.
Поддерживайте небольшую поверхность MCP
Каждый открытый инструмент имеет четкую роль в выбранном рабочем процессе. Цель состоит в том, чтобы AI-клиент надежно выбирал инструменты, а не в максимизации количества доступных инструментов.
Объем и допущения
Включено:
синтетические данные электронной коммерции
расследование заказов
детерминированная диагностика поддерживаемого условия зависшего заказа
защищенное исправление запасов
ведение журнала аудита
очередь ручной проверки
удаленно доступный интерфейс MCP
Намеренно исключено:
интерфейс/панель администратора
реальные данные клиентов
производственные платежные или складские учетные данные
учетные записи пользователей, сессии, OAuth и управление доступом на основе ролей
прямое выполнение возврата
интерфейс одобрения/выполнения ручной проверки
полный бэкенд электронной коммерции
широкие рабочие процессы возвратов, мошенничества, каталога и поддержки клиентов
Сервер заданий, размещённый на хостинге, использует единый bearer-токен, чтобы не раскрывать MCP публично. Для производственной системы потребовалось бы добавить аутентификацию с учётом личности, авторизацию/RBAC, ротацию секретов, более строгий контроль параллелизма, интеграции с конкретными провайдерами, наблюдаемость и полный процесс рецензирования.
Структура репозитория
src/
index.ts
db.ts
resources.ts
tools/
diagnose-order.ts
get-stats.ts
get-timeline.ts
list-manual-reviews.ts
request-manual-review.ts
resync-inventory.ts
search-orders.ts
scripts/
setup-db.ts
seed-db.ts
tests/
operations.test.ts
vitest.config.tsЖурнал работы ИИ
Этот раздел должен содержать фактическое использование ИИ из задания до сдачи:
Инструменты для написания кода с ИИ и точные использованные модели
Почему каждая модель была выбрана для своей задачи
Как работа была спланирована и декомпозирована
Обязанности, взятые на себя ИИ по сравнению с разработчиком
Важные промпты/контекст, предоставленные ИИ
Как минимум одно предложение ИИ, которое было отклонено или существенно изменено
Как код, созданный ИИ, проверялся и верифицировался
Оставшиеся риски или незавершённая работа
Одно из продуктовых решений, которое изменилось в ходе разработки, — это обработка важных операций. Вместо того чтобы выставлять возвраты средств и аналогичные критические действия как исполняемые инструменты MCP, они были перемещены в очередь ручного рецензирования. Это сохраняет полезную автономию ИИ, оставляя финансово или операционно значимые решения за пределами прямого выполнения моделью.
Сдача
Финальная сдача должна включать:
URL размещённого MCP
URL репозитория исходного кода
этот README
проверки/тесты для важного поведения рабочего процесса
заполненный журнал работы ИИ
асинхронную демонстрацию на 4–5 минут
Демонстрация должна отдавать приоритет фактическому рабочему процессу продукта, а не обзору кода: исследовать заказ, диагностировать его, предпросмотреть безопасное исправление, подтвердить его, проверить результат, а затем показать, как критическое действие направляется на ручное рецензирование.
This server cannot be deployed
Maintenance
Related MCP Connectors
Commerce intelligence for AI agents. Diagnose drop-offs, fix checkouts, optimize pricing.
Connect AI to store orders, products and inventory with scoped access and human approvals.
Autonomous commerce for AI agents: discover, quote, order, pay, verify.
Run storefronts, listings, orders, content, fulfillment, and analytics through AI.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to investigate and resolve operational exceptions across orders, payments, inventory, and fulfillment through a multi-system truth and guarded actions.-
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to investigate and resolve e-commerce order exceptions like damages, lost shipments, refunds, and replacements through a unified interface with built-in guardrails.-
- FlicenseNot gradedqualityBmaintenanceHelps a commerce operations analyst investigate stuck synthetic orders, diagnose blockers from stored facts, and create auditable human-review escalations without changing fulfillment state.-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to investigate and safely resolve commerce order exceptions, such as expired inventory reservations, by providing a workflow across synthetic order, payment, inventory, and fulfillment systems.-