Ops Lense
Ops Lense
Ops Lense — это удаленно размещенный сервер Model Context Protocol (MCP) для операций электронной коммерции. Он помогает специалисту по операциям расследовать зависшие заказы, понять, что пошло не так, и выполнить следующее безопасное действие без необходимости привлекать инженера для каждого инцидента.
Данное задание намеренно фокусируется на одном рабочем процессе в глубину: расследование и исправление зависших заказов по заказам, платежам, запасам и выполнению.
Что он демонстрирует
Оператор может задать AI-клиенту с поддержкой MCP вопросы, такие как:
Почему этот оплаченный заказ все еще завис?
AI может использовать Ops Lense, чтобы:
найти заказ;
изучить его операционную временную шкалу;
диагностировать вероятный сбой на основе данных бэкенда;
определить, насколько безопасно можно выполнить предлагаемое действие;
предварительно просмотреть и выполнить ограниченное исправление после подтверждения оператора; или
отправить действие высокого риска в очередь ручной проверки вместо его выполнения.
Таким образом, MCP является основным интерфейсом продукта, а не дополнительной интеграцией вокруг отдельного приложения.
Модель безопасности
Не все операции электронной коммерции должны иметь одинаковый уровень автономии 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 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 Connectors
Policy review and purchase discovery for AI-agent commerce actions.
Debug, build, and manage Power Automate cloud flows with AI agents
AI agent run monitoring with incident replay and SLA receipts.
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/qubydev/ops-lense-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server