tandem
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., "@tandemGenerate the duty rotation calendar starting with Fran and Xabi this week."
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.
Tandem
Somebody has to be on duty this week, and next week, and the week after that. Left to a group chat, that argument runs forever. This is a stdio MCP server that settles it: give it this week's pair, get back the whole calendar.
No database, no config file, no cron. Names go in as arguments, the rotation comes out. That's the entire product.
Install
Node >= 18 is all you need. npx fetches the package the first time and caches
it. Participants are plain arguments (spaces or commas, your call); with none,
it falls back to ROTATION_PARTICIPANTS, and then to Fran,Xabi,Dani.
Claude Code
claude mcp add -s user tandem -- npx -y github:pg-motocard/tandem Fran Xabi Dani-s user makes it available from any directory. Drop the flag and the scope is
local, meaning it only exists inside the folder you ran the command from.
Or by hand in ~/.claude.json, under the top-level mcpServers (the one nested
inside projects is the local scope):
"tandem": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:pg-motocard/tandem", "Fran", "Xabi", "Dani"]
}Claude Desktop
claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/,
Windows: %APPDATA%\Claude\), under mcpServers:
"tandem": {
"command": "npx",
"args": ["-y", "github:pg-motocard/tandem", "Fran", "Xabi", "Dani"]
}Restart the app after saving.
Cursor
~/.cursor/mcp.json (global) or .cursor/mcp.json (per project), under
mcpServers:
"tandem": {
"command": "npx",
"args": ["-y", "github:pg-motocard/tandem", "Fran", "Xabi", "Dani"]
}Codex CLI
~/.codex/config.toml:
[mcp_servers.tandem]
command = "npx"
args = ["-y", "github:pg-motocard/tandem", "Fran", "Xabi", "Dani"]Any other MCP client
If it speaks stdio, it works: command npx, arguments
-y github:pg-motocard/tandem <names>. Instead of arguments you
can set ROTATION_PARTICIPANTS="Fran,Xabi,Dani".
Local development
npm install once in the repo, then point the client at the file:
"command": "node",
"args": ["/path/to/tandem/index.js", "Fran", "Xabi", "Dani"]Related MCP server: supershift-mcp
Usage
One tool, pair_rotation(person1, person2, participants?):
person1andperson2: this week's pair. Type one of them in CAPS and that person stays on for week 2 with somebody else. Shouting is the API.participants(optional): a comma-separated list for this call only, leaving your config alone. Handy when someone joins for a fortnight:participants: "Fran,Xabi,Dani,Laura".
Three names minimum, no duplicates — in the config (or the server refuses to boot) and in the parameter (or the call comes back with the error).
The rules
With N participants:
The calendar runs
2Nweeks and everybody shows up 4 times.Week 1 is the pair you handed over.
Exactly one person carries over from each week into the next, so the same pair never happens twice in a row.
Nobody works three weeks straight.
Dates start on the Monday of the current week.
The search is randomised, so the same arguments can produce different calendars. Both are correct. Pick your battles.
Tests
npm testChecks the invariants — week count, appearances, carry-over, no three in a row, the CAPS repeater — with 3, 4 and 5 participants.
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.
Related MCP Connectors
Generate optimized work shift schedules from staffing demand, availability and fairness rules.
Turn a written schedule into a live calendar link people subscribe to in Apple, Google, Outlook.
Date math and SVG rendering for fictional and custom calendars. Exact, stateless and deterministic.
Compute real duty rosters from your AI assistant - rule-based vigotime planner, API key or OAuth.
Related MCP Servers
- AlicenseAqualityCmaintenanceCalendar MCP server with atomic booking, conflict prevention, deterministic RRULE expansion, and TOON token compression for AI agents.1812MIT
- AlicenseCqualityBmaintenanceEnables AI clients to read and analyze Supershift schedules from exported calendar data, providing tools to list, filter, summarize shifts, detect conflicts, and estimate pay.35MIT
- FlicenseNot gradedqualityDmaintenanceProvides intelligent weekly schedule analysis from Google Calendar, including day-by-day breakdowns, workout suggestions, office day detection, and scheduling problem identification through natural language queries.
- AlicenseNot gradedqualityCmaintenanceGenerates 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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/pg-motocard/tandem'
If you have feedback or need assistance with the MCP directory API, please join our Discord server