Skip to content

Connection Scopes

What each scope permits, how they combine with your workspace role, and which set to pick.

What this does

Every API and MCP token carries an explicit list of scopes. A scope is resource:actionschedule:read, leaves:write — and the token can do exactly what its scopes allow and nothing else.

Two controls sit on top of the list:

  • Read-only mode denies every :write scope at request time, regardless of what is stored on the token
  • Your workspace role caps what you can grant in the first place

The scopes

ScopeTypePermits
workspace:readReadWorkspace name, timezone, active agent count, enabled feature modules
agents:readReadList agents with holiday group, off days and active status
agents:writeWriteCreate and update agents
schedule:readReadRead the schedule grid, find coverage gaps, find available agents
schedule:writeWriteAssign and unassign agents to schedule slots
leaves:readReadRead leave requests and balances
leaves:writeWriteCreate leave requests, approve and reject them
holidays:readReadRead public holidays and holiday groups
holidays:writeWriteCreate and update holidays
ot:readReadRead overtime events, submissions and slot coverage
ot:writeWriteCreate OT events, approve and reject submissions
reports:readReadRead work report submissions and missed-report tracking

Scope-to-tool mapping

ScopeMCP tools
workspace:readget_workspace_info
agents:readlist_agents
schedule:readget_schedule, find_coverage_gaps, find_available_agents
schedule:writeassign_shift, unassign_shift
leaves:readlist_leaves
leaves:writecreate_leave, update_leave_status
holidays:readlist_holidays
ot:readlist_ot_events, get_ot_coverage
reports:readget_missed_reports

How restrictions combine

Restrictions intersect. A token's real permissions are:

granted scopes  ∩  what your workspace role allows  ∩  (read-only ? reads only : everything)

Every layer can only narrow, never widen.

Role caps

Your roleCan grant
OwnerEverything in the catalogue
AdminAll reads and all writes
LeadAll reads, plus schedule:write and leaves:write
MemberReads only: workspace:read, agents:read, schedule:read, leaves:read, holidays:read, ot:read

If you ask for a scope above your role, it is silently dropped from the token rather than erroring — so a client requesting a scope we later restrict does not break. If every requested scope is above your role, token creation fails with an explanation.

TIP

Role caps are re-checked when a token is edited, and against the token owner's role rather than the editor's. An admin tightening a member's token cannot widen it beyond what that member could have granted themselves.

Read-only mode

Read-only is evaluated on every request, not baked into the token at creation. Flipping an existing token to read-only stops writes on the very next call — no rotation, no reconfiguring your client.

On MCP connections, read-only additionally hides the write tools from tools/list, so the model never attempts one.

Choosing a scope

Intended useRecommended scopes
Asking questions about coverage and leaveRead-only: workspace:read, agents:read, schedule:read, leaves:read, holidays:read
Daily standup / handover summariesRead-only: the above plus reports:read, ot:read
Filling coverage gaps from chatagents:read, schedule:read, schedule:write
Handling leave requestsagents:read, leaves:read, leaves:write, schedule:read
A dashboard or reporting integrationRead-only, every :read scope
Full agent assistanceRead and write, all scopes — owner or admin only

Start read-only. Most of the value here is in asking questions, and you can widen a token later without rotating it.

One token per client. A separate token for your laptop, your desktop and any integration means the activity log tells you which one did what, and losing a device means revoking one token rather than all of them.

Editing a live connection

From Settings → API & MCP you can change a token's scopes or its read-only flag at any time. The token string does not change, so pasted client configs keep working. Changes apply on the next call.

Revoking is permanent. The token row is kept so past entries in the activity log still have a name to attribute calls to, but the token stops working immediately.

The workspace kill switch

Workspace owners can disable API and MCP access for the entire workspace in one action. Every token stops working immediately and returns a 403 explaining why. Re-enabling restores them all — no tokens are lost.

Use it when you suspect a token has leaked and want to stop everything before working out which one.

Built with ❤️ for support teams worldwide.