Skip to main content
Glama

Server Details

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

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
Shift Scheduler

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool occupies a distinct slot in the workflow: capability probing (check_request), example discovery (list_shift_examples), example retrieval (get_shift_example), solving (build_shift_roster) and async result polling (get_shift_roster_result). The one plausible pair, list_shift_examples vs get_shift_example, is clearly separated by their descriptions (enumerate names vs return full input JSON).

Naming Consistency4/5

Four of five tools follow a clean verb_noun pattern with a consistent 'shift' domain prefix (build_shift_roster, get_shift_example, get_shift_roster_result, list_shift_examples). Only check_request breaks the pattern by omitting the domain prefix, a minor deviation that stays readable.

Tool Count5/5

Five tools is well-scoped for a solver-backed scheduling service: one entry point for solving, one for async results, two for examples, and one for capability checks. Nothing feels padded or missing at the count level.

Completeness4/5

The full lifecycle is covered: discover examples, build a roster, poll for async results, and pre-check feasibility, including documented handling of too_large/busy/running states. Minor gaps exist around job control (no cancel/abort for long 5-60 s solves) and no way to tweak or re-solve an existing roster, but agents can work around both.

Available Tools

5 tools
build_shift_rosterBuild an optimized shift rosterA
Read-onlyIdempotent
Inspect

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

Inputs: days, goal, grids, people, +6 more.

check_requestCheck whether a request fitsA
Read-onlyIdempotent
Inspect

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

Inputs: description (required).

get_shift_exampleGet an example roster inputA
Read-only
Inspect

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.

Inputs: name (required), lang.

get_shift_roster_resultGet a roster resultA
Read-only
Inspect

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.

Inputs: job_id (required), wait_seconds.

list_shift_examplesList example rostersA
Read-only
Inspect

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.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Generates legally-compliant weekly shift schedules for Korean workplaces through conversation, using OR-Tools CP-SAT to enforce labor laws such as the 52-hour weekly cap and minor worker protections.
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables solving complex combinatorial optimization problems with logical and numerical constraints through multiple solvers (Z3, CVXPY, HiGHS, OR-Tools). Specializes in portfolio optimization, scheduling, resource allocation, and constraint satisfaction problems.
      5
      5
      Apache 2.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables MCP-capable agents to solve scheduling and integer optimization problems using Google OR-Tools, return proven-optimal or valid solutions, independently verify proposed solutions, and explain infeasible rule sets.
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Negotiation math engine for AI agents. Computes Pareto frontiers, generates iso-utility counteroffers, and infers counterpart priorities. 9 tools for any multi-issue negotiation. Zero LLM tokens — pure MILP optimization.
      -
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources