MCP server for employee onboarding and offboarding
The People Ops Manager runs a remote MCP server (Model Context Protocol). Claude, ChatGPT, Cursor and other MCP clients can read readiness, preview and create cases, and propose Jira tickets or Slack reminders. Every change to an external system waits for a person to approve it in the web app.
Set up in four steps
- Sign up, create a workspace and choose a plan on the pricing page.
- Open Settings, then AI assistant (MCP), and create a token. The full token is shown once. Copy it then.
- Add the server to your client with the URL and the header below.
- Ask a question, for example which starters in the next 14 days are at risk.
Server details
- URL
- https://dfuvrdwagwjbgucalcgb.supabase.co/functions/v1/mcp
- Transport
- Streamable HTTP, JSON-RPC over POST (initialize, tools/list, tools/call)
- Authentication
- Header Authorization: Bearer pom_... with a token from Settings
- Scope
- One token belongs to one workspace and acts with the role of the member who created it
Claude Code
claude mcp add --transport http people-ops https://dfuvrdwagwjbgucalcgb.supabase.co/functions/v1/mcp --header "Authorization: Bearer pom_YOUR_TOKEN"
Cursor (.cursor/mcp.json)
{
"mcpServers": {
"people-ops": {
"url": "https://dfuvrdwagwjbgucalcgb.supabase.co/functions/v1/mcp",
"headers": {
"Authorization": "Bearer pom_YOUR_TOKEN"
}
}
}
}Claude Desktop connects through the mcp-remote bridge, and ChatGPT through a custom connector with the same URL and header. Settings shows copy-ready snippets for each client.
The 11 tools
list_upcoming_transitionsReadOnboarding and offboarding cases with a start or last day in the next N days, with readiness as verified steps.
get_transition_statusReadReadiness, required steps, owners, due dates and blockers for one case.
get_handoff_graphReadThe dependency graph of steps for one case, with status, owner team and linked tickets.
list_overdue_handoffsReadOverdue or blocked steps across open cases, optionally for one team. Step title, owner team, due date and first name only.
get_readiness_briefReadAggregate readiness for upcoming starts: counts by status and blockers by team, without personal details.
list_pending_approvalsReadApproval requests that wait for a human decision, and approved actions that still need execution.
preview_new_transitionPreviewShows the task plan that a new case would create, without writing anything.
create_transition_caseWriteCreates a case with its task plan inside the workspace. Needs the operator role or higher and is idempotent per key. No external system is touched.
propose_task_dispatchProposeProposes Jira issues or Slack reminders for steps of a case. It only creates approval requests.
propose_start_date_replanPreviewRecomputes every due date for a new start date and lists conflicts. Writes nothing.
execute_approved_actionExecuteExecutes an action that a person already approved in the web app. Needs an owner or admin token and never provisions or disables accounts.
Safety rules
- Only a SHA-256 hash of each token is stored. Revoke a token in Settings and it stops working at once.
- Read tools return only the fields the token owner's role may see.
- Agents propose, people decide. Jira tickets and Slack messages are created only after an owner or admin approves the request.
- Agent actions are labelled in the activity log. The server allows 120 requests per minute per token.
- A workspace needs an active subscription for its tokens to work.