Skip to main content

headless_lms_mcp/handlers/
mod.rs

1//! The database-backed tool handlers.
2
3mod bulk;
4mod changesets;
5mod exercise;
6mod guide;
7mod history;
8mod patches;
9mod public_course;
10mod reads;
11mod uploads;
12
13use crate::state::McpState;
14use crate::tools::ToolRegistry;
15use crate::tools::catalog;
16
17/// Every tool with its handler, in `tools/list` order.
18pub fn registry() -> ToolRegistry<McpState> {
19    ToolRegistry::new(vec![
20        catalog::list_courses(reads::ListCourses),
21        catalog::get_course_structure(reads::GetCourseStructure),
22        catalog::get_page_content(reads::GetPageContent),
23        catalog::get_course_settings(reads::GetCourseSettings),
24        catalog::get_course_glossary_and_references(reads::GetGlossaryAndReferences),
25        catalog::get_exercise(exercise::GetExercise),
26        catalog::list_exercises(exercise::ListExercises),
27        catalog::read_public_course(public_course::ReadPublicCourse),
28        catalog::patch_page_content(patches::PatchPageContent),
29        catalog::patch_course_structure(patches::PatchCourseStructure),
30        catalog::patch_course_settings(patches::PatchCourseSettings),
31        catalog::patch_course_glossary_and_references(patches::PatchGlossaryAndReferences),
32        catalog::patch_exercise(exercise::PatchExercise),
33        catalog::find_replace(bulk::FindReplace),
34        catalog::structural_replace(bulk::StructuralReplace),
35        catalog::upload_file(uploads::UploadFile),
36        catalog::list_changesets(changesets::ListChangesets),
37        catalog::publish_changeset(changesets::PublishChangeset),
38        catalog::discard_changeset(changesets::DiscardChangeset),
39        catalog::get_preview_link(changesets::GetPreviewLink),
40        catalog::get_history(history::GetHistory),
41        catalog::revert_change(history::RevertChange),
42        catalog::guide(guide::Guide),
43    ])
44}