Stepik
FreeNot checkedMCP server for authoring courses on Stepik. Provides tools for session management, project creation, course synchronization, video upload, and publishing via th
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
- Changelog: CHANGELOG.md
- Architecture: docs/architecture/OVERVIEW.md
- ADR: docs/adr/
Dev
make develop
make test
make lint
make cov-rust
Диск
state/tasks.db state/sessions.db
projects/<id>/
workspaces/<ws_id>/course.ir.json
Install Stepik in Claude Desktop, Claude Code & Cursor
unyly install mcp-stepikInstalls 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-coreFAQ
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
Omni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
by buildwithtazaARA
Generate images, video and audio from any AI agent — one connector.
by ARAYouTube
Transcripts, channel stats, search
by YouTubeEverArt
AI image generation using various models.
by modelcontextprotocolCompare Stepik with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All media MCPs
