MCP server for creating and managing flashcard learning packages for vocational school students
Server has 9 tools with complete input schemas and descriptions, but quality is inconsistent. Tool names use German verbs (bundle_anlegen, karte_holen) which are non-standard for LLM-facing APIs, most production tools use English verb_noun patterns. Descriptions are present but brief (avg ~80 chars), lacking context on WHEN to use each tool or dependencies between them. No output schemas documented. Error handling is minimal, tools 'raise MCPFehler' but recovery guidance is absent. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (WRITE, DESTRUCTIVE). Parameters lack format constraints and validation rules. No pagination support on list tools.
Aendert die Metadaten eines Lernpakets (Titel, Beschreibung, Gruppe, etc.). Alle Felder sind optional.
Legt ein Lernpaket samt Karten an. Alles oder nichts: Die Karten werden vollstaendig geprueft, BEVOR irgendetwas geschrieben wird.
Zeigt ein Lernpaket mit allen seinen Karten an, formatiert fuer die Lehrerin.
Das Bundle zu einem Slug. Raises MCPFehler wenn es keines gibt.
Alle Lernpakete mit ihrer Kartenzahl, neueste zuerst.
Aendert eine bestehende Karte. Alle Felder sind optional; was nicht angegeben ist, bleibt wie es war.
Tool names are in German (bundle_anlegen, karte_holen) instead of English verb_noun pattern. LLMs are trained primarily on English; non-English names reduce discoverability and increase hallucination risk. Standard pattern: create_bundle, get_card, list_bundles.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., does bundle_holen return a slug for use in karten_einfuegen?). Every tool must document its return type and structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Die Karte zu einer ID. Raises MCPFehler wenn die ID keine ist oder es die Karte nicht gibt.
Loescht eine Karte aus einem Lernpaket.
Fuegt Karten an einer Stelle ein - ohne Angabe hinten. Alles oder nichts: Erst werden alle Karten geprueft, dann wird geschrieben.
No tool annotations despite explicit risk levels. Tools marked WRITE and DESTRUCTIVE (karte_loeschen, bundle_anlegen) lack destructiveHint/idempotentHint annotations. Agents cannot distinguish safe reads from irreversible operations.
bundles_auflisten lacks pagination (no limit, offset, or cursor parameters). Returning all bundles risks context window exhaustion. Must add limit (default 20, max 100) and offset/cursor for large datasets.
Error handling is opaque. Tools 'raise MCPFehler' but no recovery guidance is provided. Descriptions lack dependency hints (e.g., 'Call bundles_auflisten first to find a slug'). Agents cannot self-correct on failures.