Skip to content

MCP server

Round Robin exposes a remote Model Context Protocol (MCP) server. Connect it to an AI assistant that supports remote MCP servers — Claude, for example — and the assistant can answer questions like “who is on call for PAYMENTS right now?” or “show me the upcoming schedule for the support rotation” using live data from your workspace, and even create and schedule rotations for you (with your confirmation, and only where you have permission).

All results are scoped to your own Slack workspace, which is derived from your sign-in — an assistant cannot ask for data from a workspace you don’t belong to.

Property Value
URL https://api.roundrobinbot.eu/mcp
Transport Streamable HTTP
Authentication OAuth 2.1 (sign in with the same account you use for the dashboard)

The exact steps depend on your MCP client, but the flow is standard OAuth:

  1. Add a remote MCP server in your client and enter the URL https://api.roundrobinbot.eu/mcp.
  2. The client discovers the authorization server automatically (RFC 9728 protected-resource metadata) and registers itself — dynamic client registration is supported, so no manual client ID is needed.
  3. Your browser opens a Round Robin sign-in page. Sign in with the same account you use for the dashboard.
  4. Once you approve, the client receives a token and the tools become available.

For example, in Claude Code:

Terminal window
claude mcp add --transport http round-robin https://api.roundrobinbot.eu/mcp

then run /mcp inside Claude Code to complete the sign-in.

Tool Input What it returns
who_is_on_call Rotation code (e.g. PAYMENTS) Who is on call now and up next (names, Slack IDs, shift end times), the rotation’s channels, its on-duty user group, whether it is enabled, and whether you are a member.
list_my_rotations The rotations visible in your workspace, each with name, code, enabled state, who is on call now, its on-duty group, and a youAreMember flag.
get_rotation_schedule Rotation code, entry count (default 10) The upcoming duty roster: each entry has the user (ID and name), turn index, and on-duty since/until timestamps (UTC).
list_my_teams Count (default 50) The Slack workspaces you belong to.
get_user_info Slack user ID Display name, real name, handle, email (if visible), and whether it is a bot.
get_group_info Slack user group ID The group’s @handle, name, and description.
get_channel_info Slack channel ID The channel’s name and whether it is private.

Rotation and schedule results always include human-readable names alongside the raw Slack IDs, so the assistant rarely needs the lookup tools. When it does receive an unknown ID, the lookup tools return a Found: false result instead of an error.

The read tools are declared read-only and idempotent (standard MCP tool annotations), so assistants that honor annotations — Slackbot, Claude — run them without confirmation prompts.

Rotations can also be created and managed conversationally — through the Slack connection only. Management tools are reserved for Round Robin’s own Slack integration (Slackbot): a personal connection you register yourself (Claude, Cursor, or any other MCP client) is read-only and does not even see these tools in its tool list. These tools change data, so assistants always summarize the change and ask for your confirmation before running them:

Tool Input What it does
create_rotation Name; optional code, description, members (in rotation order), channels, duty size Creates an enabled rotation with you as owner. It starts without an automatic schedule — set one with set_rotation_schedule or in the dashboard.
update_rotation Rotation code; any of: new name, new code, description, members, channels, duty size, enabled Partially updates a rotation you own — only the fields you provide change.
set_rotation_schedule Rotation code; schedule type (weekly, daysOfWeek, daily, workdays), time zone, first handover, period; type-specific options Sets or replaces the rotation’s automatic schedule for the common cases. Advanced options (business hours, custom calendars) live in the dashboard.

The same rules as the dashboard apply: you must be an owner of the rotation you change, plan limits are enforced, and rotation codes must be unique. Deleting rotations is deliberately not available through assistants — use the dashboard.

Access to the tools is governed by OAuth scopes, which you grant on the consent screen when connecting a client:

Scope Grants Required by
read:oncall Reading rotations, schedules, on-call state, and directory lookups All read tools
write:rotation Creating and updating rotations and their schedules The management tools

A connected client can only use tools covered by the scopes you approved, and it only sees the tools it can use: a client without write:rotation gets a tool list with the read tools alone. write:rotation is reserved for first-party surfaces — connecting through Slack grants it automatically, while self-registered clients (a personal Claude or Cursor connection) only ever receive read access. Assistants always ask for confirmation before running a management tool.

  • Rotation codes. The rotation tools identify rotations by their short code (like PAYMENTS), the same code you use with slash commands in Slack. list_my_rotations is the easiest way for an assistant to discover the codes in your workspace.
  • Changes are owner-gated and confirmed. The management tools follow the same permission rules as the dashboard, and assistants confirm every change with you first. There is no tool to delete a rotation or advance who is on duty — use the Slack bot or the dashboard for those.
  • Workspace scoping. The workspace is always taken from your authenticated identity, never from a tool parameter, so a prompt cannot redirect the assistant to another workspace’s data.