moodle-mcp
moodle-mcp
Сервер протокола контекста модели для Moodle LMS — подключайте Hermes, Claude Code и OpenCode к вашему Moodle. Получайте задания, оценки и дедлайны, синхронизируйте с Obsidian и получайте уведомления в WhatsApp.
Обзор • Возможности • Быстрый старт • Настройка • Настройка агентов • Инструменты • Синхронизация с Obsidian
Обзор
moodle-mcp соединяет API веб-сервисов Moodle с протоколом контекста модели, позволяя AI-агентам выступать в роли вашего академического ассистента. Он создан для Polibatam (фильтрация по нескольким классам), но работает с любым экземпляром Moodle, где включены веб-сервисы.
Форк loyaniu/moodle-mcp — расширен с 22 до 40 инструментов с синхронизацией Obsidian, загрузкой материалов, инструментами для отправки работ, интеграцией календаря, параллельной загрузкой и автоматическим архивированием семестров.
[!TIP] Работает с любой Moodle LMS — просто укажите
MOODLE_URLна ваш экземпляр. Фильтр классов Polibatam (MOODLE_MY_CLASS) необязателен.
Related MCP server: mcp-moodle
Возможности
Задания и дедлайны — отфильтрованы по слоту класса, отсортированы по срочности, с практическими списками задач
Оценки и прогресс — проверка состояния курса, учебная нагрузка и отслеживание завершения
Содержимое курса и поиск — разделы, модули, материалы, объявления, недавняя активность
Синхронизация с Obsidian — экспорт панелей, дедлайнов и заметок курса одной командой (с автоматическим архивированием семестров)
Загрузка материалов — просмотр и загрузка файлов курса и вложений к заданиям
Отправка работ — отправка текста, проверка статуса и чтение отзывов
Календарь — предстоящие события, создание напоминаний (за 2 дня), отметка выполненных действий
Готовность к агентам — единый
install-mcp.shдля Hermes, Claude Code и OpenCode
Быстрый старт
Установка одной командой
curl -fsSL https://raw.githubusercontent.com/zuckdorsey/moodle-mcp/main/scripts/install-mcp.sh | bashАвтоматически определяет установленных агентов и настраивает каждого. Для пробного запуска:
bash scripts/install-mcp.sh --dry-runПроверка
# Hermes (profile: akademik)
hermes --profile akademik mcp test moodle
# → ✓ Connected ✓ Tools discovered: 40
# Claude Code
claude mcp list
# Run tests
PYTHONPATH=src .venv/bin/python -m unittest discover -s tests -v[!NOTE] При разработке предпочитайте локальный исходный код PyPI — лаунчер автоматически устанавливает
PYTHONPATHвsrc/.
Настройка
1. Получите токен Moodle
Откройте
https://<your-moodle>/user/managetoken.phpНайдите строку с Moodle mobile web service в
ServiceСкопируйте токен
2. Создайте .env
cp .env.example .envMOODLE_URL=https://your-moodle.example.com/webservice/rest/server.php
MOODLE_TOKEN=your_token_here
# Optional — Polibatam class-slot filter (e.g. Pagi C, Siang A)
MOODLE_MY_CLASS=Pagi C
# Optional — custom vault path
OBSIDIAN_VAULT_PATH=/home/you/Obsidian VaultПеременная | Обязательно | Описание |
| да | REST-адрес Moodle ( |
| да | Токен мобильного веб-сервиса |
| нет | Регулярное выражение для фильтрации заголовков заданий |
| нет | Корень хранилища (по умолчанию: |
3. Установите пакет
# with uv (recommended)
uv pip install -e .
# or pip
pip install -e .[!WARNING] Никогда не коммитьте
.env— он содержит токен с полным доступом к API. Он уже в.gitignore.
Настройка агентов
Выберите своего агента — все используют один и тот же локальный лаунчер scripts/moodle_mcp_local_launch.py.
Hermes Agent (рекомендуется)
bash scripts/install-mcp.sh --agent hermes --profile akademikВручную (~/.hermes/profiles/akademik/config.yaml):
mcp_servers:
moodle:
command: /home/you/Programming/Python/moodle-mcp/.venv/bin/python
args: [/home/you/Programming/Python/moodle-mcp/scripts/moodle_mcp_local_launch.py]
env:
MOODLE_URL: ${MOODLE_URL}
MOODLE_TOKEN: ${MOODLE_TOKEN}
MOODLE_MY_CLASS: "Pagi C"
OBSIDIAN_VAULT_PATH: "/home/you/Obsidian Vault"Claude Code
bash scripts/install-mcp.sh --agent claude-code
# or manually
claude mcp add -s user moodle-mcp -- python3 /path/to/moodle-mcp/scripts/moodle_mcp_local_launch.pyГлобальный JSON (~/.claude/settings.json):
{
"mcpServers": {
"moodle-mcp": {
"command": "python3",
"args": ["/path/to/moodle-mcp/scripts/moodle_mcp_local_launch.py"],
"env": {
"MOODLE_URL": "https://your-moodle/webservice/rest/server.php",
"MOODLE_TOKEN": "your_token_here"
}
}
}
}OpenCode
bash scripts/install-mcp.sh --agent opencode~/.config/opencode/config.json:
{
"mcp": {
"moodle-mcp": {
"command": "python3",
"args": ["/path/to/moodle-mcp/scripts/moodle_mcp_local_launch.py"],
"environment": {
"MOODLE_URL": "https://your-moodle/webservice/rest/server.php",
"MOODLE_TOKEN": "your_token_here"
}
}
}
}Claude Desktop / Cursor
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"moodle-mcp": {
"command": "uvx",
"args": ["moodle-mcp"],
"env": {
"MOODLE_URL": "https://your-moodle/webservice/rest/server.php",
"MOODLE_TOKEN": "your_token_here"
}
}
}
}Перезапустите десктопное приложение — инструменты появятся в палитре.
Инструменты
40 инструментов в 7 группах. Вызывайте их по имени из любого подключенного агента (например, "список моих курсов Moodle" → get_my_courses).
Инструмент | Описание |
| Записанные курсы |
| Разделы и модули для курса |
| Поиск по всем материалам |
| Объявления на форуме новостей |
| Недавняя активность с указанной метки |
| Новые материалы/объявления |
Инструмент | Описание |
| Задания (отфильтрованные по слоту класса) |
| Статус отправки и оценивания |
| Дедлайны, отсортированные по дате сдачи |
| Просроченные, неотправленные |
| Приоритетный список по срочности |
| Статус + требования + материалы |
| Результаты и критерии |
| Материалы, относящиеся к заданию |
| Подзадачи с критическим путем |
| Сроки, ресурсы, этапы |
| Отправить текстовый ответ |
| Отзыв и результаты по рубрикам |
Инструмент | Описание |
| Обзор или детали по курсу |
| Прогресс завершения |
| Проверка состояния (прогресс + оценки + просрочка) |
| Распределение заданий по неделям |
| Детальный статус отправки и отзыв |
Инструмент | Описание |
| Предстоящие события Moodle |
| Создать напоминание за 2 дня |
| Статус завершения |
| Отметить действие выполненным |
Инструмент | Описание |
| Курсы + дедлайны + оценки |
| Просрочка, сегодня, недавние оценки |
| Отправлено, оценено, просрочка, прогресс |
| Маршрутизация на естественном языке |
| Обнаружение изменений в курсе |
Инструмент | Описание |
| Полная синхронизация хранилища (автоархив при смене семестра) |
| Только дедлайны |
| План курса в виде заметки |
| Список загружаемых файлов |
| Загрузить в |
| Загрузить файлы заданий |
[!TIP] Попробуйте: "что нужно сдать на этой неделе?" →
get_upcoming_deadlines, "проанализируй задание по базам данных" →analyze_assignment, "синхронизируй с Obsidian" →sync_moodle_to_obsidian.
Синхронизация с Obsidian
Синхронизация создает заметки в папке Academic/Moodle вашего хранилища:
Obsidian Vault/Academic/
Moodle/ ← current semester (always up-to-date)
.semester_courses.json ← hidden state (course IDs)
Dashboard.md
Deadlines.md
Grades.md
Courses/
Archive/
Semester-2026-07/ ← auto-created on rollover
Dashboard.md
Courses/
Archive-README.mdАвтоматическое архивирование семестра срабатывает, когда более 50% ID курсов меняются (или все новые). Замена одного курса игнорируется.
PYTHONPATH=src python - <<'PY'
from moodle_mcp import api
print(api.sync_moodle_to_obsidian())
PYЗамечания по безопасности
[!CAUTION] Ваш токен Moodle предоставляет полный доступ к API от вашего имени. Относитесь к нему как к паролю.
Токены загружаются на стороне сервера и никогда не отправляются модели.
Указывайте
MOODLE_URL/MOODLE_TOKENкак секреты окружения в CI.moodle.pyиспользуетUser-Agentкак у браузера + POST для совместимости с Cloudflare.
Благодарности
Форк loyaniu/moodle-mcp — заслуги всех оригинальных участников:
Участник | Роль |
Оригинальный автор, интеграция Moodle REST, ядро сервера | |
Панели, учебная нагрузка, проверки состояния | |
Исправления содержимого курса и поиска | |
Значок оценки безопасности |
Дополнения в этом форке
Синхронизация с Obsidian + автоматическое архивирование семестров
Загрузка материалов и вложений к заданиям
Инструменты отправки работ и отзывов, календарь и завершение
Фильтр слотов классов Polibatam (
MOODLE_MY_CLASS)Параллельная загрузка (~в 10 раз быстрее практические задачи)
Универсальный
install-mcp.shдля Hermes / Claude Code / OpenCode
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 Servers
- Alicense-qualityCmaintenanceProvides Claude with full access to Moodle learning management systems, enabling interaction with courses, files, assignments, grades, and calendar events. It also supports building Obsidian study vaults from course materials through automated knowledge graph creation.1416MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to interact with Moodle via web services, allowing tasks like listing courses, assignments, events, and downloading files.104MIT
- Alicense-qualityDmaintenanceEnables AI agents to interact with Moodle LMS via the Moodle REST API, supporting management of courses, users, enrollments, grades, and content.GPL 3.0
- Flicense-qualityCmaintenanceEnables AI assistants to automatically pull Canvas LMS course materials into Obsidian, syncing files, assignments, grades, and announcements organized by course and module.
Related MCP Connectors
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.
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/zuckdorsey/moodle-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server