Skip to main content
Glama

moodle-mcp-server — Аналитика LMS на базе ИИ

Задайте вашему Moodle любой вопрос. Получите структурированные ответы за секунды.

moodle-mcp-server — это открытый MCP-сервер (Model Context Protocol), который напрямую подключает ИИ-агентов к API веб-сервисов Moodle. Это коннектор Moodle, лежащий в основе более широкой работы CSMediaPro над Agentic Query Layer (AQL).

Вместо изучения конструкторов отчетов, написания SQL или экспорта CSV вы задаете вопросы на простом английском — ИИ-агент запрашивает вашу LMS и возвращает структурированные данные.

Домашняя страница проекта: https://csmediapro.com/products/moodle-mcp-server npm-пакет: https://www.npmjs.com/package/moodle-mcp-server-aql Реестр MCP: io.github.csmediapro/moodle-mcp-server-aql


Возможности

  • Основные инструменты запросов — каталог курсов, запись пользователей, задания, навигация по категориям, метаданные сайта, поиск пользователей и управление кэшем

  • Плагины премиум-отчетности — дополнительные инструменты, такие как отчеты о завершении курсов и недавняя активность, могут быть подключены через среду выполнения плагинов

  • Независимость от LLM — работает с Claude, GPT, Gemini, Ollama или любым MCP-совместимым ИИ-клиентом

  • Нулевая модификация LMS — использует существующий API веб-сервисов Moodle, установка плагинов не требуется

  • Обработка данных с учетом соответствия требованиям — безопасная, эффективная обработка данных с конфиденциальностью по дизайну

  • Только чтение — никогда не изменяет данные Moodle, безопасно для производства

  • Расширяемость через плагины — поместите новые модули инструментов в каталог; инструменты и необязательные подсказки для маршрутизации агентов автоматически регистрируются во время выполнения


Related MCP server: Moodle MCP Server

Быстрый старт

Предварительные требования

  • Node.js 20+

  • Экземпляр Moodle с включенными веб-сервисами

  • Токен API Moodle (Администрирование сайта → Плагины → Веб-сервисы → Управление токенами)

Использование с MCP-клиентом

Большинство пользователей запускают сервер через MCP-клиент, например Claude Desktop:

{
  "mcpServers": {
    "moodle-mcp-server-aql": {
      "command": "npx",
      "args": ["-y", "moodle-mcp-server-aql"],
      "env": {
        "MOODLE_URL": "https://your-moodle-instance.example",
        "MOODLE_TOKEN": "your-moodle-web-services-token"
      }
    }
  }
}

Настройка из исходного кода

# Clone the repo
git clone https://github.com/csmediapro/moodle-mcp-server
cd moodle-mcp-server

# Install dependencies
npm install

# Configure
cp packages/server/.env.example packages/server/.env
# Edit .env: add your MOODLE_URL and MOODLE_TOKEN

# Run (stdio mode)
npm run server:build
node packages/server/dist/index.js

Схема полей пользователя

Настройки отображения полей пользователя генерируются для каждого экземпляра Moodle и хранятся локально в packages/server/data/user-field-schema.json. Этот файл намеренно игнорируется git, так как может содержать пользовательские поля профиля, специфичные для сайта.

После подключения к сайту Moodle запустите инструмент refresh_user_field_schema один раз, чтобы обнаружить доступные стандартные и пользовательские поля. Минимальный примерный шаблон включен в packages/server/data/user-field-schema.example.json.

Плагин user-directory хранит нормализованный полный кэш пользователей с пользовательскими полями профиля, сведенными в ключи верхнего уровня, такие как school. После создания этого кэша list_users может фильтровать кэшированных пользователей в памяти, а summarize_user_directory_field может возвращать кэшированные уникальные значения и их количество. Например, «показать уникальные школы» или «показать школы и количество пользователей, назначенных каждой из них» суммирует кэшированное поле school без дополнительного запроса к Moodle.

Идентификация конфигурации

Ядро содержит два различных поля идентификации сервера:

  • server.id — стабильная идентификация машины, например mcp_8f3k2q9x

  • server.name — отображаемая метка для человека

