Skip to main content
Glama

Baustein hinzufügen

add_support_item

Fügt einem Lernpaket einen Baustein hinzu (z. B. ein Quiz, ein Roboter-Puzzle zum Programmieren – Pfeile, Karol-Stufe mit Blickrichtung und Aufheben/Hinlegen, Profi mit Wenn/Solange und eigenem Befehl, Themen per Emoji –, einen Podcast aus den Materialien oder einen Vorlesetext als Podcast – speech).

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": {
      "package_id": "<package_id>",
      "kind": "<kind>"
    },
    "name": "add_support_item"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlNohttps-Link (z. B. bei link, video)
bodyNoText bzw. Arbeitsauftrag zum Baustein (**fett**, Absätze mit Leerzeile – oder formatiertes HTML: <p>, <h2>, <h3>, <ul>/<ol>/<li>, <b>, <i>, <u>, <a href>, <span style="color/background-color">)
codeNoNur 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.
fileNoName einer hochgeladenen Datei der Klasse (Materialien), z. B. "Gemeinde-Podcast.mp3"
kindYes
markNoNur bei kind=mark: Wörter markieren/unterstreichen
mathNoNur bei kind=math: Rechenaufgaben mit Platzhalter _ für die gesuchte Zahl
quizNo
sortNoNur bei kind=sort: Karten in Gruppen ziehen
clozeNoNur bei kind=cloze: Lückentext
titleNo
vocabNoNur 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.
answerNoNur bei kind=answer („Deine Antwort“): wie das Kind antworten darf
speechNoNur bei kind=audio: Vorlesetext für einen Podcast. Wird nur als Entwurf gespeichert; vorgelesen wird erst nach Bestätigung der Lehrkraft (speak_support_item). Ohne den Namen des Kindes.
vocab_addNoNur bei kind=vocab, nur update_support_item: Karten ergänzen (z. B. die nächste Buchseite); ein englisches Wort, das es schon gibt, wird ersetzt
package_idYes
vocab_removeNoNur bei kind=vocab, nur update_support_item: Karten entfernen, per englischem oder deutschem Wort

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / 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 / 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 / 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 / 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 / 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 / code / properties / goal / description
      Previous value: -"Emoji des Ziels (Standard 🏁), z. B. 🌻, 🐟"New value: +"Emoji des Ziels (Standard 🏁), z. B. 🌻, 🏡"
    • changedInput schema / properties / code / properties / hero / description
      Previous value: -"Emoji der Figur (Standard 🤖), z. B. 🐝, 🐱, 🚀"New value: +"Emoji der Figur (Standard 🤖), z. B. 🐝, 🧑‍🌾, 🦝"
    • addedInput schema / 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 / 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 / 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 / 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 / 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 / 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 / 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 / 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 / code / properties / thing
      Added value: +{
      +  "description": "Emoji der Dinge zum Aufheben/Hinlegen (Standard 📦), z. B. 🌱, 🥫, ❄️, 🍎, 🧱",
      +  "type": "string"
      +}
  3. First observed

TDQS

B3.1/5.0
Behavior2/5

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

The annotations already declare a non-destructive write operation in a closed world. The description adds no behavioral context beyond the purpose—such as side effects, authorization requirements, or the draft status of speech items (which appears only in the schema).

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

Conciseness3/5

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

The description is a single sentence that front-loads the main action, but the parenthetical example list is dense and hard to parse due to nested dashes and clauses. It could be more scannable without losing content.

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 complex tool with many nested parameters, the description is minimal. The schema and annotations cover much of the needed detail, but the description does not address the add-versus-update distinction or return behavior, leaving some gaps for an agent.

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?

With 17 parameters and 76% schema description coverage, the schema carries most of the semantic load. The description only hints at the 'speech' parameter and lists example block kinds, but does not clarify most parameters or their interactions, so baseline 3 is appropriate.

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?

The description states a specific action ('Fügt ... hinzu') and resource ('einem Lernpaket einen Baustein'), and gives examples of block types. It is clear what the tool does, but it does not explicitly differentiate from sibling tools such as update_support_item or remove_support_item.

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?

The examples imply when to use the tool (to add a quiz, code puzzle, podcast, etc.), but there is no explicit when-to-use guidance or mention of alternatives. An agent must infer that this is the creation path versus update_support_item.

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