Stepik MCP
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
MCP-сервер для работы с Stepik API прямо из Claude (или другого MCP-клиента). Позволяет получать данные по своим курсам на Stepik, отвечать на вопросы студентов, смотреть отзывы, доходы и управлять промокодами — без переключения в браузер.
Источник правды по эндпоинтам API — https://stepik.org/api/docs/, примеры запросов — https://github.com/StepicOrg/Stepik-API.
Оглавление
- Что умеет сервер
- Установка
- Учётные данные автора
- Список курсов
- Настройка в Claude Desktop
- Разработка
Что умеет сервер
Сервер реализован на TypeScript поверх @modelcontextprotocol/sdk и авторизуется в Stepik по OAuth2 (client_credentials).
Инструменты (tools)
| Инструмент | Описание |
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| getCourseList | Список всех курсов автора (ID + название) |
| getCourseDescription | Описание курса: summary, description, requirements и workload (как хранится на Stepik, в HTML) |
| updateCourseDescription | Обновить summary, description, requirements и/или workload курса — меняются только переданные поля |
| getCourseBenefits | Доход по курсам за период (по умолчанию — за последние 24 часа) |
| getCorsesReviews | Отзывы по всем курсам (можно запросить выборку с конкретной оценкой) |
| getReviewsByCourse | Отзывы по конкретному курсу, постранично |
| getCourseReviewSummary | Сводный рейтинг курса: средняя оценка, количество отзывов и распределение по звёздам (1-5) |
| getAllCoursesReviewSummary | Сводный рейтинг по всем курсам из STEPIK_COURSES |
| getCommentById | Комментарий/вопрос по ID |
| answerComment | Ответить на комментарий/вопрос студента |
| getNotifications | Уведомления Stepik, постранично, с фильтром по прочитанности |
| getLessonContent | Содержимое урока по ID (опционально — конкретный шаг) |
| getStepContent | Содержимое одного шага по ID |
| getActivePromoCodesByCourse | Активные промокоды по курсу, постранично |
| addPromoCode | Создать промокод для курса |
| getCourseAnnouncements | Новости/рассылки курса со статусом и статистикой доставки, постранично |
| getAnnouncement | Одна новость/рассылка по ID вместе с полным HTML-текстом |
| addAnnouncement | Создать черновик новости/рассылки курса (приветственное письмо, отложенная отправка, серия, фильтр по баллам) |
| updateAnnouncement | Изменить черновик новости/рассылки |
| sendAnnouncement | Опубликовать новость: поставить рассылку в очередь на отправку учащимся |
| testAnnouncement | Отправить тестовую копию рассылки только автору |
| abortAnnouncement | Отменить запланированную/ожидающую рассылку |
| deleteAnnouncement | Удалить новость/рассылку |
| addMultipleChoiceQuiz | Добавить в урок шаг-квиз с вариантами ответа (одиночный или множественный выбор) |
| updateMultipleChoiceQuiz | Обновить существующий шаг-квиз по ID — меняются только переданные поля |
| addProgrammingTask | Добавить в урок шаг с задачей по программированию (code challenge): условие, чекер, тест-кейсы, лимиты и шаблоны кода по языкам |
| updateProgrammingTask | Обновить существующий шаг с задачей по программированию по ID — меняются только переданные поля |
| addHtmlCssTask | Добавить в урок шаг «Задача на HTML и CSS»: стартовые HTML/CSS-шаблоны и чек-лист подзадач с DOM-селекторами и проверками (hasElement, checkContent, checkClass, checkAttribute, checkCssStyle, checkSource, checkValidityOfSources) |
| updateHtmlCssTask | Обновить существующий шаг «Задача на HTML и CSS» по ID — меняются только переданные поля |