mti-lms-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mti-lms-mcpwhat's my schedule for tomorrow?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🌐 Русская версия
⚖️ Дисклеймер: Данный проект является независимой любительской разработкой и создан исключительно в ознакомительных, исследовательских и образовательных целях для интеграции персонального ИИ-ассистента. Проект не является официальным и не аффилирован с ОАНО ВО «МосТех» (Московский технологический институт / lms.mti.moscow) либо его подразделениями. Сервер не производит обход систем аутентификации, не модифицирует платформу и выполняет запросы исключительно в рамках стандартных прав текущей пользовательской сессии. Автор проекта не несёт ответственности за действия пользователей, возможные технические сбои, сетевые ограничения или академические последствия отправки учебных материалов. Пользователь использует инструмент под собственную ответственность.
📖 О проекте
mti-lms-mcp — открытый MCP-сервер, позволяющий подключить личный кабинет студента lms.mti.moscow напрямую к любым ИИ-ассистентам, агентным средам и IDE, поддерживающим стандарт Model Context Protocol (MCP).
Сервер работает как локально (через универсальный транспорт stdio), так и удалённо (через Streamable HTTP / SSE / OAuth для Claude.ai).
Что умеет ассистент с этим сервером:
📅 Расписание: проверять пары, семинары и ссылки на вебинары.
📚 Дисциплины и темы: видеть список предметов текущего или любого семестра и текущий прогресс.
📝 Задания и дедлайны: читать полные формулировки практических, тестов и контрольных мероприятий, скачивать методички и проверять статус сдачи.
📊 Оценки: выгружать баллы текущего контроля успеваемости (ТКУ) и зачётную книжку за всё время обучения.
🔔 Уведомления и сообщения: отслеживать проверенные работы, выставленные баллы и переписку в ЛМС.
🎓 Учебный план и финансы: смотреть часы/ЗЕТ по дисциплинам и состояние оплаты обучения.
📤 Безопасная сдача работ: отправлять решения на проверку с обязательным подтверждением (
dry-run).
🛠 Доступные инструменты (MCP Tools)
Чтение данных
Инструмент | Параметры | Описание |
|
| Расписание занятий по датам. При |
|
| Список дисциплин семестра (0 — текущий) с ID и текущими баллами. |
|
| Карточка дисциплины: преподаватели, темы, контрольные мероприятия, дедлайны и |
|
| Полный текст задания, методические указания и статус текущей попытки сдачи. |
| — | Баллы ТКУ за текущий семестр и полная зачётная книжка за все курсы. |
| — | Официальный учебный план: перечень предметов, кафедры, часы и зачётные единицы (ЗЕТ). |
| — | Новые системные уведомления: проверенные работы, выставленные оценки и комментарии. |
|
| Входящие сообщения ЛМС (с указанием ID — полный текст конкретного письма). |
|
| Диалоги в ЛМС ( |
| — | Финансовое состояние: начисления по семестрам, оплаченные суммы, скидки и баланс. |
| — | Официальные объявления института для студентов. |
Запись (Сдача работ)
Инструмент | Параметры | Описание |
|
| Отправка ответа на задание (файла и/или текста). |
⚠️ Безопасность сдачи: Отправка попытки в ЛМС МТИ необратима — после отправки работу нельзя отозвать или изменить.
Поэтому по умолчанию вызов безconfirm=Trueвыполняет только сухой прогон (dry-run): ассистент показывает вам предпросмотр (название задания, файл, размер, текст ответа). Отправка на сервер происходит исключительно при повторном вызове с флагомconfirm=Trueпосле вашего явного согласия.
🚀 Быстрый старт
1. Клонирование и установка зависимостей
Требуется Python 3.10+.
git clone https://github.com/ilodezis/mti-lms-mcp.git
cd mti-lms-mcp
# Создание виртуального окружения
python -m venv .venv
# Активация окружения:
# Windows (PowerShell):
.venv\Scripts\Activate.ps1
# Windows (CMD):
.venv\Scripts\activate.bat
# macOS / Linux:
source .venv/bin/activate
# Установка зависимостей
pip install -r requirements.txt2. Настройка авторизации (.env)
Скопируйте шаблон:
cp .env.example .envВ .env доступно два способа авторизации (выберите один):
Способ А (Автоматический, рекомендуется):
Укажите свои логин и пароль от ЛМС:LMS_LOGIN=твой_логин LMS_PASSWORD=твой_парольСервер авторизуется сам и будет автоматически обновлять сессию при её истечении.
Способ Б (По сессионной куке):
Если не хотите сохранять пароль в файле:Откройте lms.mti.moscow в браузере и войдите в аккаунт.
Нажмите
F12(инструменты разработчика) → вкладка Console.Введите:
copy(document.cookie)Вставьте полученную строку в
.env:LMS_COOKIE=вставленная_строка_кук
3. Проверка подключения
Запустите дымовой тест:
python test_lms.pyСкрипт запросит данные из ЛМС и проверит ключевые эндпоинты. В случае успеха в консоли будет: всё зелёное.
🔌 Подключение к любому ИИ-агенту (stdio)
Сервер полностью совместим со спецификацией Model Context Protocol и работает по стандартному транспорту stdio. Это означает, что его можно подключить к абсолютно любому агенту, IDE или клиенту, поддерживающему MCP.
Универсальный контракт подключения
Любой MCP-клиент ожидает три параметра:
command: путь к исполняемому файлу Python (pythonили путь к.venv/bin/python/.venv/Scripts/python.exe).args:["полный/путь/к/server.py", "--transport", "stdio"].env(опционально): переменные окружения, если они не заданы в файле.env.
Готовые конфигурации для популярных клиентов:
Конфигурационный файл:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"mti-lms": {
"command": "/полный/путь/к/mti-lms-mcp/.venv/Scripts/python.exe",
"args": ["/полный/путь/к/mti-lms-mcp/server.py", "--transport", "stdio"]
}
}
}(На macOS/Linux укажите .venv/bin/python).
В корне проекта создайте .cursor/mcp.json или откройте Cursor Settings → Features → MCP:
{
"mcpServers": {
"mti-lms": {
"command": "python",
"args": ["/полный/путь/к/mti-lms-mcp/server.py", "--transport", "stdio"]
}
}
}Конфиг ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"mti-lms": {
"command": "/полный/путь/к/mti-lms-mcp/.venv/bin/python",
"args": ["/полный/путь/к/mti-lms-mcp/server.py", "--transport", "stdio"]
}
}
}Добавьте сервер одной командой в терминале:
claude mcp add mti-lms -- /полный/путь/к/mti-lms-mcp/.venv/bin/python /полный/путь/к/mti-lms-mcp/server.py --transport stdioВ настройках расширения (MCP Servers settings):
{
"mcpServers": {
"mti-lms": {
"command": "python",
"args": ["/полный/путь/к/mti-lms-mcp/server.py", "--transport", "stdio"],
"disabled": false,
"autoApprove": []
}
}
}В настройках settings.json:
{
"context_servers": {
"mti-lms": {
"command": {
"path": "/полный/путь/к/mti-lms-mcp/.venv/bin/python",
"args": ["/полный/путь/к/mti-lms-mcp/server.py", "--transport", "stdio"]
}
}
}
}Во всех остальных клиентах указывайте:
Type / Transport:
stdioCommand:
python(или путь к Python в виртуальном окружении)Args:
["/полный/путь/к/server.py", "--transport", "stdio"]Working Directory:
/полный/путь/к/mti-lms-mcp/
🌐 Удалённый запуск (HTTP / SSE / Docker для Claude.ai)
Для работы с веб-интерфейсом Claude.ai (через Custom Connectors) или удалённым сервером mti-lms-mcp поднимается в режиме веб-сервиса с поддержкой авторизации RFC 8414 / RFC 9728.
ℹ️ Сетевые ограничения: ЛМС МТИ защищена DDOS-Guard и сбрасывает запросы с зарубежных дата-центров. Разворачивайте сервер на машине с российским IP (домашний сервер/ПК, роутер или РФ VPS).
1. Задайте токены в .env
MCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=8030
# Сгенерируйте случайные ключи (например: python -c "import secrets; print(secrets.token_urlsafe(32))"):
MCP_TOKEN=твой_секретный_токен_bearer
MCP_CLIENT_ID=mti-lms
MCP_CLIENT_SECRET=твой_секретный_токен_oauth2. Запуск через Docker
docker compose up -d --buildСервер слушает на 127.0.0.1:8030.
3. Подключение в Claude.ai
Опубликуйте сервис наружу по HTTPS (например, через Cloudflare Tunnel, Caddy, Nginx или Traefik).
В веб-интерфейсе Claude.ai перейдите в Settings → Integrations → Add Custom Connector:
Server URL:
https://твой-домен/mcpClient ID:
mti-lms(изMCP_CLIENT_ID)Client Secret: значение
MCP_CLIENT_SECRETиз.env
Нажмите Connect — откроется 1-клик окно подтверждения авторизации.
🔒 Безопасность и приватность
100% локальное хранение данных: Ваши пароли, куки и токены хранятся только на вашем устройстве в файле
.env. Файл закрыт в.gitignoreи никогда не передаётся во внешние сервисы.Двухэтапная отправка: Случайная сдача работ невозможна — инструмент требует явного подтверждения пользователя перед выполнением POST-запроса.
Чистый парсинг: Все данные запрашиваются напрямую с
lms.mti.moscowпод вашей сессией без сторонних прокси-серверов.
Related MCP server: tbank-edu-mcp
🌐 English Version
⚖️ Disclaimer: This project is an independent open-source tool developed exclusively for educational, personal productivity, and research purposes. It is not an official tool and is not affiliated with, endorsed by, or connected to OANO VO "MosTech" (Moscow Technological Institute / lms.mti.moscow) or any of its subsidiaries. The server does not bypass platform security, access unauthorized data, or modify university systems. It strictly operates within the permissions of the authenticated user's session. The author assumes no responsibility or liability for how this software is used, any session/network restrictions, or any academic consequences resulting from assignment submissions. Use at your own discretion and risk.
📖 Overview
mti-lms-mcp is an open-source Model Context Protocol (MCP) server that connects the Moscow Technological Institute student portal (lms.mti.moscow) directly to any AI agent, agentic workflow, or IDE supporting the MCP standard.
It supports both local stdio transport (for desktop applications) and Streamable HTTP / SSE with OAuth 2.0 PKCE (for web clients like Claude.ai).
Capabilities:
📅 Schedule & Webinars: Check upcoming classes, lectures, seminars, and live webinar URLs.
📚 Courses & Syllabi: Browse subjects across any semester with grading progress.
📝 Assignments & Deadlines: Inspect full assignment prompts, deadlines, download study materials, and check previous attempts.
📊 Grades & Transcripts: Retrieve continuous evaluation points and complete official gradebook records.
🔔 Notifications & Messages: Track graded homework, instructor feedback, and internal LMS messages.
📤 Safe Homework Submission: Send solutions (text/file) with mandatory dry-run verification.
🛠 MCP Tools
Read Operations
Tool | Parameters | Description |
|
| List classes by date. Pass |
|
| List courses for a semester (0 = current) with IDs and current scores. |
|
| Course card: professors, topics, assignments, deadlines, and |
|
| Full prompt, instructions, attached guidelines, and submission status. |
| — | Current term grades and complete academic record. |
| — | Official curriculum: discipline list, departments, study hours, and ECTS credits. |
| — | Notification feed: graded submissions, review remarks, score updates. |
|
| Inbox messages (pass message ID for full body). |
|
| Chat threads ( |
| — | Tuition billing, semester payments, applied discounts, balance. |
| — | Official university bulletin announcements. |
Write Operations
Tool | Parameters | Description |
|
| Submit an assignment response (file and/or text). |
⚠️ Submission Safety: Submissions to MTI LMS cannot be revoked or edited once sent.
Therefore, callingsubmit_assignmentwithoutconfirm=Trueperforms a dry run only, previewing the target event, attached file, size, and message. Live submission occurs only when explicitly invoked withconfirm=True.
🚀 Quick Start
1. Clone & Setup
Requires Python 3.10+.
git clone https://github.com/ilodezis/mti-lms-mcp.git
cd mti-lms-mcp
# Create virtual environment
python -m venv .venv
# Activate:
# Windows (PowerShell):
.venv\Scripts\Activate.ps1
# macOS / Linux:
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt2. Authentication Setup (.env)
Copy the template:
cp .env.example .envChoose one of two authentication options:
Option A: Login & Password (Recommended)
Provide LMS credentials in.env:LMS_LOGIN=your_username LMS_PASSWORD=your_passwordThe server automatically signs in and handles session renewal upon expiration.
Option B: Session Cookie
If you prefer not storing passwords:Log into lms.mti.moscow in your browser.
Open DevTools (
F12) → Console.Execute:
copy(document.cookie)Paste into
.env:LMS_COOKIE=pasted_cookie_string
3. Verification
Run the smoke test:
python test_lms.py🔌 Connecting to Any AI Agent (stdio)
The server conforms to the Model Context Protocol specification using standard I/O (stdio). It can be hooked into any MCP-compliant tool, agentic runtime, or IDE.
Generic MCP JSON Configuration
{
"mcpServers": {
"mti-lms": {
"command": "/path/to/mti-lms-mcp/.venv/bin/python",
"args": ["/path/to/mti-lms-mcp/server.py", "--transport", "stdio"]
}
}
}Client Configuration Snippets:
Claude Desktop: Add entry to
%APPDATA%\Claude\claude_desktop_config.json(Windows) or~/Library/Application Support/Claude/claude_desktop_config.json(macOS).Cursor: Configure
.cursor/mcp.jsonor add in Settings → MCP.Windsurf: Add to
~/.codeium/windsurf/mcp_config.json.Claude Code CLI: Run
claude mcp add mti-lms -- /path/to/.venv/bin/python /path/to/server.py --transport stdio.VS Code Extensions (Cline / Roo Code / Continue): Paste into MCP server configuration panel.
Zed Editor: Add under
context_serversinsettings.json.
🌐 Remote Deployment (Docker & Claude.ai)
To connect from the Claude.ai Web UI:
Fill required secrets in
.env:MCP_TRANSPORT=http MCP_HOST=0.0.0.0 MCP_PORT=8030 MCP_TOKEN=generate_random_secret_token MCP_CLIENT_ID=mti-lms MCP_CLIENT_SECRET=generate_random_secret_tokenStart container:
docker compose up -d --buildExpose via HTTPS (Cloudflare Tunnel, Caddy, Nginx).
In Claude.ai: Settings → Integrations → Add Custom Connector with your server URL, client ID, and secret.
(Note: MTI LMS enforces DDOS-Guard protection; run the server on a Russian residential or VPS IP).
📄 License
Distributed under the MIT License.
This server cannot be deployed
Maintenance
Related MCP Connectors
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
MCP adapter for the Paxaver school community platform. Streamable HTTP, OAuth 2.1, capability auth.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that turns UPB Virtual (Moodle) into a structured knowledge source, enabling AI assistants to query courses, assignments, deadlines, announcements, and sync materials via REST API.MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that connects AI assistants to T-Bank Education, enabling access to courses, timetable, deadlines, and user profile via tools like get_timetable, get_my_courses, and get_deadlines.-
- FlicenseNot gradedqualityBmaintenanceA Model Context Protocol (MCP) server that connects AI coding agents to your Moodle LMS. Fetch assignments, grades, deadlines, and sync everything to Obsidian automatically.-
- AlicenseAqualityBmaintenanceMCP server and CLI for EVA FING (Moodle of Facultad de Ingeniería, UdelaR) that authenticates headlessly via Shibboleth, enabling AI agents and users to query courses, announcements, activities, calendar, and study material.8MIT