MCP Server

Connect RotaHog to AI assistants like Claude, ChatGPT, Cursor, and other MCP-compatible tools. Describe a rotation to set it up, then ask "who's on call today?" and get a real answer. Adding the connector takes one URL and no API token, on any plan including free.


What is MCP?

The Model Context Protocol (MCP) is an open standard that lets AI assistants connect to external tools and data sources. RotaHog's MCP server gives your AI assistant direct access to your rotation data.


Setup

1. Add RotaHog as a connector

Using Claude? Add RotaHog from the Claude connector directory and there is no URL to paste. In Claude itself: Settings, Connectors, Browse connectors, search for RotaHog, Connect. Read the announcement.

In Claude, ChatGPT, or any client that supports remote MCP servers, add a connector pointing at this URL:

https://rotahog.com/mcp

That is the only thing you need to enter. The client works the rest out for itself, sends you to RotaHog to sign in, and shows you exactly what it is asking for before anything is connected. There is no token to create, copy, or keep safe.

What you are agreeing to

The consent screen will name the client, tell you whether RotaHog recognises it, and show the host that will receive access. It asks for one or both of:

rotations:read See your rotations, members and turns
rotations:write Create rotations, and complete, reassign or cancel turns on your behalf

Connected clients are listed on your API tokens page, and you can disconnect any of them from there at any time. Disconnecting takes effect immediately.

2. Or use an API token

Some clients read servers from a config file and cannot sign you in. For those, create a token on your API tokens page. Use read scope for read-only access, or read_write if you want the AI to complete or manage turns.

Claude Desktop / Claude Code
{
  "mcpServers": {
    "rotahog": {
      "url": "https://rotahog.com/mcp",
      "headers": {
        "Authorization": "Bearer rh_your_token_here"
      }
    }
  }
}
Cursor

In Cursor settings, add a new MCP server with:

  • URL: https://rotahog.com/mcp
  • Headers: Authorization: Bearer rh_your_token_here

Existing tokens keep working, so nothing needs changing if you already have this set up. Connecting as a connector is simply less to look after.

3. Start using it

Once configured, you can ask your AI assistant things like:

  • "Set up a weekday standup rotation for Alice, Bruno and Carla, starting Monday"
  • "Who's on call this week?"
  • "Show me the schedule for our standup rotation"
  • "Mark today's deploy captain turn as complete"
  • "Find a substitute for my turn next week"

Available Tools

Scopes below are the API token names. Their equivalents in the connector flow are rotations:read and rotations:write.

ToolScopeDescription
list_rotationsreadList all rotations you own or participate in
get_rotationreadGet rotation details including members and next turn
list_turnsreadList turns with optional status and date filters
get_current_turnreadGet who's currently on duty for a rotation
create_rotationread_writeCreate a rotation from a task, a frequency and a list of people, and generate a year of turns
complete_turnread_writeMark a turn as completed
substitute_turnread_writeAssign a substitute for a turn
cancel_turnread_writeCancel an upcoming turn (owner only)

Authentication

The MCP server accepts two kinds of credential, both as a bearer token in the Authorization header: an access token issued through the connector flow, or an API token you created yourself. API tokens are the same ones the REST API uses.

For client developers

RotaHog is an OAuth 2.1 resource server and its own authorization server. Discovery starts from either of:

  • GET https://rotahog.com/.well-known/oauth-protected-resource (RFC 9728)
  • GET https://rotahog.com/.well-known/oauth-authorization-server (RFC 8414)

An unauthenticated request to /mcp also answers 401 with a WWW-Authenticate header naming the metadata URL, so you do not need to know any of this in advance.

  • Authorization code grant with PKCE. S256 only, and it is required, not optional.
  • Clients may be registered dynamically (RFC 7591) or identified by a Client ID Metadata Document, which is preferred.
  • Pass resource=https://rotahog.com/mcp (RFC 8707). Tokens are bound to that audience.
  • Responses carry iss (RFC 9207) on both success and error.
  • Access tokens last an hour. Refresh tokens rotate: the one you exchange stops working once its replacement is used.
Rate limits and plans

120 requests per minute per token, and 60 per minute per IP address for requests without a usable one.

An assistant can do what you can do in the browser, so every plan including free can connect, create rotations, read them, and complete turns. Your plan's limit on how many active rotations you can own applies here too.

Two tools are paid features, exactly as they are in the web app: substitute_turn needs a plan with Find a substitute, and cancel_turn needs one with Cancel a turn. On a plan without them, the tool returns a message saying so rather than failing silently. See the pricing page for which plan has what.


Prefer a traditional API? View REST API documentation.