
edumints SCORM MCP
io.github.kemalyyPublished by GitHub account kemalyyv1.9.0Updated Oct 24, 2026
Compiles structured specs into SCORM 1.2/2004 e-learning packages. 47 tools, quality gate, no LLM.
Overview
A hosted MCP server that compiles a structured course spec into a self-contained SCORM 1.2/2004 e-learning package an assistant can hand back as a zip.
- What you can do
- Build a whole course from one spec, or create a project and add, update and reorder screens step by step, with 31 screen types including quizzes, branching, games and adaptive practice. Set themes, tracking rules and compositions, and import media assets or synthesize speech. Validate, lint and preview a course, then package it as a downloadable SCORM zip. Export quiz screens as QTI 2.1 and list or apply composition patterns.
- When to use it
- Use it when you want an AI assistant to author e-learning content and deliver a standards-conformant SCORM package for an LMS such as Moodle or SCORM Cloud, without a desktop authoring tool or local setup.
- Requirements
- Remote endpoint over streamable HTTP; OAuth sign-in or an API key from the provider's portal is required. Self-hosting is possible via Docker or a local Python install, which needs no secrets; video features additionally need Node 22+ and ffmpeg.
Installation
In SourceWeft
- Open edumints SCORM MCP in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.kemalyy%2Fedumints-scorm-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"edumints-scorm": {
"type": "http",
"url": "https://scorm.edumints.com/mcp"
}
}
}README
edumints SCORM MCP
[License: MIT] [Release] [Python 3.11+] [MCP]
An MCP server that compiles interactive, standards-conformant e-learning courses. You (or an AI client like Claude) are the author; this server is the compiler. Describe a course as a structured spec — the server validates it, renders it, and packages it as a self-contained SCORM zip that runs in any LMS (Moodle, SCORM Cloud, Rustici Engine, …). Deterministic — no LLM runs on the server.
🌐 Languages: English · Türkçe · Español · Русский · 简体中文 · Azərbaycanca · Қазақша · Кыргызча
Live demos
Four complete courses — four audiences, four visual identities — built entirely with this server and served from a live deploy. Click any screenshot to launch.
Each demo features a narrative thread, realistic artifact-mockup SVGs, flag-hunting simulations, before/after comparisons, timelines, a case game, and adaptive feedback — with question-level SCORM reporting underneath.
Why this exists
E-learning is usually hand-crafted in heavy desktop authoring tools. This project treats course production as infrastructure for AI agents instead:
- Zero-install authoring. Connect any MCP client to the hosted endpoint and start building — no toolchain, no local setup. The client describes the course (objectives, screens, quizzes, branching, media) over the Model Context Protocol; the server does the hard part: validation, theming, accessible HTML rendering, the SCORM runtime bridge, and packaging.
- A quality gate that says no. AI can generate a lot of mediocre content fast. This server
pushes back: schema validation on every spec, an anti-slop lint (
lint_course) whose error tier blocks builds, and a CI proof chain (XSD + real SCORM Cloud imports + behavioral probe) so that what ships actually works in an LMS — see Standards & evidence. - No vendor lock-in. Output is a plain SCORM 1.2/2004 zip with a self-contained player. MIT licensed, self-hostable, and open to contributions.
Author = the MCP client · Compiler = this server.
[A quiz screen rendered in the built-in slide-stage player]
Quickstart
Option 1 — Hosted MCP (zero install)
Point any MCP client (Claude desktop/web/Code, Antigravity, …) at:
Sign in via OAuth or get an API key at the portal: https://mcp.edumints.com. Then ask: "Build a 6-minute interactive course on X with a quiz and a summary." — you get a downloadable SCORM zip back.
Works best together with the authoring skill (a Claude Agent Skill that teaches an AI client how to author high-quality courses with this server): https://github.com/kemalyy/edumints-scorm-skill
Option 2 — Docker (self-hosted)
The image includes all optional features (ffmpeg, Node + HyperFrames for video, Piper TTS).
Apple Silicon + Docker Desktop: if the container crashes with
Illegal instruction(SIGILL), it is an upstream native-ARM64 issue incryptography's Rust bindings (pyca/cryptography#14733) — not this repo. Workaround: run with--platform linux/amd64(emulated).
Option 3 — Local (Python)
For video generation also install Node 22+ with HyperFrames (npm i -g hyperframes) plus ffmpeg.
Configuration: copy .env.example and adapt (data dir, quotas, base URL, TTLs). No secrets are
required to run locally.
Example
A course is produced from a single build_from_spec call (this is examples/small.json, abridged):
Full working specs live in examples/ (games, branching, themed and i18n courses).
Features
- 46 MCP tools —
build_from_spec(single-call path), granular editing (create_project/add_screen/update_screen/ …),set_theme/set_tracking,add_asset(SSRF-guarded imports),synthesize_speech(offline Piper TTS), video tools (ffmpeg / HyperFrames motion-graphics),preview/validate_package/build_package,lint_course(quality gate),export_qti(QTI 2.1),list_compositions/set_composition/set_screen_composition. - Composition system — every new course gets a deliberate focal point, an emphasis hierarchy
(E1–E5:
kicker,lead,<mark>) and a balanced symmetric/asymmetric layout chosen from a JSON pattern catalogue (rule of thirds, Z/F eye flow, course rhythm) — or any free grid — on all 31 screen types. The server asks the decisions that matter while the course is built (composition_questions), questions/polls/branching take an optional case (stimulus) for application-level assessment, tabs become master–detail and game scenes go side by side. New default palettemint(+ink,slate), embedded OFL fonts. Existing courses render unchanged. - 31 screen types — title, content, MCQ, true/false, fill-in-the-blank, drag & drop, hotspot, branching scenario, video, accordion, tabs, flashcards, matching, sorting, timeline, lottie, guided software simulation, decision scenario, term-match race, escape room, labeled diagram, data chart, image compare, results breakdown, poll/reflection, summary, composable game, adaptive practice, worked example, exploration, embedded HTML (artifact→SCORM). Full reference: docs/SCREEN_TYPES.md.
- Composable game engine — the
gamescreen composes mechanic primitives (score/lives/timer/hints) + declarativewhen event if condition then actionrules + branching nodes;adaptive_practiceestimates proficiency (Elo or Bayesian Knowledge Tracing) and calibrates difficulty per learner. See docs/GAME-PATTERNS.md. - Slide-stage player — fixed 16:9 stage scaled to every screen, player bar (play/seekbar/captions/menu/replay), narration-synced timed timelines, section-grouped menu, fully responsive, inline SVG icons. i18n shell (tr/en) with RTL support.
- Real SCORM tracking —
cmi.interactions(question-level reporting),cmi.objectives,adlcp:masteryscore(1.2) /completionThreshold(2004), LOM metadata, and a compact suspend-data v2 encoding for resume state. - Theming — style presets (
style-minimal/style-playful/style-premium, and more) layered with brand tokens: one style, many brands. Light/neutral/high-contrast presets, WCAG-aware,prefers-reduced-motionsupport. - Quality gates — anti-slop lint with a blocking error tier, plus game accessibility audits.
- Media — cross-MCP asset import (
add_assetvia data-URI or https), ffmpeg processing, programmatic motion-graphic/data-viz video (HyperFrames), built-in offline Turkish TTS (Piper). - Telemetry — optional xAPI statements from the player; cmi5 is partial (launch
detection only — no
cmi5.xmlpackaging yet). See docs/GAME-XAPI.md. - QTI 2.1 export — quiz screens export as QTI
assessmentItems for interop with assessment platforms. See docs/QTI.md. - SCORM 1.2 & 2004, deterministic packaging, cost guardrails, opt-in/lazy heavy features.
Standards & evidence
Claims are cheap; this repo ships its proof chain in CI:
- XSD conformance — generated
imsmanifest.xmlfiles are validated against the official ADL/IMS schemas for both SCORM 1.2 and 2004 (automated intests/test_conformance.py). - Real SCORM Cloud round-trip — CI imports built packages into actual SCORM Cloud via its REST API: 4/4 combinations (small/rich × 1.2/2004) must import with 0 parser warnings and produce a launchable registration. This is a blocking gate, not an advisory check.
- Behavioral probe —
scorm-probelaunches built courses in real Chromium against a fake LMS and asserts runtime behavior (init, navigation, scoring, completion). Also blocking in CI; a silent skip fails the build.
Details, procedures and honest limits: docs/CONFORMANCE.md. Accessibility: WCAG 2.2 AA conformance statement with explicitly documented limitations — docs/ACCESSIBILITY-CONFORMANCE.md.
Official sources
The only official distribution channels for this project are:
Anything else — mirror repos, re-uploaded zips, PyPI/npm packages, other registries or domains — is unofficial and unverified. We publish no PyPI or npm packages today. If you find a lookalike, please report it via SECURITY.md.
Documentation
Architecture
Output: self-contained index.html + imsmanifest.xml + assets + SCORM runtime, zipped.
Contributing
Issues and PRs welcome. The codebase favors small focused modules, additive changes and backward
compatibility. See CONTRIBUTING.md. Tests: pytest.
License
- This project: MIT — LICENSE.
- Vendored third-party components (scorm-again, lottie-web): THIRD_PARTY_NOTICES.md.
Built by edumints.com. SCORM is a trademark of ADL; other product names mentioned are trademarks of their respective owners (nominative use only).
Source: README.md at commit fcb6d8c
Tools
0Version history
4- v1.9.0LatestOct 14, 2026
- v1.8.0Oct 13, 2026
- v1.7.0Oct 8, 2026
- v1.6.0Sep 16, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts