Moodle-MCP
MCP-сервер читает курсы, дедлайны, тесты и файлы из Moodle по официальному API без браузера и сторонних пакетов.
- 206 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Личный токен Moodle хранится в `config.json` или переменной окружения и виден в ссылках на файлы.
- Скачивание недели пишет файлы в выбранную локальную папку.
Установка
- Работает в
Ручная установка
{
"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: агент ведет задания, оценки и модули курса от имени студента или преподавателя
AoA Course Connector
aoa-course-connector
MCP-сервер, который читает курсы на GetCourse, Skillspace и Stepik и превращает их в локальную базу знаний с поиском и цитатами
Агент создает вопросы и экзамены на платформе EduBase, собирает квизы и разбирает результаты; ключ интеграции, режим чтения
Официальный MCP-сервер Kibela ищет, читает и правит заметки, папки и комментарии вашей вики прямо из чата с ассистентом
MCP-сервер Mattermost: агент читает каналы, ищет и публикует сообщения, работает с ветками и файлами, 39 инструментов.
Redmine MCP Server — задачи и время
Redmine MCP Server
MCP-сервер для Redmine: задачи, вики, учет времени и файлы, режим только чтения и вход через OAuth2 для каждого пользователя
Коротко о README
Последний релиз 1.3.0 от 27 октября 2026 года добавил `moodle_quiz_status` с реальным состоянием попыток и баллами. Работа проверена на Moodle 4.3.6.