Если server.id отсутствует, ядро генерирует его один раз и сохраняет в разрешенный файл конфигурации перед продолжением запуска.

Переопределения через переменные окружения:

  • MOODLE_MCP_CONFIG или MOODLE_MCP_SERVER_CONFIG — выбор пути к файлу конфигурации

  • SERVER_ID — явное переопределение server.id

  • SERVER_NAME — явное переопределение server.name

  • SERVER_VERSION — явное переопределение server.version

Если server.id отсутствует и путь к разрешенному файлу конфигурации недоступен для записи, запуск намеренно завершается ошибкой.

Использование эталонного клиента

# From the project root
cp packages/client/.env.example packages/client/.env
npm run client:dev
# Open http://localhost:3000

Клиент автоматически обнаружит ваш экземпляр Moodle и предоставит интерфейс чата, где вы сможете задавать вопросы на простом английском.


Подключение LLM

Для работы интерфейса на естественном языке moodle-mcp-server требуется модель ИИ. Вы предоставляете модель — ядро moodle-mcp-server и эталонный клиент поддерживают любого провайдера, совместимого с MCP.

Вариант 1: Локальный запуск (рекомендуется для скорости и конфиденциальности)

Локальный запуск модели сохраняет все данные на вашем собственном оборудовании — ничего не покидает вашу сеть. Современные квантизированные модели хорошо работают на потребительских GPU и даже на установках только с CPU.

Производительность: Квантизированная модель 24B на одном RTX 3090 выдает ответы примерно за 1.5 секунды после первого запроса — быстрее, чем большинство облачных API после инициализации системы.

Через Ollama (самый простой способ)

# Install Ollama: https://ollama.com
ollama pull gemma3:12b      # Fast, reliable tool use (~200ms TTFT)
ollama pull qwen3:14b       # Strong reasoning, good for complex queries
ollama pull deepseek-r1:14b # Excellent at multi-step chains

Затем укажите эталонному клиенту адрес http://localhost:11434 (по умолчанию для Ollama).

Через llama.cpp (максимальный контроль)

# Download a GGUF model (example: Devstral 24B Q4)
# Run the llama.cpp server:
llama-server -m devstral-24b-Q4_K_M.gguf --ctx-size 60000 --port 8080

Укажите эталонному клиенту адрес http://localhost:8080/v1.

Рекомендуемые локальные модели

Модель

Размер

Лучше всего подходит для

Оборудование

Gemma 3 12B

~7 ГБ VRAM

Быстрые вызовы инструментов, простые запросы

Один потребительский GPU

Qwen 3 14B

~8.5 ГБ VRAM

Сложные рассуждения, цепочки из нескольких инструментов

Один потребительский GPU

Devstral 24B Q4

~14.5 ГБ VRAM

Максимальные возможности, контекст 60K

RTX 3090 / 4090

Вариант 2: Облачные провайдеры

Anthropic (Claude):

export ANTHROPIC_API_KEY=sk-ant-...

Выберите «Anthropic» в раскрывающемся списке провайдеров эталонного клиента. Claude Sonnet предлагает наиболее надежное поведение вызова инструментов.

OpenAI (GPT):

export OPENAI_API_KEY=sk-...

Выберите «OpenAI» в раскрывающемся списке провайдеров. GPT-4o хорошо справляется со структурированными запросами.

Ollama Cloud: Использует тот же API, что и локальный Ollama, размещенный по адресу https://ollama.com/v1. Хороший компромисс — быстрее, чем локальный холодный старт, более конфиденциально, чем у крупных облачных провайдеров.

Вариант 3: Claude Desktop (прямое MCP)

Claude Desktop подключается к ядру moodle-mcp-server напрямую через stdio — эталонный клиент не требуется.

Добавьте в конфигурацию Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "moodle-mcp-server": {
      "command": "node",
      "args": ["/path/to/moodle-mcp-server/packages/server/dist/index.js"],
      "env": {
        "MOODLE_URL": "https://your-moodle-instance.com",
        "MOODLE_TOKEN": "your-api-token"
      }
    }
  }
}

