shift-maker
Allows publishing shift schedules to a store's KakaoTalk subscription calendar.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@shift-makerRegister a cafe with three shifts, two employees each."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
shift-maker β Labor-Law-Aware Shift Scheduling MCP Server
Generate legally-compliant weekly shift schedules for Korean workplaces through pure conversation β powered by OR-Tools CP-SAT.
π°π· νκ΅μ΄ README
Why
Ask an LLM to build a weekly shift roster and it will confidently hand you one that double-books a person into two shifts at once, blows past the 52-hour weekly cap, or puts a minor on a midnight shift. Rostering is a constraint-satisfaction problem, and next-token prediction is the wrong tool for it β the answer looks right and is quietly illegal.
shift-maker doesn't ask the model to do the math. The conversation only collects facts (store, shifts, employees, constraints); the actual schedule is solved by an OR-Tools CP-SAT engine on the backend. You get either a schedule that is provably valid under the constraints, or a clear "infeasible + reason" β never a plausible-looking violation.
Related MCP server: Google MCP Router
Features
Eight MCP tools cover the full flow from store setup to publishing:
Tool | What it does |
| Connectivity check β echoes your message back as |
| Create a store (scheduling session): shifts (name, start, end, headcount) and operating days. Returns a |
| Add or update an employee by name: weekly contract days, unavailable days, minor-worker flag, fixed assignments, date-specific unavailability. |
| Solve the weekly roster from employees, availability, and owner rules; returns a readable table. |
| Read back an already-generated schedule (read-only, never re-solves). |
| Generate a self-serve link employees fill in to submit their availability for the week. |
| Show who has and hasn't submitted their availability. |
| Publish the confirmed roster to the store's KakaoTalk subscription calendar. |
Labor-law engine
generate_schedule takes a laborMode that selects how the Korean Labor Standards Act is applied:
| Applies to | Enforces |
| Workplaces with 5+ employees | 52-hour weekly cap, weekly paid rest day, minor-worker protection |
| Workplaces with fewer than 5 employees | Weekly rest day and minor-worker rules; 52-hour cap exempted |
| Exempt roles (surveillance/intermittent work, e.g. security, firefighting) | Baseline validity only (no double-booking); statutory caps waived |
Minor workers (isMinor: true, under 18): no night work (22:00β06:00), max 7 hours/day, max 35 hours/week β all enforced as hard constraints.
Weekly holiday allowance (μ£Όν΄μλΉ): this is not auto-avoided. When an employee crosses 15 scheduled hours in a week they become eligible for the statutory paid-holiday allowance. shift-maker surfaces that fact transparently as a warning so the owner can decide β it never silently trims hours to dodge the threshold.
Also supports
Day-of-week staffing overrides β need 2 people on weekday nights but 3 on weekends? Add a shift slot with a
dayand itscountreplaces the base headcount for that day (it does not stack).Per-employee fixed assignments β pin someone to a recurring
dayΓ shift every week (e.g. "manager always works Friday/Saturday night").Date-specific unavailability β block a single date Γ shift ("can't close on 7/8") without marking the whole day off.
Overnight shifts β an end time earlier than the start time is treated as crossing midnight and rendered with an
(μ΅μΌ)/ "next day" tag.Self-serve availability links β share one link in a group chat and each employee submits their own availability.
Live demo
A hosted instance is live over Streamable HTTP:
https://shift-maker.playmcp-endpoint.kakaocloud.io/mcpConnect it in three steps:
In Claude Desktop, open Settings β Connectors β Add custom connector (or launch the MCP Inspector).
Paste the endpoint URL above as a Streamable HTTP server.
Start chatting β the tools appear automatically.
Verified 3-message scenario (cinema)
These three Korean messages take the server from empty to a finished, law-compliant roster plus an availability link:
"μ°λ¦¬ μνκ΄ λ±λ‘ν΄μ€. 3κ΅λ κ° 2λͺ , μ£Όλ§ μΌκ°μ 3λͺ μΌλ‘" "Register my cinema. Three shifts, 2 people each, but 3 on weekend nights."
"μ μ₯, μ£Ό3μΌ κ³ 3, μ§μ 8λͺ λ±λ‘. μ μ₯μ κΈΒ·ν μΌκ° κ³ μ " "Add a manager (3 days/week, high-school senior) and 8 staff. Pin the manager to Friday/Saturday night."
"2026-07-20 μ£Ό 근무ν μ§κ³ , κ°μ©μκ° μ λ ₯ λ§ν¬λ λ§λ€μ΄μ€" "Build the roster for the week of 2026-07-20 and create an availability-input link."
Architecture
flowchart LR
A[AI client\nClaude / ChatGPT / Kakao PlayMCP] -->|MCP Streamable HTTP| B[shift-maker MCP server\nthis repo]
B -->|REST + shared secret| C[SmartShift backend\nNext.js on Vercel]
C --> D[(PostgreSQL)]
C -->|solve| E[OR-Tools CP-SAT\nPython on Render]This repo is the MCP layer. The backend/solver run as a hosted service; point SMARTSHIFT_API_URL at your own deployment if you fork the full stack.
Run locally
npm ci && npm run build
cp .env.example .env # set SMARTSHIFT_API_URL and MCP_SHARED_SECRET
node dist/index.jsThen connect a client to the local server with the MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.jsBuilt for Kakao AGENTIC PLAYER 10 (2026).
License
MIT β see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Generate optimized work shift schedules from staffing demand, availability and fairness rules.
Staff scheduling β manage staff, shifts, assignments, certifications, and requests via AI.
Optimize crew and workforce schedules, resource allocation, and routing with linear and mixed-inteβ¦
- mcpOAuthcom.crisphive
Field operations on a deterministic solver β run jobs, crews & fleet from Claude or ChatGPT.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables 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.55Apache 2.0
- -licenseNot gradedqualityNot gradedmaintenanceEnables scheduling meetings and sending email confirmations through Google Calendar and Gmail APIs. Provides secure OAuth authentication, policy enforcement for working hours, and prevents scheduling conflicts.-
- AlicenseAqualityDmaintenanceProvides constraint satisfaction and optimization capabilities to LLMs and AI agents for scheduling, resource allocation, routing, budget optimization, and configuration problems using Google OR-Tools CP-SAT solver.55Apache 2.0
- AlicenseBqualityAmaintenanceλ²λ§λ(Lawmadi) OS β Korean Legal AI with 60 specialized agents and real-time statute verification via law.go.kr. Free: 2 queries/day. Korean & English.71AGPL 3.0