fix: GroupId ueber MCP auflösbar (get_groups + get_untis_hub_status)
CI / build-and-test (push) Canceled after 0s
CI / build-and-test (push) Canceled after 0s
Nutzer-Feedback aus echtem Live-Test der neuen Untis-MCP-Tools: groupId ist ueberall Pflichtparameter (get_grades, get_schedule, get_lesson_plans, get_untis_absence_rows, ...), war aber nirgends ueber MCP auflösbar - ein KI-Client kannte bestenfalls den Klarnamen einer Lerngruppe, nie ihre Id. - Neues GroupTools.cs mit get_groups (Read): listet Lerngruppen mit Id/Name/Typ/Schuljahr/ Klassenstufe/SubjectId/IsActive, optional nach Schuljahr gefiltert. - UntisHubStatusRowDto liefert zusaetzlich GroupId mit (null bei den drei dashboard-weiten Zeilen), damit fuer eine dort gelistete Gruppe nicht zusaetzlich get_groups noetig ist. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -16,9 +16,9 @@ public sealed class McpToolsTests
|
||||
new[]
|
||||
{
|
||||
"download_lesson_attachment", "get_competency_catalog", "get_exams", "get_grades",
|
||||
"get_lesson_plans", "get_named_untis_absence_pattern", "get_schedule", "get_students",
|
||||
"get_subjects", "get_time_entries", "get_untis_absence_rows", "get_untis_hub_status",
|
||||
"list_letter_templates", "render_letter",
|
||||
"get_groups", "get_lesson_plans", "get_named_untis_absence_pattern", "get_schedule",
|
||||
"get_students", "get_subjects", "get_time_entries", "get_untis_absence_rows",
|
||||
"get_untis_hub_status", "list_letter_templates", "render_letter",
|
||||
},
|
||||
McpToolScope.AllowedReadTools.OrderBy(n => n, StringComparer.Ordinal));
|
||||
}
|
||||
@@ -59,6 +59,26 @@ public sealed class McpToolsTests
|
||||
n.Contains("note", StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
|
||||
// ── GroupTools ───────────────────────────────────────────────────────────────────────────
|
||||
|
||||
[Fact]
|
||||
public void GetGroups_LiefertIdNameUndSchuljahrJeGruppe()
|
||||
{
|
||||
var group = new LearningGroup
|
||||
{
|
||||
Name = "9a", Type = GroupType.Class, SchoolYear = "2025/26", GradeLevel = 9, IsActive = true,
|
||||
};
|
||||
var tool = new GroupTools(new FakeGroups([group]));
|
||||
|
||||
var result = Assert.Single(tool.GetGroups());
|
||||
|
||||
Assert.Equal(group.Id, result.Id);
|
||||
Assert.Equal("9a", result.Name);
|
||||
Assert.Equal("2025/26", result.SchoolYear);
|
||||
Assert.Equal(9, result.GradeLevel);
|
||||
Assert.True(result.IsActive);
|
||||
}
|
||||
|
||||
// ── StudentTools ─────────────────────────────────────────────────────────────────────────
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user