Skip to content

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.

Final · 1Changes · 1

5 tools: 1 do something that can't be undone, 1 change things and 3 only read.

Scanned Oct 21, 2026

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/mcp

Tools

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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.