stepik-courses-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., "@stepik-courses-mcpSearch my Stepik courses for recursion and summarize the key lessons"
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.
Stepik Courses Retrieval MCP
Read-only MCP-сервер: агент собирает учебный контекст из started courses Stepik (только text steps).
Сервер даёт тонкие GET-примитивы. Оркестрацию (decompose → select → fetch → gap-fill) держит host/skill, не один «толстый» tool.
Репозиторий: https://github.com/lifefucky/mcp_read_stepik
Нужен uv в PATH (MCP стартует через uvx, Python 3.11+ подтянется сам). Skill ставится отдельно и не запускает Python-сервер.
Установка в агент
Это git-marketplace репозитория, не official catalog (Cursor Marketplace / claude-plugins-official / openai-curated).
# Cursor
/add-plugin https://github.com/lifefucky/mcp_read_stepik
# либо Customize → Plugins → Import marketplace → тот же URL, затем Install plugin stepik-courses
# Claude Code
/plugin marketplace add lifefucky/mcp_read_stepik
/plugin install stepik-courses@stepik-courses
# Codex
codex plugin marketplace add lifefucky/mcp_read_stepik
# OpenCode (только skill; MCP — в вашем opencode.json)
npx skills add lifefucky/mcp_read_stepik -a opencode
# fallback: skill во все обнаруженные агенты (без MCP)
npx skills add lifefucky/mcp_read_stepikПосле установки plugin введите CLIENT_ID и CLIENT_SECRET в UI хоста (Plugins → Configure / MCP settings). Не правьте файлы проекта и не вставляйте секреты в чат.
Related MCP server: litmos-mcp
Учётные данные Stepik
Приложение OAuth, grant client-credentials. Создайте его так:
Откройте https://stepik.org/oauth2/applications/ — страница «Ваши приложения».
Нажмите «Новое приложение».
Client type:
confidential.Authorization Grant Type:
client-credentials.Остальные поля заполняются сами; сохраните приложение и скопируйте
CLIENT_ID/CLIENT_SECRET.
Справка Stepik: OAuth applications.
MCP одной командой
Пока пакет не на PyPI:
uvx --from git+https://github.com/lifefucky/mcp_read_stepik stepik-mcpПосле публикации на PyPI: uvx stepik-courses-mcp (тот же entry point).
Транспорт v1: stdio. При старте preflight проверяет /api/user-courses и завершает процесс, если started courses недоступны.
Локальный FTS-индекс: user-dir (%LOCALAPPDATA%/stepik-mcp/ или XDG stepik-mcp/) либо STEPIK_INDEX_DB. Fingerprint — STEPIK_INDEX_IDENTITY или hash CLIENT_ID, не bearer-токен.
Host config
Креды задаются полями env в UI хоста (не JSON в git). Пример формы, которую хост сохраняет у себя:
{
"mcpServers": {
"stepik-courses": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/lifefucky/mcp_read_stepik",
"stepik-mcp"
],
"env": {
"CLIENT_ID": "${CLIENT_ID}",
"CLIENT_SECRET": "${CLIENT_SECRET}"
}
}
}
}${CLIENT_ID} / ${CLIENT_SECRET} — плейсхолдеры plugin variables, не shell ${env:...}.
OpenCode: skill через npx skills add lifefucky/mcp_read_stepik -a opencode. MCP в вашем opencode.json (не в этом репозитории), те же command / args / env.
Tools
Tool | Назначение |
| started courses; fail-fast если пусто |
| sections → units → lessons; только started |
| step id / position / type / |
| text-only + metadata + |
| явное обновление локального FTS-индекса |
| weighted lexical search: |
Рекомендуемый путь: refresh_search_index → search_lessons → get_step_content. Browse-fallback: list_started_courses → get_course_structure → get_lesson_steps_meta → get_step_content.
Resources: stepik://course/{id}/outline, stepik://lesson/{id}/step/{position}, stepik://guide/retrieval.
Prompts: gather_course_context, gap_fill_pass (тонкие шаблоны; процедура в skills/stepik-course-retrieval/SKILL.md).
Ограничения v1: только started courses под текущими кредами; только text steps; course/lesson вне allowlist → отказ.
Inspector и разработка из исходников
Inspector — для локального checkout (креды в env процесса или корневой .env; перечень имён — .env.example):
HOST=127.0.0.1 npx @modelcontextprotocol/inspector@latest --web mcp_server/run_inspector.cmdLauncher: mcp_server/run_inspector.cmd (python -m mcp_server.server, preflight отключён). На Windows, если localhost уходит в IPv6, задайте $env:HOST="127.0.0.1".
Из исходников (не основной UX): pip install -e ., затем stepik-mcp или python -m mcp_server.server. Креды — env процесса (CLIENT_ID / CLIENT_SECRET или STEPIK_*), иначе fallback корневой .env.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only MCP server for the OrchestKit docs: full-text search + Markdown fetch. No auth.
Read-only MCP server for public WeJob jobs, formations, and companies.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Read-only MCP server exposing a user ORANO library to their own AI agent.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceRead-only MCP server that provides Claude Desktop with access to converted Canvas course exports, including Markdown files, reports, and search tools for local course content.-
- AlicenseAqualityDmaintenanceRead-only MCP server for Litmos LMS that exposes user profiles, course results, and training completion data to AI clients.8MIT
- FlicenseNot gradedqualityAmaintenanceMCP server for authoring courses on Stepik. Provides tools for session management, project creation, course synchronization, video upload, and publishing via the Stepik API.-
- AlicenseNot gradedqualityDmaintenanceMCP server for managing Stepik courses, sections, lessons, units, and steps from any MCP-compatible client.MIT