Shift Scheduler

com.kindoflost.staff-schedulingPublished by staff-scheduling.kindoflost.comOfficial publisherv1.0.0Updated Oct 27, 2026

Builds optimal 24/7 staff rosters with a real MILP solver: rest rules, skills, nights, fairness.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowData & Analytics

Overview

AI-generated overview

Remote MCP server that builds optimal 24/7 staff rosters with a MILP solver, covering rest rules, skills, nights and fairness.

What you can do
  • List and fetch built-in example rostering problems (hospital ward, 3-shift plant, security post, fire station, 24/7 help desk) as editable input JSON
  • Solve a rostering problem to optimality, returning who works which shift each day, coverage, unfilled posts, hours per person and warnings
  • Retrieve the result of a solve that is still running, waiting up to a given number of seconds
When to use it
Useful when you need to turn staffing constraints into a concrete shift schedule — for example a 24/7 operation with rest rules, skill requirements, night shifts and fairness goals — or want to start from an example roster and adapt it to a real team.
Requirements
A remote streamable HTTP endpoint; no package, environment variables or headers are declared. No authentication is declared. Solves take roughly 5 to 60 seconds, so long runs need follow-up polling.
Before you install
Rosters are generated by an external service, so the staffing data you submit is sent to a third party. Results of long solves must be polled and expire 15 minutes after they finish, so save them promptly. No authentication is declared, so check how your data is protected before sending real employee details.

Installation

In SourceWeft

  1. Open Shift Scheduler 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/com.kindoflost.staff-scheduling%2Fshift-scheduler/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": {
    "shift-scheduler": {
      "type": "http",
      "url": "https://staff-scheduling.kindoflost.com/mcp"
    }
  }
}

Tools

4

list_shift_examples

List example rosters

List the built-in example rostering problems (hospital ward, 3-shift plant, security post, fire station, 24/7 help desk). Use one as a starting point for the user's own roster.

Takes no parameters.

get_shift_example

Get an example roster input

Return the full input JSON of one example, in exactly the shape build_shift_roster accepts. Edit it (names, days, headcounts, rules) to match the user's situation.

Parameterslangnamerequired

build_shift_roster

Build an optimized shift roster

Solve a staff rostering problem to optimality with a MILP solver and return who works which shift each day, coverage, unfilled posts, hours per person and warnings. Solves take 5-60 s. Pass either `example` (to solve a built-in example as-is) or the roster input fields. If the result has status 'running', call get_shift_roster_result with its job_id. If it has status 'too_large', shorten the horizon or reduce people/shift types and retry. Roster input. Minimal example: {"days": ["2026-10-05", "2026-10-06"], "shifts": [{"shift": "Day", "start": "07:00", "end": "19:00"}, {"shift": "Night", "start": "19:00", "end": "07:00", "night": "yes"}], "demands": [{"name": "RN", "penalty": 500}], "people": [{"name": "Ana", "cost": 40, "max_hw": 48}, ...], "grids": {"RN": {"2026-10-05|Day": 2, "2026-10-05|Night": 1}}, "parameters": {"MinRestHours": 11}}. Call get_shift_example for complete, realistic inputs.

Parametersdaysgridspeopleshiftsskillsdemandsexampleparameterswait_seconds

get_shift_roster_result

Get a roster result

Fetch the result of a build_shift_roster job that returned status 'running'. Waits up to wait_seconds; call again while status is 'running'. Jobs expire 15 minutes after they finish.

Parametersjob_idrequiredwait_seconds

Version history

1
  1. v1.0.0LatestSep 27, 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.