MCP-server

Overzicht

Creator levert een ingebouwde MCP (Model Context Protocol)-server. Elke MCP-compatibele AI-assistent — Claude op claude.ai, Claude Code, MCP Inspector — kan verbinding maken met je Creator-account en, vanuit een chat, alles doen wat de editor doet:

  • Je werkruimte en organisaties doorbladeren
  • Mappen, cursussen, microlearnings en vraagbanken aanmaken
  • Lessen en alle 44 bricktypen toevoegen, bewerken, verplaatsen en verwijderen, met hun volledige configuratie
  • Het contentthema configureren (kleuren, lettertypen, omslag, aangepaste CSS)
  • Exporteren naar SCORM, web of PDF, deel-links publiceren, momentopnamen beheren, dupliceren en vertalen

Authenticatie gebeurt via OAuth op je SLXD-account: de assistent ziet je wachtwoord nooit en je kunt de toegang op elk moment intrekken. Alles wat de assistent doet, is beperkt tot wat jouw gebruiker kan doen — organisatielidmaatschap en rollen worden bij elke aanroep gehandhaafd.

Verbinden

Het MCP-eindpunt is de connector-URL van je organisatie:

https://<jouw-organisatie>.slxd.app/mcp/creator

Je hoeft hem niet zelf samen te stellen: het SLXD-platform toont hem onder Organisatie > Connectors, naast de connectors van de andere producten in de suite.

claude.ai

  1. Ga naar Instellingen > Connectors > Aangepaste connector toevoegen
  2. Plak de eindpunt-URL
  3. Rond het inloggen af en autoriseer de toegang

Claude Code

claude mcp add --transport http creator https://<jouw-organisatie>.slxd.app/mcp/creator

Bij de eerste aanroep wordt de browser geopend om in te loggen en de toegang te autoriseren.

Clients registreren zichzelf automatisch (dynamische OAuth-clientregistratie) — er is niets te configureren aan de serverzijde.

Hoe de tools werken

De server biedt een samengestelde set tools op het hoogste niveau (werkruimte doorbladeren, content-/lesbeheer, bricks, thema, export, bestandsuploads, content dupliceren) plus drie meta-tools die de volledige catalogus ontsluiten:

browse_workspace dekt drie behoeften: één mapniveau doorbladeren, de hele scope doorzoeken op titel/naam met query, of de volledige mapstructuur in één aanroep in kaart brengen met recursive: true (elke map met zijn parentId). Om content — lessen, bricks en assets — als sjabloon te klonen, gebruik je duplicate_content (hoogste niveau); duplicate_lesson doet hetzelfde voor één les.

Naast het opstellen van content dekt de catalogus ook: volledige prullenbaklevenscyclus voor mappen (restore_folder, delete_folder_permanently) en batchbewerkingen op content (batch_move_contents, batch_trash_contents); content tussen organisaties verplaatsen (update_content met targetOrganizationId); versiebeheer (rename_snapshot, delete_snapshot); zoeken in gelicentieerde stockbibliotheken en een asset onder content importeren (search_stock_images/import_stock_image, search_stock_icons/import_stock_icon); en toegankelijkheidsproblemen controleren en oplossen (zie hieronder). Media die het model zelf genereert, wordt geüpload met request_asset_upload.

Meta-toolDoel
find_toolsDoorzoek de hele catalogus op trefwoord (publiceren, momentopnamen, vertaling, sjablonen, prullenbak…)
tool_schemaHaal het invoerschema van elke catalogustool op
run_toolVoer een catalogustool uit op naam

Voor bricks toont list_brick_types elk type gegroepeerd per categorie (tekst, media, collecties, vragen, games) met een "wanneer te gebruiken"-hint om het juiste type te kiezen voor een leerdoel, en get_brick_type_schema geeft de exacte opbouwvorm (met een voorbeeld) voor elk type — rich text wordt opgesteld als platte HTML.

De juiste brick kiezen

Om de assistent te helpen de meest geschikte brick te kiezen, bevat list_brick_types per type "wanneer te gebruiken"-richtlijnen, en de resource creator://guides/brick-selection is een volledige selectiegids (intentie → aanbevolen bricks). Beide worden gegenereerd uit dezelfde bron, zodat ze nooit uit elkaar lopen, en beide werken in elke MCP-client.

Bestanden uploaden

Content in Creator gebruikt bestanden — afbeeldingen, video, audio, ondertitels, downloadbare bijlagen, aangepaste lettertypen, embedpakketten — en de MCP kan deze uploaden. De binaire data gaat nooit via de MCP (geen base64): de tool genereert een kortlevende presigned upload-URL en de client stuurt het bestand rechtstreeks naar de opslag, buiten de MCP-verbinding om.

