namespace LehrerApp.Desktop.Services.Mcp; /// /// Allowlist der über MCP exponierten Tool-Namen. Dieselbe Absicherung wie /// LehrerApp.Api/PlainEventStore.cs (dort für den Klartext-Sync-Kanal): Gesprächsnotizen, Vorfälle /// und Förderpläne (Documentation/Vorgang) sind hier bewusst nie aufgeführt und werden von keiner /// Tool-Klasse referenziert — ein KI-Client kann diese Daten technisch nicht erreichen, unabhängig /// davon, wie vertrauenswürdig der lokale Modell-Client erscheint oder wie die Tool-Liste künftig /// wächst. registriert nur exakt diese Namen. /// public static class McpToolScope { public static readonly IReadOnlyCollection AllowedReadTools = [ "get_students", "get_exams", "get_grades", "get_schedule", "get_time_entries", "get_lesson_plans", "download_lesson_attachment", "list_letter_templates", "render_letter", "get_subjects", "get_competency_catalog", ]; /// Write-Tools (Phase 2+3) — jeder Aufruf läuft über , /// bevor irgendetwas geschrieben wird (siehe die jeweilige Tool-Klasse). Absichtlich kleinteilig /// bei Unit/Lesson (create/update_unit, create/update_lesson, add/update/remove_lesson_phase) /// statt eines einzelnen "update_lesson" für die ganze Stunde inkl. Verlaufsplan — siehe /// Begründung in LessonPlanTools. public static readonly IReadOnlyCollection AllowedWriteTools = [ "create_time_entry", "create_grade_entry", "update_student_group_assignment", "create_unit", "update_unit", "create_lesson", "update_lesson", "add_lesson_phase", "update_lesson_phase", "remove_lesson_phase", "add_lesson_attachment", "move_lesson", "add_lesson_competency", "remove_lesson_competency", "create_subject", "update_subject", "create_competency_domain", "update_competency_domain", "add_competency_item", "update_competency_item", "remove_competency_item", ]; /// Löschende Write-Tools — ursprünglich eine bewusste, gezielte Ausnahme von der sonst /// geltenden "v1 ohne Lösch-Tools"-Regel für "delete_lesson" (siehe Planungsdokument), inzwischen /// (Nutzer-Nachtrag) um die endgültigen Löschungen für Fächer/Kompetenzbereiche erweitert — beide /// ohne Papierkorb, wie delete_lesson. Getrennt von aufgeführt, /// damit diese Ausnahme beim Lesen sofort auffällt. /// registriert diese Tools zusätzlich mit Destructive = true. public static readonly IReadOnlyCollection AllowedDestructiveWriteTools = [ "delete_lesson", "delete_subject", "delete_competency_domain", ]; }