edumints SCORM MCP
MCP serverAI & modelsThis integration lets your AI turn structured course specs into finished SCORM 1.2 or 2004 e-learning packages. It comes with 30 tools and a quality gate that checks each package before it is finalized. Because the build does not rely on a language model, the same spec produces the same package every time.
Use edumints SCORM MCP in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add edumints SCORM MCP and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use edumints SCORM MCP
Needs your own edumints SCORM MCP account. You sign in to it and approve access when you connect.
Details
Available today. Use it from your connected AI after setup.
After adding it, give your AI a structured spec for your course and ask it to compile a SCORM package. Review the quality gate results before using the finished package.
What your AI can do with it
- Build SCORM 1.2 packages from structured specs
- Build SCORM 2004 packages from structured specs
- Run quality checks before a package is finalized
- Use 30 built-in tools to assemble and check course packages
- Get identical results on every build, since compilation does not depend on a language model
Install edumints SCORM MCP
The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user edumints-scorm-mcp 'https://scorm.edumints.com/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://scorm.edumints.com/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=edumints-scorm-mcp&config=eyJ1cmwiOiJodHRwczovL3Njb3JtLmVkdW1pbnRzLmNvbS9tY3AifQ==Open the link and Cursor adds the server at that address.
ChatGPT
https://scorm.edumints.com/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add edumints-scorm-mcp --url 'https://scorm.edumints.com/mcp'Run it once, then sign in with codex mcp login edumints-scorm-mcp if the server asks for an account.
From the project's README
As published by kemalyy/edumints-scorm-mcp in README.md.
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.
| Be a Password Hero! | Spot the Phish | The Ad Hominem Argument | Grafik Dedektifi |
|---|---|---|---|
Ages 9–13 · internet safety · style-playful + custom brand | Corporate onboarding · email security · style-minimal + corporate brand | Graduate level · argumentation theory · style-premium | Turkish · data literacy · inquiry-based (5E) · evidence-bound assessment |
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.
Quickstart
Option 1 — Hosted MCP (zero install)
Point any MCP client (Claude desktop/web/Code, Antigravity, …) at:
https://scorm.edumints.com/mcp
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)
docker run -p 8000:8000 -v "$PWD/data:/data" ghcr.io/kemalyy/edumints-scorm-mcp:latest
# MCP endpoint: http://localhost:8000/mcp · health: http://localhost:8000/health
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)
python -m venv .venv && source .venv/bin/activate
pip install ".[tts]" # ".[tts]" adds offline Turkish TTS (Piper); drop it if unwanted
python server.py # serves MCP over HTTP
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):
{
"title": "Intro to SCORM",
"scorm_version": "1.2",
"language": "en",
"tracking": { "completion_rule": "viewed_all_and_passed", "passing_score": 50 },
"screens": [
{ "type": "title_slide", "id": "t1", "title": "Intro to SCORM", "subtitle": "Core concepts in 5 minutes" },
{ "type": "content_slide", "id": "c1", "title": "What is SCORM?", "body_html": "<p><strong>SCORM</strong> lets e-learning content talk to an LMS.</p>" },
{ "type": "mcq", "id": "q1", "title": "Mini quiz", "prompt_html": "<p>What is SCORM for?</p>",
"options": [
{ "id": "a", "text_html": "Content–LMS communication", "correct": true },
{ "id": "b", "text_html": "Video editing" }
], "points": 10 },
{ "type": "summary", "id": "s1", "title": "Well done", "body_html": "<p>You learned the basics.</p>" }
]
}
build_from_spec(spec) → { project_id, screens: 4, warnings: [] }
build_package(project_id) → downloadable SCORM zip
├─ imsmanifest.xml
├─ index.html (self-contained player + runtime)
└─ assets/
Full working specs live in examples/ (games, branching, themed and i18n courses).
Features
- 43 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). - 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:
| Channel | URL |
|---|---|
| Source repository | https://github.com/kemalyy/edumints-scorm-mcp |
| Authoring skill | https://github.com/kemalyy/edumints-scorm-skill |
| Container image | ghcr.io/kemalyy/edumints-scorm-mcp |
| Hosted MCP endpoint | https://scorm.edumints.com/mcp |
| Account portal | https://mcp.edumints.com |
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
| Doc | Contents |
|---|---|
| docs/SCREEN_TYPES.md | All 31 screen types with fields and examples |
| docs/CONFORMANCE.md | SCORM conformance evidence & procedures |
| docs/ACCESSIBILITY-CONFORMANCE.md | WCAG 2.2 AA statement |
| docs/LMS-INTEGRATION.md | LMS-specific integration notes |
| docs/QTI.md | QTI 2.1 export |
| docs/GAME-PATTERNS.md | Game engine patterns |
| docs/GAME-ADAPTIVE.md | Adaptive practice (Elo/BKT) |
| docs/GAME-ANTISLOP.md | Anti-slop quality gate |
| docs/GAME-XAPI.md | xAPI/cmi5 telemetry |
| docs/GAME-A11Y.md | Game accessibility |
| docs/ARCHITECTURE.md | System architecture |
Architecture
MCP client (author) ──► scorm-mcp (compiler)
├─ core/ models (Pydantic), packaging, storage
├─ components/ HTML renderer + runtime engine + video compiler
├─ auth/ API-key + OAuth, SSRF guards
├─ themes/ design tokens / presets
├─ runtime/ vendored SCORM runtime (scorm-again, MIT)
└─ server.py FastMCP tools (HTTP)
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).
Signals
- GitHub stars
- 7
- Forks
- 4
- Last commit
- Sep 2026
Advanced
- Delivery
- edumints-scorm-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
io-github-kemalyy-edumints-scorm-mcp- Source
- github.com/kemalyy/edumints-scorm-mcp
- Hosted endpoint
https://scorm.edumints.com/mcp
github.com/kemalyy/edumints-scorm-mcp
More in AI & models
MCP server · upstash
More in AI & modelsAdButler
MCP server · adbutler
More in AI & modelsatom-mcp-server
MCP server · a7om-ai
More in AI & modelsottasia
MCP server · aiweather-anurag
More in AI & modelsunphurl
MCP server · 123ergo
More in AI & modelsmicrosoft-learn-mcp
MCP server · microsoftdocs
More in AI & models