PGEK-moodle-mcp
by alnyx-dev
README.md
# ПГЭК Moodle MCP
MCP-сервер для Moodle Полоцкого государственного экономического колледжа:
каталог курсов, учебные материалы, задания, тесты, форумы — прямо из AI-ассистента.
- Сервер: `http://82.209.208.36:8080/moodle` (настраивается через `MOODLE_URL`)
- Стек: Python 3.10+, FastMCP (`mcp>=1.0,<2`), httpx, BeautifulSoup
- Версия: 0.1.0 · Лицензия: MIT
## Установка
```bash
py -m pip install -r requirements.txt
copy .env.example .env
# впиши MOODLE_SESSION (кука MoodleSession из браузера после входа на Moodle)
py server.py
```
## Подключение к Opencode / Claude Desktop
Скопируй `opencode.example.json` в `opencode.json` (для Opencode)
и впиши абсолютный путь к `server.py`. Либо добавь блок в свой MCP-конфиг:
```json
{
"mcp": {
"pgek-moodle": {
"type": "local",
"command": ["py", "C:\\path\\to\\pgek-moodle-mcp\\server.py"],
"enabled": true
}
}
}
```
Настройки читаются из `.env` (загружается автоматически).
## Tools (14)
| Tool | Доступ | Что делает |
|---|---|---|
| `moodle_status` | — | URL, наличие токена/сессии, режим |
| `moodle_categories` | public | Категории: ПОИТ, БУАиК, право, логистика, IT-Кузница... |
| `moodle_courses_in_category` | public | Курсы категории, пагинация |
| `moodle_course_info` | public | Описание курса + преподаватели |
| `moodle_search` | public | Поиск по каталогу |
| `moodle_whoami` | session | Кто залогинен |
| `moodle_my_courses` | session/token | Мои курсы |
| `moodle_course_contents` | session | Разделы → модули всех типов (`by_type`, флаги hidden/restricted, тексты меток) |
| `moodle_module` | session | Деталка модуля: файлы, обсуждения форума, дедлайны задания, главы книги, внешняя цель ссылки |
| `moodle_module_by_url` | session | Любой внутренний URL: глава книги, обсуждение, `pluginfile.php` |
| `moodle_course_access` | session | Доступ к чужому курсу: full/denied + кому написать |
| `moodle_login` | — | Получить `MOODLE_TOKEN` по логину/паролю |
| `moodle_set_session` | — | Установить `MoodleSession` (мультиюзер) |
| `moodle_rest` | token | Прямой вызов Moodle WebService API |
Типовой флоу: `moodle_course_access` → `moodle_course_contents` → `moodle_module` / `moodle_module_by_url`.
## Важно про доступ
- Каталог (категории, описания, преподаватели) виден всем специальностям без логина.
- Материалы Moodle отдаёт только зачисленным. У чужих курсов нет самозаписи
и гостевого доступа — `moodle_course_access` честно покажет границу.
- Один сервер — любые группы: студент ставит свою куку через `moodle_set_session`.
## Безопасность
- `.env` с `MOODLE_SESSION`/`MOODLE_TOKEN` — только локально, в git не коммитится.
- Сессия протухает: обнови куку из DevTools → Application → Cookies → `MoodleSession`.
- Не публикуй куку и токен — это твой вход в Moodle.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues