urfu-mcp
Provides tools for interacting with UrFU's eLearn (Moodle-based) platform: listing courses, retrieving course content such as assignments, quizzes, materials, and forums, and listing or downloading course files.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@urfu-mcpпокажи моё расписание на 2026-05-11"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
urfu-mcp
Локальный MCP-сервер на Python для доступа к расписанию Modeus, балльно-рейтинговой системе iStudent и курсам eLearn УрФУ. Сервер работает через stdio и использует вход пользователя в сервисы университета.
Требования
Python 3.12 или новее и
uv.Windows, WSL, Linux или macOS. Вход и запуск сервера должны выполняться в одной ОС: Windows Credential Manager и keyring WSL — разные хранилища.
Chromium, устанавливаемый Playwright при необходимости браузерного входа.
Проект запускается из клона репозитория; отдельный PyPI-пакет не публикуется.
Related MCP server: canvas-mcp
Установка и первый запуск
git clone https://github.com/be1pheg0r/urfu-mcp.git
cd urfu-mcp
uv run urfu-mcp setupsetup подготавливает окружение и конфигурацию, помогает войти и проверяет сессии Modeus и iStudent. Для первичной настройки также доступны отдельные команды init, auth и elearn (см. раздел CLI).
Инструменты MCP
Сервер регистрирует семь инструментов.
Инструмент | Аргументы и результат |
|
|
| Те же аргументы периода и ровно один из |
|
|
| Без аргументов; возвращает список записей курса с |
|
|
|
|
|
|
Для содержимого курса селектор сверяется со списком записанных курсов; произвольный ID отклоняется, неоднозначное название не принимается, а страница курса должна подтвердить тот же ID. Загрузка файла принимает только файл, предварительно перечисленный для этого курса.
Подключение MCP-клиентов
Скрипт регистрирует stdio-сервер в Hermes, Codex или Claude, вызывая штатную команду mcp add выбранного клиента:
bash scripts/install-mcp.sh
bash scripts/install-mcp.sh --client codex
bash scripts/install-mcp.sh --client hermes --dry-run
bash scripts/install-mcp.sh --runtime nativeПараметры: --client all|hermes|codex|claude, --runtime auto|windows|native, --name NAME, --dry-run. По умолчанию выбираются все найденные клиенты, а имя сервера — urfu-mcp. Регистрация запускает сервер из текущего клона; скрипт не оставляет фоновый процесс. После регистрации перезапустите клиент.
В WSL или Git Bash режим windows запускает Windows uv через cmd.exe; режим native использует uv текущей ОС. Windows Credential Manager и keyring WSL независимы: выполните uv run urfu-mcp setup и запускайте MCP-сервер в одной и той же ОС.
Команды CLI
Основные команды:
Команда | Назначение |
| Настроить и проверить сервисы. |
| Создать |
| Войти в Modeus и iStudent. |
| Использовать сохранённые учётные данные для входа через SSO. |
| Сохранить почту и пароль в системном keyring. |
| Войти с OIDC-настройками из конфигурации. |
| Войти в eLearn. |
| Войти в eLearn с сохранёнными учётными данными. |
| Запустить MCP-сервер по stdio для MCP-хоста. |
| Запустить управляемый серверный процесс. |
| Остановить записанный управляемый процесс. |
setup поддерживает --no-color и --non-interactive.
Конфигурация
uv run urfu-mcp init создаёт локальный config.yaml; пример всех параметров приведён в config.example.yaml. Конфигурация не содержит секретов или person_id. В ней, в частности, задаются OIDC-параметры, ограничения HTTP-запросов Modeus, часовой пояс и лимиты расписания. Каталог загрузки файлов настраивается через elearn.files_directory; по умолчанию используется ~/.urfu-mcp/files.
Безопасность и сессии
Учётные данные и токены хранятся в системном keyring; конфигурация не содержит секретов, а учётные данные не записываются в журналы.
Вход выполняется через SSO/браузер или настроенный OIDC. При недоверенных метаданных, ошибке проверки или неподдерживаемой конфигурации доступ закрывается.
Доступ к файлу ограничен перечисленными файлами курса и точным HTTPS-origin
elearn.urfu.ru. Размер ограничен, небезопасные имена отклоняются, существующие файлы не перезаписываются. Загрузка в Git working tree запрещена.Каталог файлов по умолчанию доступен только владельцу. Настроенный каталог также не может находиться внутри Git working tree.
Локальный срок сессии iStudent ограничен 15 минутами.
У сессии eLearn нет локального срока истечения; при каждом использовании она повторно проверяется по защищённой странице. Серверная сторона всё равно может отклонить сессию в любой момент.
Архитектура
urfu_mcp/auth/— вход через Playwright и OIDC/PKCE, хранение данных в keyring.urfu_mcp/modeus/— HTTP-клиент Modeus, нормализация HAL и чтение расписания.urfu_mcp/istudent/— источник защищённых страниц и парсер БРС.urfu_mcp/elearn/— Moodle-источник курсов, парсер, чтение курса и загрузка файлов.urfu_mcp/setup.py,config.py,process_manager.py,html_tree.py— первичная настройка, конфигурация, управление процессом и HTML-структура.
Публичный репозиторий содержит только файлы, необходимые для установки и запуска приложения; разработческие тесты и проверки в него не входят. Поиск человека в retrieve_person_schedule пока проверен только на синтетических данных.
Лицензия
Проект распространяется по лицензии Apache-2.0.
Ограничения
Срок серверной сессии iStudent не гарантирован: локальная сессия ограничена 15 минутами, и сервер может отказать раньше.
Проверка поиска людей для
retrieve_person_scheduleпока ограничена синтетическими данными.Файлы eLearn загружаются только по одному, если они предварительно перечислены; содержимое не возвращается инструментом списка.
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP for TehProf Booking: browse resources & availability, create & cancel reservations.
Authenticated, user-scoped MCP connectors for 30+ business systems.
MCP server for the Inistate platform: module discovery, entry management, and activity submission.
Remote MCP server for training, nutrition, wellness, and performance data with OAuth 2.0.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for Canvas LMS with automatic OAuth authentication. Enables interaction with courses, assignments, grades, modules, discussions, quizzes, files, calendar, messaging, and more without manual API token management.2,438 npmMIT
- FlicenseAqualityCmaintenanceEnables MCP-compatible clients to read courses, assignments, announcements, files, and grades from a Canvas LMS instance.10-
- FlicenseNot gradedqualityAmaintenanceEnables MCP hosts to query NTULearn courses, announcements, calendar events, and grades, and to download course files into organized folder hierarchies.4-
- FlicenseAqualityBmaintenanceEnables students to access Moorle courses, assignments, grades, announcements, and notifications through authenticated MCP tools.11-