FCPC-lms-mcp-server
FCPC LMS MCP server
MCP-сервер, который позволяет ИИ-ассистенту отвечать на вопросы о личном аккаунте студента в Moodle — о сроках сдачи заданий, непрочитанных сообщениях, ожидающих викторинах и записанных курсах.
Студенты подключаются из Claude в вебе, на телефоне или на десктопе, указав один URL. Никакого программного обеспечения устанавливать не нужно, никакие токены вручную копировать не требуется.
Создано для First City Providential College, но работает с любым сайтом Moodle, где включены веб-сервисы.
На что он может отвечать
Когда сдавать задания
Непрочитанные сообщения от преподавателей и однокурсников
Викторины, которые вы не прошли
На какие курсы вы записаны
"Do I have any new messages?"
"What is due this week?"Related MCP server: mcp-moodle
Два способа запуска
Удалённый сервер | Локальный сервер | |
Для кого | Для класса или всего учебного заведения | Для одного человека на его собственном компьютере |
Клиент | Claude (веб, iOS, Android, десктоп) | Любой MCP-клиент на этом компьютере |
Настройка студента | Один URL | Ничего, но нужен установленный репозиторий |
Вход | OAuth, обрабатывается Claude | Токен в |
Точка входа |
|
|
Большинство развёртываний используют удалённый сервер.
Удалённый сервер (рекомендуется)
Требования
Python 3.11 или новее
cloudflared (
brew install cloudflared) или любой другой способ открыть HTTPS-адресАккаунт Moodle на сайте, используется один раз при настройке для записи адреса сайта
Для администратора
Запустите
setup.command(macOS) илиsetup.bat(Windows) один раз и войдите. Это запишет адрес вашего сайта Moodle в.env.Запустите
start-server.command. Он выведет URL, который нужно раздать:
https://xxxx.trycloudflare.com/mcpЗакрытие этого окна останавливает сервер, поэтому оставьте его открытым, пока
сервис используется. Бесплатные адреса trycloudflare.com меняются при каждом
перезапуске; используйте именованный туннель
для постоянного адреса.
Для студентов
Откройте claude.ai в любом браузере, включая телефон.
Перейдите в Настройки → Коннекторы → Добавить пользовательский коннектор.
Дайте ему любое имя и вставьте URL, который вам дали.
Claude откроет страницу входа в Moodle. Войдите, используя свои обычные имя пользователя и пароль Moodle.
На этом вся настройка. После этого он работает и в мобильных приложениях Claude.
Коннекторы можно добавить только с веб-сайта Claude, но браузер на телефоне отлично подходит. После добавления они синхронизируются с приложениями.
Как работает вход
Student's Claude ──HTTPS──▶ MCP server ──▶ Moodle
(OAuth)Каждый пользователь идентифицируется через вход OAuth. Когда студент входит, его токен Moodle шифруется прямо в сам токен доступа и возвращается в Claude.
Сервер не хранит токены Moodle и не хранит пароли
Пароль используется один раз для получения токена, затем отбрасывается
Один пользователь никогда не может увидеть данные другого пользователя
.oauth_key (ключ шифрования) и .oauth_clients.json — секреты. Оба
исключены из git. Удаление .oauth_key приводит к выходу всех пользователей.
Локальный сервер
Для запуска MCP-сервера на вашем собственном компьютере через stdio.
Запустите
setup.command/setup.batили:
python -m venv venv
source venv/bin/activate # macOS/Linux
.\venv\Scripts\activate # Windows PowerShell
pip install -r requirements.txt
python setup_gui.pyУкажите вашему MCP-клиенту на
server.py. Например, вclaude_desktop_config.jsonдля Claude Desktop:
{
"mcpServers": {
"moodle": {
"command": "/path/to/venv/bin/python",
"args": ["/path/to/server.py"]
}
}
}Чтобы увидеть точно, что получает ИИ:
python list_tools.pyТакже есть два автономных чат-клиента: client.py (OpenAI) и
client_localLLM.py (ollama). Оба принимают скрипт сервера в качестве аргумента:
python client.py server.pyТестирование
selftest.py проверяет всё, что можно проверить без браузера: подключение к
Moodle, оба сервера, поток OAuth вплоть до реального вызова инструмента,
а также то, что пользователи не могут видеть данные друг друга.
python selftest.py # all checks
python selftest.py --offline # skip anything needing the networkОн завершается с кодом 0, когда всё проходит, и выводит оставшиеся ручные шаги: регистрацию коннектора в Claude, вход, задавание вопроса и повторение этого на телефоне.
Запускайте его после установки, после изменения кода и на машине, которая будет хостить сервер.
Заметки о Moodle
Некоторые сайты Moodle находятся за Cloudflare и отклоняют обычные HTTPS-клиенты
с HTTP 403. Поэтому запросы идут через curl_cffi с браузерным TLS-отпечатком.
Именно поэтому сервер нельзя переписать, скажем, на Apps Script, и почему он
должен работать где-то с обычным сетевым путём.
Пользователи, которые входят в Moodle через SSO (Google и подобные), не могут
использовать login/token.php. decode_token.py покрывает этот случай.
Файлы
Файл | Назначение |
| Удалённый MCP-сервер с OAuth для коннекторов Claude |
| OAuth-сервер авторизации; не хранит токены |
| Страница входа в Moodle, которую открывает Claude |
| Локальный MCP-сервер через stdio |
| API-клиент Moodle, один токен на экземпляр |
| Получение токена и работа с |
| Мастер настройки |
| Настройка двойным щелчком (macOS / Windows) |
| Публикация удалённого сервера (macOS) |
| Проверка установки от начала до конца |
| Вывод инструментов, которые видит ИИ |
| Получение токена из командной строки |
| Извлечение токена для пользователей SSO |
| Автономные чат-клиенты |
Благодарности
Сам MCP-сервер (server.py, client.py, client_localLLM.py) был написан
Jiseong JEONG (@jeongjisung690).
Оригинальный репозиторий: https://github.com/jeongjisung690/Moodle---MCP-server
Этот репозиторий добавляет:
Поддержку сайтов Moodle за Cloudflare
Автоматическое получение токена по имени пользователя и паролю
Извлечение токена для пользователей SSO
Мастер настройки для нетехнических пользователей
Удалённый MCP-сервер с OAuth, чтобы студенты подключались по одному URL
Лицензия
Лицензия не установлена. Пожалуйста, свяжитесь с авторами перед использованием или распространением этого кода.
This server cannot be deployed
Maintenance
Related MCP Connectors
Run the Geduk LMS from an AI assistant: courses, sessions, enrolments, users and catalogue.
Create, edit, translate, and export SCORM eLearning modules from a connected AI assistant.
Lucky AI study buddy over your own LlamaNotes courses: chat, progress, and AI course generation.
Connect AI assistants to Edusign attendance, courses, learners, documents, and API docs via OAuth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Moodle learning management systems through the REST API. Supports course management, user enrollment, assignment handling, and forum operations through natural language.24 npmMIT
- AlicenseAqualityCmaintenanceEnables AI assistants to interact with Moodle via web services, allowing tasks like listing courses, assignments, events, and downloading files.1036 PyPI4MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to read your Moodle courses, list materials, quizzes, and search content to plan exam preparation through natural language.1-
- AlicenseNot gradedqualityDmaintenanceConnects Moodle LMS with AI assistants through the Model Context Protocol, enabling users to interact with Moodle data via a conversational chatbot interface.4 npmMIT