Skip to main content

Shift Scheduler

com.kindoflost.staff-scheduling/shift-schedulerVersion 1.0.0

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

Status

Responds280 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 14:03 UTC
Latency
280 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://staff-scheduling.kindoflost.com/mcpResponds280 ms
No sign-in

Claude Code

claude mcp add --transport http shift-scheduler https://staff-scheduling.kindoflost.com/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: shift-scheduler
Remote MCP server URL: https://staff-scheduling.kindoflost.com/mcp

Cursor

{
  "mcpServers": {
    "shift-scheduler": {
      "url": "https://staff-scheduling.kindoflost.com/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"shift-scheduler","type":"http","url":"https://staff-scheduling.kindoflost.com/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

5 tools

Tools of Shift Scheduler
Read-only
Idempotent
Open world
build_shift_rosterSolve 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. If it has status 'busy', wait the retry_after_seconds it gives and call again -- one call at a time, never in parallel. Safe defaults (e.g. the next 7 days when `days` is omitted) are listed in the result's `assumptions`; tell the user about them. 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.NoYesYesNo
check_requestDescribe what the user wants in plain words and get back whether this server can do it, which limits it would hit, and the closest thing it CAN do. Instant, no solve. Use it when unsure the tool fits (shift swaps, payroll, time clocks, very large teams or long horizons).NoYesYesNo
get_shift_exampleReturn 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.NoYesNot declaredNo
get_shift_roster_resultFetch 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.NoYesNot declaredNo
list_shift_examplesList 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.NoYesNot declaredNo

Details

Registry status
Active
Published
Sep 26, 2026
Updated
Sep 26, 2026
Repository
Not given
Categories
Uncategorized
GDPR
Not declared

Are you the operator? Claim this listing