De flow voor een brick-asset:

  1. Roep request_asset_upload aan met de doel-contentId, het kind (image | video | audio | subtitle | attachment | font) en het contentType van het bestand (bijv. image/png). Elk kind heeft een lijst met toegestane MIME-typen, dus een niet-passend type wordt direct geweigerd.
  2. De tool geeft { uploadUrl, path, curlCommand, expiresAt } terug. Upload het bestand — voer het teruggegeven curlCommand uit (vervang <local-file> door het echte pad) of doe een PUT van de bytes naar uploadUrl met het exacte Content-Type. De URL verloopt na 15 minuten.
  3. Plaats het teruggegeven path in het mediaveld van de brick via add_brick/update_brick (imagePath, videoPath, audioPath, filePath, posterPath, subtitlesPath, front*/back*/…), of in het thema via update_theme (omslagafbeelding, logo, aangepaste woff2-lettertypen).

list_content_assets geeft de reeds geüploade bestanden voor een content terug, zodat een bestaande asset kan worden hergebruikt in plaats van opnieuw geüpload.

Embed-bricks (een zelfstandig index.html-pakket met assets) gebruiken request_embed_upload: upload elk bestand van het pakket onder dezelfde folderId, en stel dan de teruggegeven embedFolderPrefix in op de EMBED-brick. Deze komen terecht in de privé embeds-bucket met hun Content-Type vastgezet en worden aan kijkers geleverd via kortlevende URL's per map — nooit vanaf een openbaar domein.

Imports volgen hetzelfde presigned-patroon:

  • Articulate Rise — start_rise_import (upload de .zip) → confirm_rise_import → poll get_rise_import totdat de status completed is om de aangemaakte contentId uit te lezen.

Het importeren van instructional-design-documenten is bewust niet beschikbaar via MCP: de parseerstap is afhankelijk van extractie aan de browserzijde in de app, waardoor de flow niet headless kan worden voltooid — doe dit in de Instructional Design-editor van de app.

Alle uploadtools autoriseren de doelcontent (scope + organisatielidmaatschap) voordat ze ondertekenen, en de server stelt de opslagsleutel samen — een client levert nooit zelf een ruw pad aan.

Toegankelijkheid

Dezelfde WCAG 2.2-checker die de toegankelijkheidscontrole van de editor aandrijft, is beschikbaar via MCP, zodat een assistent een cursus end-to-end kan controleren en verbeteren:

  1. audit_content_accessibility — aantal fouten/waarschuwingen per les binnen een content. Begin hier voor een overzicht van de hele cursus.
  2. audit_lesson_accessibility — elk probleem in één les: de regel, het WCAG-criterium, de betrokken brick, een reden en herstelinstructies (in de taal van de content), en — indien er een veilige oplossing bestaat — een autofixes-beschrijving.
  3. apply_accessibility_autofix — past een van die beschrijvingen toe (een afbeelding als decoratief markeren, een kopniveau herstellen, een tabelkop inschakelen, …) op de exacte brick/het exacte item. Eén ongedaan-maken-stap; wijzigingen bereiken een open editor in realtime, net als bij update_brick.
  4. generate_accessibility_alt_text — stuurt voor afbeeldingen zonder veilige deterministische oplossing de afbeelding naar het geconfigureerde AI-visiemodel en geeft voorgestelde alt-tekst terug. Dit schrijft niets weg — pas het resultaat toe met apply_accessibility_autofix (kind: "set-property", of "set-item-property"/"set-character-property" voor galerij-/dialoogafbeeldingen). Verbruikt organisatiecredits, net als andere AI-tools.

Een typische flow: roep audit_content_accessibility aan, kies een les met problemen, roep daarop audit_lesson_accessibility aan, pas de deterministische oplossingen toe, genereer en pas alt-tekst toe voor de rest, en voer daarna opnieuw de lesaudit uit om te bevestigen dat alles in orde is.

Live samenwerking

Brickwijzigingen die via MCP worden gemaakt, worden samengevoegd via de samenwerkingsserver: als iemand de les geopend heeft in de editor, ziet die persoon de wijzigingen van de assistent in realtime verschijnen, en niemands werk wordt overschreven.

Destructieve acties

Het verwijderen van content, lessen of bricks, het resetten van thema's, het herstellen van momentopnamen en het legen van de prullenbak vereisen allemaal een expliciete confirm: true. Zonder deze bevestiging geeft de tool een voorbeeld van wat er zou gebeuren, zodat de assistent het je eerst kan vragen.

Operationele opmerkingen

  • De OAuth-autorisatieserver maakt deel uit van de app (Better Auth mcp-plugin); tokens leven in de oauth_*-tabellen en verlopen na 1 uur (refresh-tokens: 7 dagen).
  • Het eindpunt heeft een ratelimiet per gebruiker (120 verzoeken/minuut).
  • Wanneer facturering is ingeschakeld, wordt MCP-toegang beheerst door de apiAccess-functie van het abonnement, net als bij API-sleutels.
MCP-server