project_MCP
Описание
Языки
- Python75,1%
- JavaScript14,5%
- CSS8,1%
- HTML2%
- Dockerfile0,3%
🎓AI Преподаватель — MCP Teacher
Добро пожаловать в проект MCP Teacher — современный веб-чат с адаптивным ИИ-преподавателем на базе GigaChat и протокола MCP (Model Communication Protocol).
Это не обычный чат-бот: система ведёт диалог как настоящий наставник — задаёт уточняющие вопросы, направляет ученика к правильному ответу, не выдаёт готовые решения сразу и автоматически адаптирует сложность под уровень пользователя.
🚀 Основные возможности
- Адаптивное обучение — три уровня сложности (Новичок, Продвинутый, Эксперт) с автоматической оценкой знаний и сменой стиля общения
- Память диалога — сохранение истории чатов и сообщений в MongoDB
- RAG-поддержка — инструмент позволяет ИИ опираться на локальную базу знаний (тексты, Markdown, PDF)
- Оценка ответов — инструмент оценивает понимание ученика и сохраняет прогресс
- Современный интерфейс — приятный тёмный чат в стиле ChatGPT с поддержкой нескольких чатов, индикатором печати и адаптивной версткой
- Полная контейнеризация — Docker + docker-compose для быстрого запуска
🛠 Технологии
- Backend: FastAPI + WebSocket
- ИИ: GigaChat (модель GigaChat-2-Max)
- MCP: fastmcp + langchain-mcp-adapters + langgraph
- База данных: MongoDB (асинхронный драйвер Motor)
- Frontend: чистый HTML + CSS + Vanilla JavaScript
- Контейнеризация: Docker + docker-compose
📦 Необходимые библиотеки
Все зависимости проекта указаны в файле :
📂 Краткое описание файлов
— MCP-сервер с инструментами: RAG по базе знаний (mcp_server.py), оценка уровня (kb_get_context), системная инструкция учителяassess_level— клиент MCP + логика ИИ-агента: адаптация сложности, определение темы, сохранение прогрессаmcp_client.py— основной FastAPI-сервер + WebSocket для чата в реальном времениweb_server.py— асинхронная работа с MongoDB (чаты, сообщения, уровни знаний)mongo_service.py— красивое логирование в консоль и файл с ротациейlogger.py— главная страница чатаstatic/index.html— вся клиентская логика (WebSocket, чаты, уровни, индикатор печати)static/script.js— тёмный современный дизайн чатаstatic/styles.css— готовый запуск MongoDB + приложенияdocker-compose.yml— сборка контейнера приложенияDockerfile— все зависимости проектаrequirements.txt
🚀 Быстрый старт
Вариант 1: Через docker-compose (рекомендуется)
Приложение будет доступно по адресу: http://localhost:8000
Вариант 2: Локальный запуск
⚙️ Конфигурация (.env)
Ключи для GigaChat: https://developers.sber.ru
📂 Структура проекта
.
├── app
│ ├── logger.py # Настройка логирования
│ ├── mongo_service.py # Работа с MongoDB
│ ├── mcp_client.py # Клиент MCP + логика агентов
│ ├── mcp_server.py # MCP-сервер с инструментами (RAG, оценка)
│ ├── web_server.py # FastAPI + WebSocket сервер
│ └── static/
│ ├── index.html
│ ├── script.js
│ └── styles.css
├── knowledge_base # ← сюда кладите .txt, .md, .pdf для RAG
├── logs # логи приложения
├── Dockerfile
├── docker-compose.yml
└── requirements.txt
!!ТУТ НЕ ИТОГОВЫЙ ВАРИАНТ
🎨 Интерфейс
Приложение имеет современный минималистичный дизайн в темных тонах, оптимизированный для длительной работы с текстом и формулами:
-
Боковая панель: Удобное управление историей переписки и кнопка быстрого создания нового диалога.
-
Уровни сложности: Переключатель в верхней части экрана (Новичок, Продвинутый, Эксперт) для моментальной настройки стиля ответов ИИ.
-
Живой чат: Интерактивная лента сообщений с аватарами, индикацией набора текста и автоматической прокруткой к новым сообщениям.
📦 Основа проекта
Спасибо создателям:
- fastmcp
- LangChain / LangGraph
- GigaChat API