Автор: Замиль Хассан
Руководитель направления продуктов в Blend-ed
Администраторы Open edX выполняют множество мелких и рутинных задач: зачисление учащихся, проверку номеров курсов, назначение ролей, обновление расписания, запуск отчетов и управление учебным контентом.
Каждая из этих задач по отдельности не представляет сложности. Но при работе с большим количеством курсов и пользователей постоянные переходы между LMS, Studio, административной панелью Django и инструментами отчетности отнимают много времени.
В компании Blend-ed мы решили выяснить, могут ли ИИ-ассистенты помочь с частью этой рутинной работы, не обходя при этом права доступа и средства контроля, уже встроенные в платформу Open edX®.
Это привело нас к созданию Open edX MCP — проекта с открытым исходным кодом, который позволяет ИИ-ассистентам с поддержкой протокола MCP работать с определенным набором инструментов администрирования Open edX и создания курсов.
Почему именно MCP?
Model Context Protocol (MCP) — это открытый стандарт, позволяющий приложениям на базе ИИ подключаться к внешним инструментам и системам.
Open edX MCP использует этот стандарт, чтобы предоставить совместимым ассистентам доступ к определенному набору операций в Open edX.
Это делает возможными такие запросы:
Зачислить этих учащихся на вводный курс.
Показать количество зачислений для всех активных курсов.
Добавить новый раздел, содержащий три юнита, а затем показать предложенные изменения перед их публикацией.
Ассистент интерпретирует запрос и вызывает соответствующий инструмент.
Сама операция по-прежнему выполняется через платформу Open edX. Ассистент может использовать только те операции, которые разрешены на основе учетной записи, прав доступа и областей видимости (scopes), привязанных к MCP-подключению.
Платформа Open edX остается единственным источником достоверных данных (source of truth).
Что умеет Open edX MCP?
Первый релиз поддерживает рабочие процессы в четырех основных областях.
Пользователи и доступ
Администраторы могут создавать пользователей, управлять индивидуальным или массовым зачислением, назначать роли в курсах, управлять доступом инструкторов, сбрасывать попытки учащихся и запускать процедуры удаления учетных записей.
Курсы и создание контента
Ассистент может читать структуру курсов, создавать или обновлять деревья учебного контента в Studio, изменять выбранное расписание, настройки оценивания и расширенные параметры, а также публиковать блоки курса после проверки.
Это полезно, когда преподавательскому составу необходимо внести структурные изменения в несколько юнитов или подготовить первый черновик, который автор проверит перед публикацией.
Ассистент помогает в работе, в то время как команда курса сохраняет полный контроль над контентом.
Сертификаты и отчеты
Доступные инструменты могут создавать, пересоздавать или аннулировать сертификаты.
Они также могут запускать асинхронные отчеты по оценкам и зачислениям и возвращать ссылки, когда файлы будут готовы.
Аналитика платформы
Операции чтения охватывают такую информацию, как списки курсов и пользователей, количество зачислений и оценки отдельных учащихся.
Как это работает с платформой Open edX?
Open edX MCP использует нативные Python API платформы openedx-platform для реализации доступных операций.
Для этого не требуется создавать форк ядра платформы, использовать внешнюю систему идентификации или отдельную модель данных.
Проект состоит из двух пакетов с открытым исходным кодом:
- openedx-mcp — приложение Django, которое открывает поддерживаемые операции администрирования и создания контента внутри LMS и CMS;
- tutor-contrib-openedxmcp — плагин Tutor, который устанавливает приложение и запускает MCP-сервер.
MCP-сервер выступает в роли небольшого прокси-сервера без сохранения состояния (stateless) между MCP-клиентом и платформой Open edX.
LMS и CMS продолжают выполнять базовые операции.
Первый релиз ориентирован на версию Open edX Ulmo и поддерживает локальные развертывания Tutor, а также развертывания в Kubernetes. Оба пакета распространяются под лицензией AGPL-3.0.
Исходный код доступен в репозитории Open edX MCP на GitHub.
Права доступа и безопасность
Подключение ИИ-ассистента к инструментам администрирования требует четких ограничений на то, что ассистенту разрешено делать.
Open edX MCP включает в себя несколько средств контроля для этого.
Проверка прав в реальном времени
Ключи связаны с существующим пользователем с правами сотрудника (staff) или суперпользователя в Open edX, и этот статус проверяется при каждом запросе. Если пользователь теряет необходимый доступ на платформе, его ключи перестают работать при следующем вызове.
Минимально необходимые привилегии (Least-privilege scopes)
Операторы могут ограничить ключ возможностями, необходимыми для конкретного рабочего процесса, такими как доступ только для чтения, управление зачислением или создание курсов. Административная эскалация и деструктивные операции требуют дополнительных областей видимости.
Предварительный просмотр и подтверждение
Действия, имеющие серьезные последствия или являющиеся деструктивными, сначала возвращают предварительный результат в режиме пробного запуска (dry-run). Изменение выполняется только при наличии одноразового токена подтверждения, привязанного к этому конкретному полезному набору данных (payload).
Ограничение частоты запросов (Rate limits)
Лимиты для каждого отдельного инструмента снижают риск последствий от случайных циклов или вышедшей из-под контроля автоматизации.
Журналы аудита
Каждая операция записи фиксируется в журнале аудита только для добавления (append-only), обеспечивая историю действий, выполненных через интеграцию.
Отзываемые ключи
Администраторы могут в любой момент отозвать MCP-ключ через панель администратора Django.
Эти средства контроля также позволяют начать работу в консервативном режиме. Организация может начать с ключа только для чтения, протестировать соединение и предоставить дополнительные области видимости только тогда, когда это потребуется для рабочего процесса.
Начало работы с Tutor
Для инсталляции Open edX на базе Tutor первым шагом является установка и включение плагина Tutor:
pip install tutor-contrib-openedxmcp
tutor plugins enable openedxmcp
tutor images build openedx openedxmcp
tutor local launch
tutor local do init
После установки администратор создает MCP-ключ в панели администратора Django и подключает совместимый MCP-клиент к конечной точке платформы.
Рекомендуемый подход — начать с ключа только для чтения и сначала вызвать инструмент whoami. Это позволит проверить работающего пользователя Open edX и области видимости, доступные для подключения, до того, как будут предоставлены более широкие права.
Краткое руководство охватывает установку, создание ключей и подключение клиента. Документация также включает полное описание модели безопасности и областей видимости, а также руководство по самостоятельному хостингу с использованием Tutor и Kubernetes.
Что дальше?
Есть несколько областей, которые мы хотели бы изучить в дальнейшем.
Потенциальные направления включают управление когортами, более развитые рабочие процессы для преподавательских команд, создание контента для библиотек материалов, настройку сертификатов, администрирование дискуссий и улучшенную наблюдаемость (observability).
Мы бы хотели, чтобы эти приоритеты формировались на основе мнения людей, которые управляют платформой Open edX и развивают ее.
Какие административные задачи отнимают больше всего времени сегодня?
Какие действия всегда должны требовать подтверждения человеком?
Какие операции Open edX было бы полезно сделать доступными через MCP?
Если вы попробуете проект, вы можете поделиться отзывом или внести свой вклад через обсуждения в сообществе Open edX.
ИИ-ассистируемое администрирование должно упрощать рутинную работу, не обходя при этом права доступа, этапы проверки и ответственность, которые уже заложены в платформу Open edX.
