Neue Write-Tools create_time_entry, create_grade_entry und update_student_group_assignment schreiben nie direkt: jeder Aufruf zeigt zuerst einen menschenlesbaren Bestätigungsdialog (bestehender ConfirmDialog, über Dispatcher.UIThread aus dem Pipe-Session-Thread angezeigt) und schreibt erst nach Bestätigung, mit 2-Minuten-Timeout gegen eine hängende Session. Zusätzliches Read-Tool get_lesson_plans. create_note bewusst nicht umgesetzt (kollidiert mit dem bestehenden Dokumentations-Ausschluss aus Phase 1), create_lesson_plan/ update_lesson_plan wegen der Modellkomplexität von Lesson zurückgestellt (siehe TODO.md 4.5.26). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
32 lines
1.3 KiB
C#
32 lines
1.3 KiB
C#
namespace LehrerApp.Desktop.Services.Mcp;
|
|
|
|
/// <summary>
|
|
/// 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. <see cref="McpServerHostedService"/> registriert nur exakt diese Namen.
|
|
/// </summary>
|
|
public static class McpToolScope
|
|
{
|
|
public static readonly IReadOnlyCollection<string> AllowedReadTools =
|
|
[
|
|
"get_students",
|
|
"get_exams",
|
|
"get_grades",
|
|
"get_schedule",
|
|
"get_time_entries",
|
|
"get_lesson_plans",
|
|
];
|
|
|
|
/// <summary>Write-Tools (Phase 2) — jeder Aufruf läuft über <see cref="IMcpConfirmationService"/>,
|
|
/// bevor irgendetwas geschrieben wird (siehe die jeweilige Tool-Klasse).</summary>
|
|
public static readonly IReadOnlyCollection<string> AllowedWriteTools =
|
|
[
|
|
"create_time_entry",
|
|
"create_grade_entry",
|
|
"update_student_group_assignment",
|
|
];
|
|
}
|