Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Stepik

FreeNot checked

MCP server for authoring courses on Stepik. Provides tools for session management, project creation, course synchronization, video upload, and publishing via th

GitHubEmbed

About

MCP server for authoring courses on Stepik. Provides tools for session management, project creation, course synchronization, video upload, and publishing via the Stepik API.

README

MCP-сервер для авторства курсов на Stepik: FastMCP (HTTP) + Rust StateStore/TaskStore, workflow как в mcp-presentation.

Пакеты

Пакет Import Роль
mcp-stepik-core mcp_stepik FastMCP + TaskStore + CLI
mcp-stepik-state mcp_state sessions / workspaces (rusqlite)

Стек: Python 3.12+ · FastMCP · Rust 1.95 / PyO3 · rusqlite · httpx · Pydantic.

Happy path (workflow)

create_session
  → create_project(project_id)
  → checkout_workspace(session_id, project_id)
  → save_course_ir(session_id, ir_json)   # Pydantic validate → course.ir.json
  → sync_course(session_id)               # task: IR → Stepik API
  → upload_video(session_id, "assets/a.mp4")  # task: upload + poll ready
  → get_course_page_url(session_id)       # https://stepik.org/course/{id}/
  → publish_course(session_id)            # task: is_enabled=true

Пример IR: examples/demo/course.ir.json
Schema: schemas/course.ir.schema.json

Production (Docker / GHCR)

Image: ghcr.io/hewimetall/mcp-stepik
Tags: 0.1.0, 0.1, 0, latest (built on git tag v*).

export STEPIK_CLIENT_ID=...
export STEPIK_CLIENT_SECRET=...

# one-shot
docker run --rm -p 8000:8000 \
  -e STEPIK_CLIENT_ID -e STEPIK_CLIENT_SECRET \
  -v mcp-stepik-data:/data \
  ghcr.io/hewimetall/mcp-stepik:0.1.0

# or compose
docker compose up -d

Container defaults: listen 0.0.0.0:8000, persist under /data (state, projects, workspaces).
MCP endpoint: http://<host>:8000/mcp

OAuth app: https://stepik.org/oauth2/applications/
(Confidential + Client credentials)

If the package is private: echo $GHCR_TOKEN | docker login ghcr.io -u USER --password-stdin

Cursor / HTTP MCP

{
  "mcpServers": {
    "mcp-stepik": {
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

Run locally (HTTP only)

uv sync --extra dev
(cd packages/mcp-stepik-state && maturin develop)
maturin develop

export STEPIK_CLIENT_ID=...
export STEPIK_CLIENT_SECRET=...
export MCP_STEPIK_HOST=127.0.0.1
export MCP_STEPIK_PORT=8000
uv run mcp-stepik

Env for data dirs (optional):

export MCP_STEPIK_STATE=/abs/path/state
export MCP_STEPIK_PROJECTS=/abs/path/projects
export MCP_STEPIK_WORKSPACES=/abs/path/workspaces

Tools

Workflow / state

create_session, get_session, list_sessions,
create_project, checkout_workspace, create_workspace, get_workspace,
list_workspaces, set_active_workspace, remove_workspace,
save_course_ir, sync_course, upload_video, publish_course,
get_task_status, get_course_page_url

Stepik CRUD

Courses / sections / lessons / units / steps:
text, choice, code, video, string, number, matching, sorting, free-answer, review

  • stepik_health_check, stepik_list_courses, …

Docs

Dev

make develop
make test
make lint
make cov-rust

Диск

state/tasks.db  state/sessions.db
projects/<id>/
workspaces/<ws_id>/course.ir.json

from github.com/hewimetall/mcp-stepik

Install Stepik in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install mcp-stepik

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add mcp-stepik -- uvx --from git+https://github.com/hewimetall/mcp-stepik mcp-stepik-core

FAQ

Is Stepik MCP free?

Yes, Stepik MCP is free — one-click install via Unyly at no cost.

Does Stepik need an API key?

No, Stepik runs without API keys or environment variables.

Is Stepik hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Stepik in Claude Desktop, Claude Code or Cursor?

Open Stepik on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Stepik with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All media MCPs