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: Moodle MCP Server
Два способа запуска
Удалённый сервер | Локальный сервер | |
Для кого | Для класса или всего учебного заведения | Для одного человека на его собственном компьютере |
Клиент | 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 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
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Moodle learning management systems through the Moodle REST API. Supports course management, user enrollment, assignments, forums, quizzes, and file operations through natural language.14MIT
- 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.14MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to interact with Moodle via web services, allowing tasks like listing courses, assignments, events, and downloading files.104MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to read your Moodle courses, list materials, quizzes, and search content to plan exam preparation through natural language.1
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Connect AI assistants to ITM Platform projects, tasks, budgets, risks, and team workload.
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/Ogaaawa/FCPC-lms-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server