Moodle-MCP

MCP-сервер читает курсы, дедлайны, тесты и файлы из Moodle по официальному API без браузера и сторонних пакетов.

  • 206 ★ репозитория
  • Последний коммит
  • MIT
MCP-сервер

Расширенный доступ

Почему такой уровень

  • Личный токен Moodle хранится в `config.json` или переменной окружения и виден в ссылках на файлы.
  • Скачивание недели пишет файлы в выбранную локальную папку.
Все причины и проверки

faixiang/moodle-mcp

Установка

Ручная установка

{
  "mcpServers": {
    "moodle": {
      "command": "python",
      "args": ["/absolute/path/to/Moodle-MCP/server.py"]
    }
  }
}

Блок из шага Register the server в README (Claude Desktop и Cursor). URL и токен задают в `config.json` рядом с `server.py` или в переменных окружения.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Личный токен Moodle хранится в `config.json` или переменной окружения и виден в ссылках на файлы.
  • Скачивание недели пишет файлы в выбранную локальную папку.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Moodle-MCP, один файл `server.py` на стандартной библиотеке Python, подключает агента к Moodle 3.x и 4.x через Web Services. Десять инструментов только читают данные: список курсов, свежие обновления, невыполненные задания с делением на срочные и просроченные, состояние тестов, структура курса и недельная сводка. Инструмент `moodle_download_week` скачивает слайды и вложения недели в локальную папку и сверяет размеры. Ничего в Moodle он не отправляет. Токен берется из `config.json` или переменных `MOODLE_URL` и `MOODLE_TOKEN`. В репозитории есть README на русском и подключен скилл `moodle-course-watch`.

Для кого. Студентам и преподавателям, чей вуз использует Moodle и кто хочет спрашивать агента о дедлайнах и новых материалах курсов.

Подходит, если

  • Утром нужна сводка: что сдавать на этой неделе и что уже просрочено.
  • Материалы новой недели курса надо разложить по папкам.
  • Агент проверяет, какие тесты не начаты и когда они закрываются.
  • Токен выдан администратором, и сайт Moodle отдает данные по REST.

Не подходит, если

  • На сайте Moodle отключены Web Services или REST.
  • Нужно сдавать работы и редактировать курсы: инструментов записи нет.
  • Вход идет только через SSO и токен получить нельзя.

Пример запроса к агенту

Покажи задания, которые надо сдать в ближайшие 7 дней, и отдельно просроченные, по всем моим курсам.

MCP

Транспорт
stdio
Авторизация
API-ключ

Переменные окружения

MOODLE_URL обязательная
Базовый адрес сайта Moodle без пути
MOODLE_TOKEN обязательная, секрет
Личный токен из раздела Manage access keys

Ограничения

Нужен личный токен Moodle и включенные Web Services. При SSO токен создают через раздел Manage access keys, скрипт `get_token.py` для SSO не подходит. Ссылки на файлы в ответах уже содержат токен, не публикуйте их и захваченный трафик. Вызовы идут по очереди с паузой 150 мс, чтобы не вызвать ошибку 502 у защиты сайта. Скачанные файлы лежат только на вашем диске, но их содержимое агент может передать своему провайдеру модели. Работа проверена на Moodle 4.3.6, у других сборок набор доступных функций токена может отличаться.

Как отключить. Удалите запись `moodle` из `mcp.json` клиента и отзовите токен в разделе Manage access keys своего Moodle. Файл `config.json` с токеном тоже удалите.

Частые вопросы

С чего начать?

С `moodle_weekly_digest`: он за один вызов дает свежие материалы, ближайшие дедлайны и просрочки. Для проверки токена служит `moodle_site_info`.

Как получить токен?

В Moodle откройте аватар, затем Preferences, Account, Security, Manage access keys и создайте ключ для сервиса Moodle mobile web service. Вариант с локальным паролем есть в `get_token.py`.

Может ли сервер что-то изменить в Moodle?

Нет. В коде нет вызовов отправки, записи на курс, правки или удаления, все инструменты работают на чтение.

Нужны ли пакеты?

Нет, хватает Python версии 3.8 или новее и стандартной библиотеки. Команда запуска — `python server.py`.

Есть ли русская документация?

Да, в репозитории лежит `README.ru.md`, как и версии на других языках. Основной README написан по-английски.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы

MCP-сервер для Canvas LMS: агент ведет задания, оценки и модули курса от имени студента или преподавателя

MCP-серверШирокий доступ324Звезды репозитория

AoA Course Connector

aoa-course-connector

Российский стек

MCP-сервер, который читает курсы на GetCourse, Skillspace и Stepik и превращает их в локальную базу знаний с поиском и цитатами

MCP-серверРасширенный доступ1Звезды репозитория
Официальный

Агент создает вопросы и экзамены на платформе EduBase, собирает квизы и разбирает результаты; ключ интеграции, режим чтения

MCP-серверШирокий доступ28Звезды репозитория
Официальный

Официальный MCP-сервер Kibela ищет, читает и правит заметки, папки и комментарии вашей вики прямо из чата с ассистентом

MCP-серверРасширенный доступ16Звезды репозитория
Официальный

MCP-сервер Mattermost: агент читает каналы, ищет и публикует сообщения, работает с ветками и файлами, 39 инструментов.

MCP-серверШирокий доступ53Звезды репозитория

MCP-сервер для Redmine: задачи, вики, учет времени и файлы, режим только чтения и вход через OAuth2 для каждого пользователя

MCP-серверШирокий доступ92Звезды репозитория

Коротко о README

Последний релиз 1.3.0 от 27 октября 2026 года добавил `moodle_quiz_status` с реальным состоянием попыток и баллами. Работа проверена на Moodle 4.3.6.

Бейдж для README

Сообщить о проблеме