moodle-mcp-server
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_8f3k2q9xserver.name— отображаемая метка для человека
Если server.id отсутствует, ядро генерирует его один раз и сохраняет в разрешенный файл конфигурации перед продолжением запуска.
Переопределения через переменные окружения:
MOODLE_MCP_CONFIGилиMOODLE_MCP_SERVER_CONFIG— выбор пути к файлу конфигурацииSERVER_ID— явное переопределениеserver.idSERVER_NAME— явное переопределениеserver.nameSERVER_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)
Инструмент | Описание |
| Полный каталог курсов с детализацией по категориям |
| Детальный просмотр любого курса |
| Записанные пользователи с ролями и данными доступа (теперь поддерживает поиск по названию курса с интерактивным выбором) |
| Все задания с датами выполнения |
| Полная иерархия с точным разрешением родительских категорий |
| Обзор экземпляра — название сайта, версия, количество курсов |
| Детальный просмотр пользователя Moodle |
| Курсы для конкретного пользователя |
| Поиск пользователей по стандартным полям идентификации Moodle |
| Поиск курсов по названию с частичным совпадением и интерактивным выбором |
Плагины премиум (доступны отдельно)
Расширенная отчетность — журналы оценок, сравнение между курсами, конструктор пользовательских отчетов
Аналитика пользователей — отслеживание прогресса, оценка вовлеченности, флаги риска
Каталог пользователей — кэшированный список каталога и структурированная фильтрация по стандартным и пользовательским полям профиля
Пакет соответствия — отслеживание сертификации, уведомления об истечении срока действия, экспорт аудита
Архитектура
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Режимы транспорта
Stdio —
dist/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, занимающейся разработкой программного обеспечения, специализирующейся на интеграции ИИ, системной инженерии и автоматизации рабочих процессов.
Контакты: contact@csmediapro.com
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
- AlicenseBqualityDmaintenanceAn MCP server that enables LLMs to interact with Moodle platforms to manage courses, students, assignments, and quizzes through natural language commands.71141MIT
- AlicenseBqualityDmaintenanceAn MCP server that enables LLMs to interact with the Moodle platform to manage courses, students, assignments, and quizzes.711MIT
- Alicense-qualityDmaintenanceA 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.14MIT
- Flicense-qualityBmaintenanceA Model Context Protocol (MCP) server that connects AI coding agents to your Moodle LMS. Fetch assignments, grades, deadlines, and sync everything to Obsidian automatically.
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
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/csmediapro/moodle-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server