School Timetable Builder
by wilbek-source · remote · no sign-in to list tools · v1.0.0 · published by GitHub user wilbek-source
Build a full weekly timetable for a primary school (classes, teachers, rooms) via chat.
5 tools: 1 do something that can't be undone, 1 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things1Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http timetable-builder https://timetable-builder.wilbek.workers.dev/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
5 tools
Can't be undone 1Claude Code: ask
send_feedbackPasses the user's feedback about the timetable service on to its developer (what worked, what did not, wishes).No findings
Why it is in this group
- The name "send_feedback" says "send": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it Passes the user's feedback about the timetable service on to its developer (what worked, what did not, wishes). Only call it when the user has said they want to give feedback, and send what the user said in their own words (you may shorten it; any language is fine). Never include teacher names, other personal data or the school's data files. Tell the user briefly that it was sent. Nobody replies through this channel - if the user wants an answer, give them the support email timetablingengine.support@gmail.com.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Changes things 1Claude Code: ask
create_scheduleStarts calculating the full timetable from the 8 input files (validate them first).No findings
Why it is in this group
- The name "create_schedule" says "create": a word for a change.
Description, as the server wrote it Starts calculating the full timetable from the 8 input files (validate them first). Returns a job_id at once; the calculation takes about 5-8 minutes. Then keep calling get_schedule_result with the job_id in the same reply until it is done.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 3Claude Code: allow
get_interview_guideReturns the interview guide: which questions to ask the user, default values, engine limits and the exact format of the 8 input files.No findings
Why it is in this group
- The name "get_interview_guide" says "get": a word for reading.
Description, as the server wrote it Returns the interview guide: which questions to ask the user, default values, engine limits and the exact format of the 8 input files. Call this first.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_schedule_resultGets the status or result of a job from create_schedule (or a slow validate_input).No findings
Why it is in this group
- The name "get_schedule_result" says "get": a word for reading.
Description, as the server wrote it Gets the status or result of a job from create_schedule (or a slow validate_input). While running: progress. When done: a compact timetable as text plus a link (valid 1 hour) to the full JSON result. view='classes' (default) = one table per class, 'teachers' = one per teacher incl. preparation time, 'summary' = key figures and lists of classes/teachers only. Use 'names' to get only some classes/teachers (recommended for big schools). If impossible: the reasons.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
validate_inputChecks the 8 input files in a few seconds without creating a timetable: file structure, engine limits and a capacity analysis (enough teachers/time?).No findings
Why it is in this group
- The name "validate_input" says "validate": a word for reading.
Description, as the server wrote it Checks the 8 input files in a few seconds without creating a timetable: file structure, engine limits and a capacity analysis (enough teachers/time?). Returns VALID (with warnings) or INVALID (with reasons). Always run this before create_schedule.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http timetable-builder https://timetable-builder.wilbek.workers.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__timetable-builder__get_interview_guide",
"mcp__timetable-builder__validate_input",
"mcp__timetable-builder__get_schedule_result"
],
"ask": [
"mcp__timetable-builder__create_schedule",
"mcp__timetable-builder__send_feedback"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as timetable-builder. Review it before you use it.
