Skip to main content
Glama

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

Токен в .env

Точка входа

remote_server.py

server.py

Большинство развёртываний используют удалённый сервер.


Удалённый сервер (рекомендуется)

Требования

  • Python 3.11 или новее

  • cloudflared (brew install cloudflared) или любой другой способ открыть HTTPS-адрес

  • Аккаунт Moodle на сайте, используется один раз при настройке для записи адреса сайта

Для администратора

  1. Запустите setup.command (macOS) или setup.bat (Windows) один раз и войдите. Это запишет адрес вашего сайта Moodle в .env.

  2. Запустите start-server.command. Он выведет URL, который нужно раздать:

https://xxxx.trycloudflare.com/mcp

Закрытие этого окна останавливает сервер, поэтому оставьте его открытым, пока сервис используется. Бесплатные адреса trycloudflare.com меняются при каждом перезапуске; используйте именованный туннель для постоянного адреса.

Для студентов

  1. Откройте claude.ai в любом браузере, включая телефон.

  2. Перейдите в Настройки → Коннекторы → Добавить пользовательский коннектор.

  3. Дайте ему любое имя и вставьте URL, который вам дали.

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

  1. Запустите 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
  1. Укажите вашему 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 покрывает этот случай.

Файлы

Файл

Назначение

remote_server.py

Удалённый MCP-сервер с OAuth для коннекторов Claude

oauth_provider.py

OAuth-сервер авторизации; не хранит токены

login_page.py

Страница входа в Moodle, которую открывает Claude

server.py

Локальный MCP-сервер через stdio

moodle_client.py

API-клиент Moodle, один токен на экземпляр

moodle_auth.py

Получение токена и работа с .env

setup_gui.py

Мастер настройки

setup.command / setup.bat

Настройка двойным щелчком (macOS / Windows)

start-server.command

Публикация удалённого сервера (macOS)

selftest.py

Проверка установки от начала до конца

list_tools.py

Вывод инструментов, которые видит ИИ

get_token.py

Получение токена из командной строки

decode_token.py

Извлечение токена для пользователей SSO

client.py, client_localLLM.py

Автономные чат-клиенты

Благодарности

Сам MCP-сервер (server.py, client.py, client_localLLM.py) был написан Jiseong JEONG (@jeongjisung690). Оригинальный репозиторий: https://github.com/jeongjisung690/Moodle---MCP-server

Этот репозиторий добавляет:

  • Поддержку сайтов Moodle за Cloudflare

  • Автоматическое получение токена по имени пользователя и паролю

  • Извлечение токена для пользователей SSO

  • Мастер настройки для нетехнических пользователей

  • Удалённый MCP-сервер с OAuth, чтобы студенты подключались по одному URL

Лицензия

Лицензия не установлена. Пожалуйста, свяжитесь с авторами перед использованием или распространением этого кода.

F
license - not found
Not graded
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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    14
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Moodle learning management systems through the REST API. Supports course management, user enrollment, assignment handling, and forum operations through natural language.
    14
    MIT

View all related MCP servers

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.

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/Ogaaawa/FCPC-lms-mcp-server'

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