edumints SCORM MCP
Compiles structured specs into SCORM 1.2/2004 e-learning packages.
Connector by kemalyy · GitHub account verified by the MCP Registry
Install
Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install connector/kemalyy-edumints-scorm-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://scorm.edumints.com/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 11 read · 18 write · 3 delete · 15 not yet classified
- Secrets
- None asked for
- Install scripts
- Nothing to install (hosted)
- Runs as
- Hosted (remote endpoint)
Tools by what they do 47
Read from the source code; the running server may list different tools.
Read 11 · Look things up without changing anything.
get_guidelint_courselist_compositionslist_demoslist_feedbacklist_screen_typeslist_screenslist_themespreviewsearch_imagesvalidate_package
Write 18 · Create, change, send or run things.
add_assetadd_screenbuild_from_specbuild_packagebuild_statuscreate_projectcreate_scenariofill_media_slotmake_video_from_image_audiopublish_demoresolve_feedbackscenario_upsert_node
Show 6 more tools
scenario_upsert_pageset_compositionset_screen_compositionset_themeset_trackingupdate_screen
Delete 3 · Delete, drop, revoke or wipe things.
remove_screenscenario_delete_nodescenario_delete_page
Not yet classified 15 · We could not tell from the name and description.
export_qtihtml_to_assetmatch_media_manifestnormalize_audio_assetrender_motion_videorender_screen_videoreorder_screensscenario_compilescenario_gapsscenario_reorderscenario_treesvg_to_asset
Show 3 more tools
synthesize_speechunpublish_demowrap_artifact
Network hosts it talks to 11
adlnet.gov· found in codeadlnet.org· found in codeapi.openverse.org· found in codecdn.jsdelivr.net· found in codecommons.wikimedia.org· found in codeedumints.com· found in codegithub.com· found in codeimsglobal.org· found in codeimsproject.org· found in codemcp.edumints.com· found in codescorm.edumints.com· found in remote endpoint, install command, code
Files it touches
/Users/kemal/Documents/GitHub/edumints-scorm-mcp- Any path the agent passes to its tools
Tools (47)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_assetDış MCP çıktısını (data: base64 veya https URL) pakete dahil eder (SSRF korumalı).
add_screenProjeye bir ekran ekler. `screen`: tipli ekran JSON nesnesi (`type` alanı zorunlu; geçerli değerler için `list_screen_types`). Sunucu Pydantic ile doğrular.
build_from_specTüm kursu tek JSON spec ile inşa eder (token-verimli, ÖNERİLİR). Fast-path §3.1. `spec`: CourseSpec JSON nesnesi (title, screens[…], theme, tracking, …). Sunucu doğrular. strict (SP-5, opt-in): küratörlü anti-slop WARN kümesi de build'i bloklar; None → sunucu varsayılanı (ANTISLOP_STRICT). Varsayılan davranış değişmedi.
build_packageBuild job tetikler (fast-path §3.1): küçük kurs senkron döner, uzun ise job_id+poll. strict (SP-5, opt-in): küratörlü anti-slop WARN kümesi de build'i bloklar; None → sunucu varsayılanı (ANTISLOP_STRICT). Varsayılan davranış değişmedi.
build_statusProjenin EN SON build job'unun durumunu döner (poll aracı, §3.1 — #94). build_package/build_from_spec fast-path'i aşıp job_id+status döndüğünde bununla sorgula: status="done" olunca download_url dolu döner. Store-backed okuma → restart sonrası da çalışır. Yeni build TETİKLEMEZ (idempotent poll için build_package'ı yeniden çağırmak da güvenlidir).
create_projectYeni bir SCORM projesi oluşturur.
create_scenarioYeni senaryo dokümanı oluşturur (hiyerarşik outline + sayfalar; derleyici build_from_spec'e çevirir). `outline`: OutlineNode JSON listesi (unit/section, derinlik ≤3). Yapısal hata (sarkan parent, döngü, derinlik>3, yinelenen id, hedef çakışması) reddedilir.
export_qtiW8 — quiz ekranlarını IMS QTI 2.1 assessmentItem XML'lerine dışa aktarır (endüstriyel interop: içerik QTI-uyumlu LMS/madde bankası/değerlendirme platformlarına taşınabilir). Desteklenen: mcq, true_false, fill_blank; diğer tipler atlanır. Deterministik XML (sunucuda LLM yok).
fill_media_slotSenaryo sayfasındaki medya yuvasını doldurur. `source`: "data:<mime>;base64,..." veya https URL (indirme+SSRF denetimi add_asset ile AYNI iç yoldan). Varlık SENARYO evine yazılır (doküman `assets` listesi + store; derlemede build_from_spec assets[]'ine geçer). Sert kapılar (3.8 veri bütünlüğü): (1) sniff edilen MIME yuva `kind`'ıyla uyuşmazsa kind_mime_mismatch — bildirilen MIME'a değil BAYTA bakılır; (2) role="kanit" yuvada alt_text (audio/video için ek olarak transcript_html) yoksa A11Y_NO_TEXT_ALT. sha256 içerik-dedup: aynı bayt daha önce eklendiyse AYNI asset_id döner (deduped=true), yeni…
get_guideSunucuya bağlı rehberler — araç çağrıları, build_from_spec şekli, alanlar, kompozisyon, medya, tema, video — HER ZAMAN GÜNCEL kaynak. topic yok → konu listesi + skill sürüm durumu (oturum başında skill_version ile çağır). topic="cookbook" vb. → rehber metni. topic="schema:<ekran_tipi>" → o tipin alanları (sunucu modelinden). Keşif — proje gerektirmez; notice hiçbir aracı bloklamaz.
html_to_assetKullanıcının ürettiği ham HTML'i (Claude artifact vb.) `text/html` asset'ine çevirir — base64 gerekmez, ham `html_content` ver (svg_to_asset deseni). Dönen `id`'yi `embed_html` ekranının `html_asset_id`'sinde kullan (VEYA tek adımda `wrap_artifact`). Büyük/uzak artifact için `wrap_artifact(source_url=https://…)` kullan — o çağrı HTML'i indirip YENİ bir proje + `embed_html` ekranı kurar. `add_asset(source=https://…)` HTML KABUL ETMEZ (https kolu izinli mime listesiyle sınırlı → `asset_error: İzin verilmeyen mime: text/html`; `data:` kolu mime'ı hiç denetlemediği için oradan geçer — ama yol bu d…
lint_courseW6 oyun anti-slop kalite kapısı: game/adaptive_practice ekranlarını araştırma-temelli deterministik kurallarla denetler (içsel-bütünleşme, anlamlı seçim, scaffolding dengesi, adaptif anlam, a11y). İki şiddet: 'error' (yapısal bug — build'i de bloklar) ve 'warn' (pedagojik koku — danışsal, build'i bloklamaz). Yazar bunu yayından ÖNCE çalıştırıp slop'u temizler. Sunucuda LLM YOK. SP-5 strict (opt-in): strict=True (ya da sunucuda ANTISLOP_STRICT=1 varsayılanı) küratörlü WARN kümesini (STRICT_PROMOTED_CODES) raporda 'error' şiddetine terfi ettirir — build'i strict build_package/build_from_spec'in…
list_compositionsKompozisyon desen kataloğu (K1): ekranın `composition` alanında ad olarak ya da {"preset": ad, ...ince ayar} nesnesiyle kullanılır (veya preset'siz serbest parametreler). Keşif — auth gerekmez.
list_demosSahibin yayınladığı KALICI demo linklerini listeler (`publish_demo` çıktıları).
list_feedbackAÇIK reviewer yorumlarını döndürür (preview annotation; Faz 2). - project_id VERİLMEZSE: senin TÜM projelerindeki açık yorumlar (project_id + başlıkla). Hangi projede feedback olduğunu bilmiyorsan böyle çağır — keşif için. - project_id VERİLİRSE: yalnız o proje. Revizyon döngüsü: reviewer preview'da ekrana yorum bırakır → Claude bunu okur → düzeltir → `resolve_feedback` ile kapatır. Yalnız projelerin sahibi okuyabilir.
Show 32 more tools
list_screen_typesMevcut TÜM ekran tiplerini (build_from_spec/add_screen `screen.type` değerleri) ve kısa açıklamalarını listeler. Skorlanan tipler `scored:true` ile işaretlenir. Yeni bir kurs tasarlarken hangi ekran tiplerinin mevcut olduğunu görmek için çağır (keşif; proje gerektirmez).
list_screensProjedeki ekranları sıralı listeler.
list_themesMevcut tema preset'lerini (build_from_spec/set_theme `theme` adı) ve konularına uygunluğunu listeler. Arayüzü konuya göre farklılaştırmak için uygun temayı seçmek üzere çağır (keşif).
make_video_from_image_audioBir görsel + bir ses asset'ini sabit-görüntülü videoya (mp4, H.264/AAC) birleştirir (ffmpeg). E-öğrenme: slayt görseli + TTS seslendirme → seslendirilmiş video. Sonuç yeni asset olur; VideoScreen'de video_asset_id ile kullan. Faz 4 — LAZY: yalnız çağrılınca ffmpeg devreye girer.
match_media_manifestYerel medya klasörünün METADATA manifestini senaryonun BOŞ yuvalarıyla eşleştirir. `files`: [{name, size, sha256, mime}] — SUNUCU HİÇBİR DOSYA YOLUNA DOKUNMAZ (kabul #10; klasörü İSTEMCİ tarar: scripts/import_media_folder.py). Sinyaller: dosya adı ↔ slot_id/spec/source_hint token örtüşmesi, MIME ↔ kind, boyut makullüğü, sha256 zaten içeride mi ("dedup" — fill aynı id'yi döndürür). → {proposals: [{page_id, slot_id, role, kind, spec, proposed, candidates: [{name, score, reasons}]}], unmatched_files}. Belirsizlikte proposed=null + skorlu aday listesi — OTOMATİK ATAMA YAPILMAZ; onaylanan eşleşmele…
normalize_audio_assetBir ses asset'ini tarayıcı-güvenli mp3'e (44.1kHz/128k) normalize/transcode eder (ffmpeg). Çapraz-MCP'den gelen wav/ogg/m4a sesleri her tarayıcıda çalışsın diye. Faz 4 — LAZY.
previewTek-dosya, harici bağımlılıksız önizleme üretir + hosted URL döndürür. v1.8.1: varsayılan yanıt HAFİF — `hosted_url`, `compositions`, `composition_questions`, `size_bytes` (sayfanın bayt boyutu). Tam HTML'i yanıtta istiyorsan `include_html=true` ver; kullanıcıya göstermek için `hosted_url` yeterlidir. BÜYÜK ÇIKTI UYARISI: `inline_html` tek dosyada her şeyi taşır (taban ~546 KB) ve gömülü artifact/asset'ler data-URI olarak base64'lenir (≈ boyut × 1.33; `html_to_asset` 25 MB'a kadar kabul eder). `wrap_artifact` ile sarılmış bir artifact'te `inline_html`'i bağlama çekmek yerine `hosted_url`'i k…
publish_demoProjeyi KALICI herkese açık demo linkine yayınlar: {PUBLIC_BASE_URL}/demo/{slug}. `preview`'dan farkı: TTL YOK — link süresiz yaşar (README/vitrin/portföy linkleri için). Upsert: aynı slug'a tekrar yayınlamak içeriği günceller (yalnız slug'ı ilk yayınlayan sahip güncelleyebilir). slug: [a-z0-9-], 3-40 karakter. Demo HTML boyutu sahibin depolama kotasına dahildir (`enforce_size_quota`). Envanter için `list_demos`, kaldırmak için `unpublish_demo`.
remove_screenBir ekranı siler.
render_motion_videoSahne-spec'ten programatik motion-graphic / veri-viz MP4 üretir (HyperFrames) ve video asset olarak ekler. VideoScreen'de video_asset_id ile kullan. Faz 10 — LAZY/async. video_spec = VideoSpec JSON (scenes[].elements: text/shape/image/icon/chart + animation). Guardrail: ≤1920x1080, ≤60sn. Sahnede narration_asset_id varsa ses mux'lanır.
render_screen_videoMevcut bir stage ekranını (Faz 9 timeline'ıyla) MP4'e döker (HyperFrames). İndirilebilir özet / LMS video oynatıcısı için. Faz 10 — LAZY/async. duration_sec ≤ 60. quality (draft/standard/high) + fps ile hız/kalite dengesi (Faz 11).
reorder_screensEkranları verilen id sırasına göre yeniden dizer. `screen_ids_in_order`, projedeki TÜM ekran id'lerini bire bir (eksiksiz, tekrarsız) içermelidir; aksi halde `validation_error` döner. add_screen sona ekler — sıralamayı değiştirmek/araya almak için bunu kullan.
resolve_feedbackBir reviewer yorumunu 'çözüldü' işaretler (Claude düzeltmeyi uyguladıktan sonra).
scenario_compileSenaryoyu build_from_spec payload'una derler. ⛔ blocker varsa REDDEDER (blocker listesi ile). Derlenen spec: outline passthrough, sayfalar → ekranlar (screen_type derlemede ZORUNLU), body_md → sanitize HTML, kanıt/hedef bağları otoriter, faz adı ASLA basılmaz. Sonuç ayrıca üretilen spec'in tam lint_course raporunu içerir. compile_and_build=True → build_from_spec'e zincirler (proje oluşturulur + paketlenir).
scenario_delete_nodeOutline düğümünü siler. `strategy`: "refuse" (varsayılan — çocuk düğüm/sayfa varsa reddeder) | "reparent" (çocuk düğümleri düğümün ebeveynine, sayfaları ebeveyne taşır; kök düğümde sayfa varsa ebeveynsiz kalır → hata).
scenario_delete_pageSayfayı siler. Ona işaret eden evidence_from referanslarını TEMİZLER (sarkma bırakmaz); boşalan bağ scenario_gaps'te blocker olur (dangle değil).
scenario_gapsBoşluk raporu = derleme KAPISI. {blockers (⛔), warnings (⚠), suggestions, evidence_binding_coverage_estimate}. Blocker varken scenario_compile REDDEDER. Denetimler sıra-bağımsız; screen_type YALNIZ önerilir (asla otomatik seçilmez).
scenario_reorderSayfaları verilen id sırasına dizer. Liste TÜM sayfa id'lerini bire bir içermelidir (eksik/fazla → validation_error). `order` alanları yeni sıraya göre yeniden atanır.
scenario_treeSenaryonun kompakt ağaç özetini döndürür (düğüm hiyerarşisi + sayfa satırları + node_id'siz sayfalar). Yazarlık gezinmesi için (tam doküman değil).
scenario_upsert_nodeOutline düğümü ekler/günceller (id varsa günceller). Doküman yapısal denetimden geçer.
scenario_upsert_pageSayfa ekler/günceller (id yoksa üretilir; varsa günceller). Sayfa şeması (kanıt ENUM oneOf, medya yuvası rolleri) doğrulanır. Boşluk/kanıt kapısı derlemededir (scenario_gaps).
search_imagesTelifsiz (CC0/Public Domain) görsel arar — kurslara görsel eklemenin ilk adımı. `source`: "openverse" | "wikimedia". Yalnızca CC0/Public Domain lisanslı sonuçlar döner. Sonuçtan bir `url` seçip `add_asset(project_id, source=url, filename=...)` ile projeye ekle (indirme+SSRF denetimi orada yapılır — bu tool yalnız aday listeler, İNDİRME YAPMAZ). Her sonuç lisans/yazar/ kaynak-sayfa bilgisi taşır; uygun yerde yazarı kursa kredilendirin.
set_compositionProjenin kompozisyon modunu ayarlar. "auto": odak/vurgu kademeleri/otomatik desen; "classic": eski görünüm (bayt-aynı). Mevcut bir projeyi yükseltmenin TEK yolu. visual (K2, ops.): görsel ekranlarda metin yeri tercihi — "stack" (üstte bant), "split" (solda sütun), "auto" (içeriğe göre). Verilmezse mevcut tercih korunur. question (K3, ops.): vakalı (uyaranlı) soru ekranlarında vakanın yeri — aynı değerler.
set_screen_compositionTek bir ekranın kompozisyonunu ayarlar (desen adı, {"preset": …, ince ayar} nesnesi ya da None = otomatik seçime bırak). Ekranın diğer alanlarına DOKUNMAZ — update_screen'in aksine tüm ekranı yeniden göndermek gerekmez. `composition_questions` cevaplarını uygulamak için.
set_themeTema token'larını uygular (kısmi override derin merge edilir).
set_trackingTamamlanma/geçme kriterini ayarlar.
svg_to_assetClaude-üretimi SVG diyagramını SCORM asset'ine çevirir (base64 gerekmez — ham `svg_content` ver). Dönen `id`'yi `media_asset_id`/`image_asset_id`/blocks `asset_id` vb.'de kullan; ekran `<img>` ile yükler (responsive). ÖNEMLİ: SVG'yi `body_html`'e inline gömme — sanitizer `<svg>`'yi siler. `rasterize=true` → PNG (azami LMS uyumu; cairosvg gerekir). Aksi halde SVG (hafif, vektörel; modern LMS'lerde `<img>` ile zaten render olur). SUNUCUDA LLM YOK.
synthesize_speechMetni Piper ile Türkçe seslendirmeye çevirir → mp3 narration asset (Faz 11). Ekranlarda narration_asset_id ile kullan. LAZY: Piper yoksa net hata. Üst kalite ya da başka dil için kendi TTS MCP'ni kullanıp add_asset ile yükle (çapraz-MCP akışı birincildir).
unpublish_demoKALICI demo linkini kaldırır: metadata + HTML silinir; sonrasında `/demo/{slug}` 404 döner. Yalnız slug'ın sahibi kaldırabilir (store'dan doğrulanır; eski yalnız-.owner-dosyalı yayınlarda dosyadan).
update_screenVar olan bir ekranı günceller. `screen`: tipli ekran JSON nesnesi (`type` zorunlu) — ekran BÜTÜNÜYLE değiştirilir (gönderilmeyen içerik alanları silinir). İstisna (v1.8.1): `composition` anahtarı hiç gönderilmezse ekranın mevcut kompozisyon ezmesi KORUNUR (tip aynıysa); açıkça `null` → otomatik seçime döner. Geçersiz kompozisyon / alt'sız görsel vaka reddedilir.
validate_packageProje + (varsa) son paketin manifest/yapı doğrulamasını yapar.
wrap_artifactKeyfi kendine-yeten HTML'i (Claude artifact) TEK ADIMDA izlenebilir SCORM içeriğine çevirir: proje + `embed_html` ekranı. Sonra `preview`/`build_package`/`publish_demo` çağır. Girdi: `html_content` ham string (küçük/orta) VEYA `source_url` https (büyük/uzak; SSRF-korumalı) — tam olarak biri (boş string DE "verilmiş" sayılır). `completion="time_threshold"` ise `min_seconds` > 0 ZORUNLU (kaç saniye sonra tamamlansın); diğer modlarda yok sayılır. `language` (varsayılan "tr", `create_project` ile AYNI): oynatıcı kabuğu + runtime i18n + LOM `general/language`. Proje yaratıldıktan SONRA hiçbir tool …
Compare and alternatives
Featured in
Signals
- Stars
- 9
- Forks
- 5
- Open issues
- 18
- Last commit
- Oct 14, 2026 (14 days ago)
- Last release
- Oct 14, 2026 (14 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.kemalyy/edumints-scorm-mcp- Version
- 1.9.0
- Auth
- Auth not stated
- License
- MIT
- Repository
- github.com/kemalyy/edumints-scorm-mcp
- Website
- mcp.edumints.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
edumints SCORM MCP. Agent Mart. https://agentmart.dev/connectors/kemalyy-edumints-scorm-mcp (last updated 2026-10-24)