Skip to main content
Glama

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. Создайте его так:

  1. Откройте https://stepik.org/oauth2/applications/ — страница «Ваши приложения».

  2. Нажмите «Новое приложение».

  3. Client type: confidential.

  4. Authorization Grant Type: client-credentials.

  5. Остальные поля заполняются сами; сохраните приложение и скопируйте 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

Назначение

list_started_courses

started courses; fail-fast если пусто

get_course_structure

sections → units → lessons; только started

get_lesson_steps_meta

step id / position / type / text_capable; только started

get_step_content

text-only + metadata + lesson_url; только started

refresh_search_index

явное обновление локального FTS-индекса

search_lessons

weighted lexical search: score / matched_fields / snippet

Рекомендуемый путь: refresh_search_indexsearch_lessonsget_step_content. Browse-fallback: list_started_coursesget_course_structureget_lesson_steps_metaget_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.cmd

Launcher: 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lifefucky/mcp_read_stepik'

If you have feedback or need assistance with the MCP directory API, please join our Discord server