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

  1. Sign up, create a workspace and choose a plan on the pricing page.
  2. Open Settings, then AI assistant (MCP), and create a token. The full token is shown once. Copy it then.
  3. Add the server to your client with the URL and the header below.
  4. 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_transitionsRead

    Onboarding and offboarding cases with a start or last day in the next N days, with readiness as verified steps.

  • get_transition_statusRead

    Readiness, required steps, owners, due dates and blockers for one case.

  • get_handoff_graphRead

    The dependency graph of steps for one case, with status, owner team and linked tickets.

  • list_overdue_handoffsRead

    Overdue or blocked steps across open cases, optionally for one team. Step title, owner team, due date and first name only.

  • get_readiness_briefRead

    Aggregate readiness for upcoming starts: counts by status and blockers by team, without personal details.

  • list_pending_approvalsRead

    Approval requests that wait for a human decision, and approved actions that still need execution.

  • preview_new_transitionPreview

    Shows the task plan that a new case would create, without writing anything.

  • create_transition_caseWrite

    Creates 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_dispatchPropose

    Proposes Jira issues or Slack reminders for steps of a case. It only creates approval requests.

  • propose_start_date_replanPreview

    Recomputes every due date for a new start date and lists conflicts. Writes nothing.

  • execute_approved_actionExecute

    Executes 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.