The assistant at a glance
What the assistant is called on this Roster (name, "Front Desk" unless renamed), where you are with the first-run onboarding (needed while the workspace has no hires and you haven't finished or skipped it; done, skipped or not_needed), the onboarding conversation to carry on, your recent conversations, suggested prompts, and whether the assistant can answer on this Roster.
sessionbetter-auth.session_token<token>Set by POST /api/auth/sign-in/email.
ws*stringThe workspace id (from GET /api/me).
The assistant's state for you.
application/jsoncurl -X GET 'https://app.useroster.work/api/workspaces/string/assistant'{ "name": "Front Desk", "onboarding": "needed", "conversations": [ { "id": "0b8e…", "title": "Move Ledger to weekdays 9–5", "onboarding": false, "createdAt": "2026-11-09T09:00:00.000Z", "updatedAt": "2026-11-09T09:02:00.000Z" } ], "suggestions": [ "Who's on shift right now?" ], "available": true}Roster's MCP server POST
Model Context Protocol over Streamable HTTP, for Claude Code, Codex and other agents: send JSON-RPC (`initialize`, `tools/list`, `tools/call`) with `Authorization: Bearer <API token>`. Answers are JSON; there are no sessions. The tools do what you can do in the app, with your rights, and nothing more. See the guide "Use Roster from Claude Code, Codex or another agent".
Finish or skip the onboarding PUT
Whatever was set up so far stays. `conversationId` is the onboarding conversation, kept for later.