accueil / serveurs / Dev & Code / com.kindoflost.staff-scheduling/shift-scheduler
com.kindoflost.staff-scheduling/shift-scheduler
serveur MCP (Model Context Protocol) · kindoflost-shift-scheduler 1.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que com.kindoflost.staff-scheduling/shift-scheduler est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.kindoflost.staff-scheduling/shift-scheduler » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 4 outils
- build_shift_roster≈ 1232 tokens
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.
Paramètres, retour & exemple (9)
Paramètresdays· array · optionnel
Day labels in order: ISO dates ('2026-10-05') or weekday names ('Mon'). Dates or weekdays enable weekend rules.grids· object · optionnel
Optional per-day/shift cells, keyed by a demand name or a person name, each an object keyed 'DAY|SHIFT'. Demand grid value = headcount required (demand with no grid = 1 on every shift). Person grid value: 'a' or 1 = available, 'f' = must work, 0 or missing = UNAVAILABLE (person with no grid = available everywhere).people· array · optionnelshifts· array · optionnel
Shift types. A shift may cross midnight (end < start).skills· array · optionnel
Who can cover which demand. Omitted = everyone can cover every demand.demands· array · optionnel
Posts to fill (roles). Headcount per day/shift goes in grids.example· string · optionnel · hospital-ward | three-shift-plant | security-site | fire-station | support-desk
Solve this built-in example instead of passing the fields below.parameters· object · optionnel
Optional rules. MinRestHours (11), MaxConsecutiveDays (6), MaxConsecutiveNights (4), ForbidDayAfterNight ('yes'), NightStartsAfter ('18:00'), MinBlockDays (1), WeekendFairnessPenalty (0), EquityPenalty (0) = even out total hours, NightEquityPenalty (0) = even out total nights (try 20), NightDifferential (1.0), WeekendDifferential (1.0), TimeLimitSeconds (max 60 here), GapPercent (2).wait_seconds· integer · optionnel
How long to wait for the solve inside this call (default 25).
Exemple d'appel{"name": "build_shift_roster", "arguments": {"days": [], "grids": {}, "people": [], "shifts": [], "skills": [], "demands": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_shift_example≈ 178 tokens
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.
Paramètres, retour & exemple (2)
Paramètreslang· string · optionnel · en | es
es = Spanish shift and post names.name· string · requis · hospital-ward | three-shift-plant | security-site | fire-station | support-desk
Exemple d'appel{"name": "get_shift_example", "arguments": {"name": "hospital-ward"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_shift_roster_result≈ 148 tokens
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.
Paramètres, retour & exemple (2)
Paramètresjob_id· string · requiswait_seconds· integer · optionnel
Exemple d'appel{"name": "get_shift_roster_result", "arguments": {"job_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_shift_examples≈ 116 tokens
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.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_shift_examples", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».