Skip to main content
Glama

Lernpaket anlegen

create_support_package

Legt für ein Kind ein Lernpaket zu einem Thema an, optional gleich mit Bausteinen (Text, Audio, Bild, Datei, Link, Video, Quiz, Rechnen, Lückentext, Markieren, Zuordnen, Programmieren, Vokabeln). Die Klasse ist optional – Förderung geht auch klassenübergreifend. Für ein freigegebenes Kind (einer anderen Lehrkraft) genügt der Vorname ohne Klasse, bei Mehrdeutigkeit share_id. Gibt den Link für das Kind zurück.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "student": "<student>",
      "title": "<title>"
    },
    "name": "create_support_package"
  }
}

Input Schema

NameRequiredDescriptionDefault
weekNoKalenderwoche, z. B. "2026-W44" oder "44" (aktuelles Jahr); "" entfernt sie
classNoKlassenname, z. B. "3b"
guestNoGast-Link: on = Link für Gäste einschalten (z. B. andere Kinder, Eltern, Kolleg:innen), off = abschalten, renew = neuer Link (der alte geht nicht mehr). Gäste geben ihren Namen nur im Browser ein, ihr Fortschritt bleibt im Browser; nichts wird gespeichert, sie sehen nichts vom Kind, und „Deine Antwort“ und „Wie war’s?“ fehlen.
itemsNo
notesNoPrivate Notiz der Lehrkraft zu Paket und Kind (z. B. aktuelle Jahrgangsstufe) – das Kind sieht sie nicht
titleYesThema, z. B. "Die Gemeinde"
publishNoWann das Kind das Paket sieht: "now" = sofort, "draft" = Entwurf (unsichtbar bis zur Freigabe), "week" = ab Montag 0 Uhr der Kalenderwoche, oder Datum/Uhrzeit "2026-11-02" bzw. "2026-11-02 07:30" (deutsche Zeit). Ohne Angabe wartet ein neues Paket für eine kommende Woche auf deren Montag.
studentYesVorname aus der Namensliste
class_idNo
share_idNoFreigabe eines Kindes einer anderen Lehrkraft (aus share_support_student → received)
descriptionNoBegrüßung/Anleitung für das Kind
from_package_idNoBausteine aus diesem Lernpaket übernehmen (wie eine Vorlage)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / items / items / properties / vocab / description
      Previous value: -"Nur bei kind=vocab (Vokabeln, Englisch): Karteikarten – vorne deutsch bzw. Emoji/Bild, hinten englisch mit Aussprache. Das Kind dreht die Karten um, sortiert sie in „Kann ich“ und „Nochmal“ (Nochmal-Karten kommen wieder, bis alle sitzen), hört die Aussprache und nimmt sich selbst auf. Die Aussprache entsteht beim Speichern automatisch (jedes Wort pro Stimme nur einmal für alle). Ersetzt die ganze Liste – zum Ergänzen vocab_add."New value: +"Nur bei kind=vocab (Vokabeln, Englisch): Karteikarten – vorne deutsch bzw. Emoji/Bild, hinten englisch mit Aussprache. Das Kind dreht die Karten um, sortiert sie in „Kann ich“ und „Nochmal“ (Nochmal-Karten kommen wieder, bis alle sitzen), hört die Aussprache und nimmt sich selbst auf. Übungen über modes: cards, hear-pic (Wort hören, Bild tippen), hear-word (hören und Bild, geschriebenes Wort suchen), pic-word, word-pic. Die Aussprache entsteht beim Speichern automatisch (jedes Wort pro Stimme nur einmal für alle). Ersetzt die ganze Liste – zum Ergänzen vocab_add."
    • changedInput schema / properties / items / items / properties / vocab / properties / cards / items / properties / image / description
      Previous value: -"Bild statt Emoji: /media/…-Link aus den Materialien oder https (optional)"New value: +"Nur die url, die save_image zurückgibt (/media/…). Zuerst save_image aufrufen (erzeugtes Bild als data, oder ein gefundenes direktes https-Bild als url). Den Pfad nicht erfinden."
    • addedInput schema / properties / items / items / properties / vocab / properties / modes
      Added value: +{
      +  "description": "Übungen: cards (Karteikarten), hear-pic (Ton zum Bild), hear-word (Wort finden), pic-word (Bild zum Wort), word-pic (Wort zum Bild). Standard cards, hear-pic, hear-word; leer wird cards",
      +  "items": {
      +    "enum": [
      +      "cards",
      +      "hear-pic",
      +      "hear-word",
      +      "pic-word",
      +      "word-pic"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / items / items / properties / vocab_add / items / properties / image / description
      Previous value: -"Bild statt Emoji: /media/…-Link aus den Materialien oder https (optional)"New value: +"Nur die url, die save_image zurückgibt (/media/…). Zuerst save_image aufrufen (erzeugtes Bild als data, oder ein gefundenes direktes https-Bild als url). Den Pfad nicht erfinden."
  2. Changed12 schema fields changed
    • changedInput schema / properties / items / items / properties / code / description
      Previous value: -"Nur bei kind=code (Programmieren, Roboter-Puzzle): Das Kind reiht Pfeil-Befehle (hoch, runter, links, rechts) – bei loops auch „Wiederhole nד – aneinander, drückt Start und der Roboter läuft über das Raster: ans Ziel, alle Sterne einsammeln, nicht gegen eine Wand. Oder ein Drachen-Level (dragon statt map): Angriffe so oft einsetzen, dass der Drache genau 0 Leben hat. Beliebig viele Versuche, Tipps nach Fehlversuchen; die Lehrkraft sieht je Level, ob und im wievielten Versuch es geklappt hat. Sanft steigern: erst kurze gerade Wege, dann Kurven, dann Sterne, dann Schleifen mit max_blocks; Drachen-Level als Rechen-Schleifen-Rätsel."New value: +"Nur bei kind=code (Programmieren, Roboter-Puzzle nach Ideen von Robot Karol und Scratch): Das Kind reiht Bausteine aneinander, drückt Start und die Figur läuft über das Raster. Ein Level ist geschafft, wenn alles erfüllt ist, was die Karte verlangt: auf Z stehen (falls da), alle Sterne * eingesammelt, kein Ding D liegt mehr außerhalb eines Zielfelds, jedes Zielfeld M ist belegt oder markiert, kein Feld zu viel markiert. Stufen (stage): start = Pfeile hoch/runter/links/rechts; karol = die Figur schaut in eine Richtung – „Schritt“, „links drehen“, „rechts drehen“ plus „aufheben“/„hinlegen“/„markieren“, wenn die Karte Dinge oder Zielfelder hat; profi = karol plus „Wiederhole nד, „Wenn … dann“ und „Solange …“ mit den Fragen Wand vorne? / Ding hier? / markiert? (auch verneint), Kästen bis zu zwei tief ineinander. Ein eigener Befehl (proc) ist eine benannte Baustein-Folge, die das Kind baut und wie einen Baustein einsetzt. Das Thema (hero, goal, star, wall, thing) tauscht nur die Emojis: Beet bepflanzen (thing 🌱, M-Felder), Müll sammeln (🥫, D-Felder), Schnee räumen (❄️), Pakete sortieren (📦 von D nach M), Mauer bauen (🧱 auf M, wall 🪨), Äpfel ernten (🍎). Oder ein Drachen-Level (dragon statt map): Angriffe so oft einsetzen, dass der Drache genau 0 Leben hat. Beliebig viele Versuche, Tipps nach Fehlversuchen; die Lehrkraft sieht je Level, ob und im wievielten Versuch es geklappt hat. Sanft steigern: erst Pfeile auf kurzen Wegen, dann Kurven und Sterne, dann Schleifen mit max_blocks; Karol: erst Schritt und Drehen, dann aufheben/hinlegen; Profi: Wenn/Solange auf langen Reihen (Wand vorne?) und ein eigener Befehl für Wiederkehrendes (z. B. „Reihe pflanzen“). Drachen-Level als Rechen-Schleifen-Rätsel."
    • changedInput schema / properties / items / items / properties / code / properties / goal / description
      Previous value: -"Emoji des Ziels (Standard 🏁), z. B. 🌻, 🐟"New value: +"Emoji des Ziels (Standard 🏁), z. B. 🌻, 🏡"
    • changedInput schema / properties / items / items / properties / code / properties / hero / description
      Previous value: -"Emoji der Figur (Standard 🤖), z. B. 🐝, 🐱, 🚀"New value: +"Emoji der Figur (Standard 🤖), z. B. 🐝, 🧑‍🌾, 🦝"
    • addedInput schema / properties / items / items / properties / code / properties / levels / items / properties / blocks
      Added value: +{
      +  "description": "Optional: die Bausteine einzeln festlegen statt über stage, z. B. [\"step\",\"turn_left\",\"turn_right\",\"pick\",\"while\",\"if\"]. Aufheben (pick) ist Pflicht, wenn D auf der Karte liegt; hinlegen (put) oder markieren (mark), wenn M da ist.",
      +  "items": {
      +    "enum": [
      +      "up",
      +      "down",
      +      "left",
      +      "right",
      +      "step",
      +      "turn_left",
      +      "turn_right",
      +      "pick",
      +      "put",
      +      "mark",
      +      "repeat",
      +      "if",
      +      "while"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / items / items / properties / code / properties / levels / items / properties / hint / description
      Previous value: -"Tipp nach zwei Fehlversuchen (sonst zeigt classdesk den Anfang des Wegs)"New value: +"Tipp nach zwei Fehlversuchen (sonst zeigt classdesk den Anfang einer Lösung)"
    • changedInput schema / properties / items / items / properties / code / properties / levels / items / properties / loops / description
      Previous value: -"Baustein „Wiederhole nד anbieten"New value: +"Baustein „Wiederhole nד anbieten (auch auf Stufe start/karol)"
    • changedInput schema / properties / items / items / properties / code / properties / levels / items / properties / map / description
      Previous value: -"Karte, eine Zeile pro Reihe (\\n), höchstens 8×8: R = Start, Z = Ziel, # = Wand, * = Stern (max. 6), . = frei. Z. B. \"R..#\\n#.*.\\n##.Z\". Muss lösbar sein."New value: +"Karte, eine Zeile pro Reihe (\\n), höchstens 8×8: R = Start (schaut nach rechts) oder > < ^ v = Start mit Blickrichtung, Z = Ziel (höchstens eins, kann fehlen), # = Wand, * = Stern (max. 6), D = Ding zum Aufheben, M = Zielfeld (dort hinlegen oder markieren), + = schon markiert (Spur), . = frei. Mindestens ein Ziel (Z, *, D oder M). Z. B. Start \"R..#\\n#.*.\\n##.Z\", Müll \"R.D.D.D\", Beet \"RMMMM\", Pakete \"RD.\\n#.M\\n#.M\" (aufheben und auf M legen; bei D und M zusammen müssen alle D auf M). Muss lösbar sein."
    • changedInput schema / properties / items / items / properties / code / properties / levels / items / properties / max_blocks / description
      Previous value: -"höchstens so viele Bausteine (eine Schleife zählt 1 plus ihren Inhalt) – zwingt zum Einsatz von Schleifen"New value: +"höchstens so viele Bausteine (ein Kasten zählt 1 plus seinen Inhalt, der eigene Befehl zählt mit) – zwingt zu Schleifen, Solange oder eigenem Befehl"
    • addedInput schema / properties / items / items / properties / code / properties / levels / items / properties / proc
      Added value: +{
      +  "description": "Optional: eigener Befehl (Scratch „Meine Blöcke“) – das Kind baut eine Folge unter diesem Namen und setzt sie im Programm wie einen Baustein ein (zählt bei max_blocks mit, ruft sich nicht selbst auf).",
      +  "properties": {
      +    "do": {
      +      "description": "Optional vorgegebener Anfang, Bausteine wie in blocks (Kästen als {repeat: n | if: \"wall\" | while: \"!wall\", do: [...]})",
      +      "type": "array"
      +    },
      +    "name": {
      +      "description": "z. B. \"Reihe pflanzen\", \"Treppe steigen\"",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / items / items / properties / code / properties / levels / items / properties / stage
      Added value: +{
      +  "description": "Stufe (Standard start): welche Bausteine das Level ohne blocks anbietet",
      +  "enum": [
      +    "start",
      +    "karol",
      +    "profi"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / items / items / properties / code / properties / levels / items / properties / text / description
      Previous value: -"Auftrag für das Kind, z. B. \"Sammle beide Sterne ein!\""New value: +"Auftrag für das Kind, z. B. \"Sammle den ganzen Müll auf!\" (sonst schreibt classdesk ihn aus der Karte)"
    • addedInput schema / properties / items / items / properties / code / properties / thing
      Added value: +{
      +  "description": "Emoji der Dinge zum Aufheben/Hinlegen (Standard 📦), z. B. 🌱, 🥫, ❄️, 🍎, 🧱",
      +  "type": "string"
      +}
  3. First observed

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it is a non-read-only, non-destructive, closed-world write. The description adds that it returns the child's link, which is valuable given there is no output schema, but says nothing about validation failures, whether existing packages for the child are affected, or the draft/publish lifecycle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the block-type enumeration come first, followed by the student-resolution rule and the return value. The parenthetical list of thirteen block types is long but functions as a useful capability summary; there is little wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter creation tool with a very large nested items schema, the description covers intent, student resolution, and return value. It omits the publish/timing semantics and the follow-up path for adding blocks later, both of which matter for correct usage even though the schema covers them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83%, so the schema already documents nearly every parameter in depth. The description only restates that class is optional and how student/share_id combine, adding slight nuance but no format or constraint details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Legt ... ein Lernpaket zu einem Thema an") scoped to one child, and enumerates the kinds of building blocks it can create. It is clear this is the creation tool rather than a mutation tool like update_support_package, though that sibling is never named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives useful context for student identification: class is optional, and for a shared child of another teacher the first name alone suffices, with share_id when ambiguous. It never states when to use this versus add_support_item, update_support_package, copy_support_package, or apply_template, so the when/when-not routing is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources