School Timetable Builder

io.github.wilbek-sourcePublished by GitHub account wilbek-sourcev1.0.0Updated Oct 24, 2026

Build a full weekly timetable for a primary school (classes, teachers, rooms) via chat.

VerifiedStreamable HTTPWeb executableProductivity & Workflow

Overview

AI-generated overview

A remote MCP server that builds a full weekly primary-school timetable from eight input files supplied through chat, with validation and progress tracking.

What you can do
Get the interview guide: questions to ask, defaults, engine limits and the exact format of the eight input files, to be called first. Validate input: check file structure, engine limits and teacher/time capacity, returning VALID with warnings or INVALID with reasons. Create a schedule: start the full calculation and receive a job_id immediately. Check results: poll job status and progress, then get a compact text timetable per class or per teacher, plus a one-hour link to the full JSON result. Send feedback: pass the user's own words about the service to its developer.
When to use it
Use it when a primary school needs a complete weekly timetable covering classes, teachers and rooms, and the user can supply the eight input files in the required format. It suits chat-driven scheduling where a several-minute calculation with progress polling is acceptable.
Requirements
A remote streamable HTTP endpoint; no package, account, API key or environment variable is declared. The user must provide eight input files in the exact format described by the interview guide, and the assistant must poll for results.
Before you install
The calculation takes about five to eight minutes and requires repeated polling in the same reply. The result link to the full JSON expires after one hour. Feedback is sent to the developer, so it should only be sent when the user asks and must exclude teacher names and other personal data.

Installation

In SourceWeft

  1. Open School Timetable Builder in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.wilbek-source%2Ftimetable-builder/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "school-timetable-builder": {
      "type": "http",
      "url": "https://timetable-builder.wilbek.workers.dev/mcp"
    }
  }
}

Tools

5

get_interview_guide

Get interview guide

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.

Takes no parameters.

validate_input

Validate input files (free)

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.

Parametersfilesrequireduser_countryuser_language

create_schedule

Create timetable

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.

Parametersfilesrequireduser_countryuser_language

get_schedule_result

Get timetable result

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.

Parametersviewnamesjob_idrequired

send_feedback

Send feedback to the developer

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 [email protected].

Parametersjob_idmessagerequiredsentimentuser_countryuser_language

Version history

1
  1. v1.0.0LatestOct 16, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.