shift-maker
Allows publishing shift schedules to a store's KakaoTalk subscription calendar.
Click on "Install 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: LAWMADI
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tkddnjs-dlqslek/shift-maker-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server