Перезапустите Claude Desktop. Инструменты сервера появятся в списке инструментов Claude — задавайте вопросы напрямую.


Инструменты

Основные инструменты (бесплатно, с открытым исходным кодом — AGPL)

Инструмент

Описание

list_courses

Полный каталог курсов с детализацией по категориям

get_course

Детальный просмотр любого курса

list_course_users

Записанные пользователи с ролями и данными доступа (теперь поддерживает поиск по названию курса с интерактивным выбором)

list_assignments

Все задания с датами выполнения

list_categories

Полная иерархия с точным разрешением родительских категорий

get_site_info

Обзор экземпляра — название сайта, версия, количество курсов

get_user

Детальный просмотр пользователя Moodle

list_user_courses

Курсы для конкретного пользователя

search_users

Поиск пользователей по стандартным полям идентификации Moodle

search_courses_by_name

Поиск курсов по названию с частичным совпадением и интерактивным выбором

Плагины премиум (доступны отдельно)

  • Расширенная отчетность — журналы оценок, сравнение между курсами, конструктор пользовательских отчетов

  • Аналитика пользователей — отслеживание прогресса, оценка вовлеченности, флаги риска

  • Каталог пользователей — кэшированный список каталога и структурированная фильтрация по стандартным и пользовательским полям профиля

  • Пакет соответствия — отслеживание сертификации, уведомления об истечении срока действия, экспорт аудита


Архитектура

User (plain English question)
    │
    ▼
AI Agent (Claude / GPT / Gemini / Ollama / local)
    │
    ▼  MCP Protocol
`moodle-mcp-server`
    ├── Tool Registry (core + plugins)
    ├── Agent Runtime Config (core + plugin rules)
    ├── Optimized Data Layer (secure, efficient data handling)
    └── Moodle Client (REST API calls)
    │
    ▼
Moodle Web Services API

Режимы транспорта

  • Stdiodist/index.js — запускается как подпроцесс, используется Claude Desktop и подобными клиентами

Ядро OSS намеренно поставляется только с stdio. Любая сетевая оболочка, удаленное управление или подключение премиум-плагинов относятся к отдельному коммерческому узловому агенту или оболочке.

Документация по плагинам


Лицензия

AGPL v3 — см. LICENSE.

Это означает, что вы можете:

  • ✅ Бесплатно использовать ядро moodle-mcp-server в любом окружении

  • ✅ Изменять исходный код под свои нужды

  • ✅ Создавать и распространять производные работы

Вы не можете:

  • ❌ Переупаковывать ядро moodle-mcp-server как закрытый коммерческий продукт-конкурент

  • ❌ Предлагать его как сетевой сервис без раскрытия ваших модификаций

Уведомление о товарных знаках

Moodle является товарным знаком Moodle Pty Ltd. moodle-mcp-server — это независимый проект CSMediaPro, не аффилированный, не одобренный, не спонсируемый и не имеющий официальной связи с Moodle Pty Ltd или проектом Moodle. Название используется описательно для обозначения совместимости с Moodle LMS.


Создано CSMediaPro

moodle-mcp-server создан и поддерживается компанией CSMediaPro, занимающейся разработкой программного обеспечения, специализирующейся на интеграции ИИ, системной инженерии и автоматизации рабочих процессов.

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

Maintenance

Maintainers
Response time
Release cycle
1Releases (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

  • A
    license
    -
    quality
    D
    maintenance
    A powerful Model Context Protocol (MCP) server that seamlessly integrates AI assistants with Moodle Learning Management System. Enable your AI assistant to access courses, retrieve educational content, download resources, and search through your learning materials.
    14
    MIT
  • F
    license
    -
    quality
    B
    maintenance
    A Model Context Protocol (MCP) server that connects AI coding agents to your Moodle LMS. Fetch assignments, grades, deadlines, and sync everything to Obsidian automatically.

View all related MCP servers

Related MCP Connectors

  • Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer

  • An MCP server that integrates with Discord to provide AI-powered features.

  • An MCP server that gives your AI access to the source code and docs of all public github repos

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/csmediapro/moodle-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server