Skip to main content
Glama

moodle-mcp

Сервер протокола контекста модели для Moodle LMS — подключайте Hermes, Claude Code и OpenCode к вашему Moodle. Получайте задания, оценки и дедлайны, синхронизируйте с Obsidian и получайте уведомления в WhatsApp.

Python MCP License: MIT

ОбзорВозможностиБыстрый стартНастройкаНастройка агентовИнструментыСинхронизация с 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

  1. Откройте https://<your-moodle>/user/managetoken.php

  2. Найдите строку с Moodle mobile web service в Service

  3. Скопируйте токен

2. Создайте .env

cp .env.example .env
MOODLE_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

Переменная

Обязательно

Описание

MOODLE_URL

да

REST-адрес Moodle (.../webservice/rest/server.php)

MOODLE_TOKEN

да

Токен мобильного веб-сервиса

MOODLE_MY_CLASS

нет

Регулярное выражение для фильтрации заголовков заданий

OBSIDIAN_VAULT_PATH

нет

Корень хранилища (по умолчанию: ~/Obsidian Vault)

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).

Инструмент

Описание

get_my_courses

Записанные курсы

get_course_content

Разделы и модули для курса

search_course_materials

Поиск по всем материалам

get_course_announcements

Объявления на форуме новостей

get_recent_activity

Недавняя активность с указанной метки

get_course_updates

Новые материалы/объявления

Инструмент

Описание

get_assignments

Задания (отфильтрованные по слоту класса)

get_assignment_status

Статус отправки и оценивания

get_upcoming_deadlines

Дедлайны, отсортированные по дате сдачи

get_overdue_assignments

Просроченные, неотправленные

get_actionable_tasks

Приоритетный список по срочности

analyze_assignment

Статус + требования + материалы

extract_assignment_requirements

Результаты и критерии

find_relevant_materials

Материалы, относящиеся к заданию

decompose_task

Подзадачи с критическим путем

create_implementation_plan

Сроки, ресурсы, этапы

submit_assignment_text

Отправить текстовый ответ

get_assignment_feedback

Отзыв и результаты по рубрикам

Инструмент

Описание

get_grades

Обзор или детали по курсу

get_course_progress

Прогресс завершения

get_course_health

Проверка состояния (прогресс + оценки + просрочка)

get_study_load

Распределение заданий по неделям

get_submission_status_detail

Детальный статус отправки и отзыв

Инструмент

Описание

get_upcoming_events

Предстоящие события Moodle

create_calendar_event

Создать напоминание за 2 дня

get_activity_completion

Статус завершения

mark_activity_complete

Отметить действие выполненным

Инструмент

Описание

semester_dashboard

Курсы + дедлайны + оценки

daily_briefing

Просрочка, сегодня, недавние оценки

weekly_review

Отправлено, оценено, просрочка, прогресс

ask_moodle

Маршрутизация на естественном языке

get_course_updates

Обнаружение изменений в курсе

Инструмент

Описание

sync_moodle_to_obsidian

Полная синхронизация хранилища (автоархив при смене семестра)

export_deadlines_to_obsidian

Только дедлайны

export_course_outline

План курса в виде заметки

list_course_material_files

Список загружаемых файлов

download_course_materials

Загрузить в Materials/

download_assignment_attachments

Загрузить файлы заданий

[!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 — заслуги всех оригинальных участников:

Участник

Роль

Zhonglin Niu

Оригинальный автор, интеграция Moodle REST, ядро сервера

Vitalii Liudvynskyi

Панели, учебная нагрузка, проверки состояния

Daniel Sticker

Исправления содержимого курса и поиска

Lawrence Sinclair

Значок оценки безопасности

Дополнения в этом форке

  • Синхронизация с Obsidian + автоматическое архивирование семестров

  • Загрузка материалов и вложений к заданиям

  • Инструменты отправки работ и отзывов, календарь и завершение

  • Фильтр слотов классов Polibatam (MOODLE_MY_CLASS)

  • Параллельная загрузка (~в 10 раз быстрее практические задачи)

  • Универсальный install-mcp.sh для Hermes / Claude Code / OpenCode

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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