stepik-courses-mcp

stepik-courses-mcp

Read-only MCP server that retrieves educational context from started Stepik courses, offering tools to list courses, explore structure, fetch text step content, and perform local lexical search.

Category
Visit Server

README

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). Не правьте файлы проекта и не вставляйте секреты в чат.

Учётные данные 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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured