Connect an MCP client

Edit your events from Claude, ChatGPT, Cursor, or another MCP client.

The Strave MCP server lets an AI client read and change your events in natural language. You connect Claude, ChatGPT, Cursor, or another client that supports remote MCP servers. Then you sign in with your Strave account. The client can read an event's structure, plan a change, show you what it does, and apply it.

You don't need an Application or a developer account. The connection belongs to you, not to an organisation.

Server URL

Every client uses the same remote MCP server:

https://strave.gg/api/v2/mcp

The server uses the Streamable HTTP transport. It supports the 2026-07-28 MCP protocol and also accepts clients that use a 2025 protocol version.

Add the server to your client

Each client has its own place for remote MCP servers. In all of them, add a remote MCP server with the URL above. The first time the client uses the server, it opens the Strave sign-in page in your browser.

  • Claude: Add a custom connector with the server URL.

  • ChatGPT: Add a connector with the server URL. Depending on your plan and workspace, this can require developer mode.

  • Claude Code: Run this command, then run /mcp in Claude Code to sign in:

    claude mcp add --transport http strave https://strave.gg/api/v2/mcp
  • Cursor: Add the server to your mcp.json file:

    {
    	"mcpServers": {
    		"strave": {
    			"url": "https://strave.gg/api/v2/mcp"
    		}
    	}
    }

For other clients, see the client's documentation for remote MCP servers.

Strave uses OAuth to connect the client to your account. The client registers itself with Strave the first time it connects. You don't copy a client ID or a secret.

To connect a client, follow these steps:

  1. Start the connection in your client. Your browser opens the Strave consent page.
  2. Sign in with your Strave account if you aren't signed in.
  3. Read the list of requested permissions and the name of the client.
  4. Select Allow to connect, or deny the request.

The consent page shows Not verified by Strave for a client that registered itself. Strave hasn't reviewed these clients. Allow access only if you started the connection yourself and you trust the client.

Scopes

The client asks for scopes. Each scope permits a group of tools:

ScopeWhat the client can do
event:readFind your events, read their structure, settings, and history, and preview changes.
event:createCreate new draft events in your organisations.
event:manageChange event settings and group schedules.
event.structure:manageChange stages, groups, and routes.
organisation:readRead the organisations that you belong to. No current tool needs it.
offline_accessStay connected without a new sign-in every time the access token expires.

Access tokens expire after 15 minutes. With offline_access, the client refreshes the token itself. If the client asks you to sign in again, repeat the consent steps.

What the client can do

The client acts as you. It has your organisation role in each organisation, and it can only do what you can do in Strave:

  • To read an event and its structure, you need the Events: View permission.
  • To read settings and history, preview a change, or apply a change, you need the Events: Configure permission.
  • To create an event, you need the Events: Create permission.

If you lose a permission in Strave, the client loses it too.

Tools

The server offers these tools:

ToolKindWhat it does
list_eventsReadLists the events that you can configure, newest first.
get_eventReadReturns the name, state, start time, signup counts, and stages of an event.
get_structureReadReturns the stages, groups with their state, routes, and current issues.
get_settingsReadReturns the values of one settings area.
simulate_structureReadPlays the structure with random results and reports problems.
list_templatesReadLists the Strave event templates.
list_revisionsReadLists the version history of an event, newest first.
preview_changeReadChecks a change without writing it and shows its result.
apply_changeWriteApplies a change.
preview_restoreReadShows what restoring an earlier version changes.
restore_revisionWriteRestores an earlier version.
create_eventWriteCreates a draft event, optionally from a template.

A change can contain these operations:

  • Create, update, delete, or reorder stages, including their groups.
  • Create, update, or delete routes between stages.
  • Turn the advanced format on or off.
  • Update one settings area, for example registration, map pool, match format, branding, or prizes.
  • Schedule a group.

The tools don't change teams, results, or match schedules. Use the event management area or Public API v2 for those.

create_event takes only the event name. Strave adds the organisation name, so the event appears as Nordic Siege League | Spring Cup. The new event stays a draft until you publish it.

Preview before you apply

The client must call preview_change before apply_change. The preview writes nothing. It returns the changes, the issues, the impact on teams and matches, a simulation of the new structure, and the items that block the change. A good client shows you this result and asks you before it applies the change.

Some changes affect teams that are already placed. When a change clears a seeded group, its teams lose their seeds and its unplayed matches are removed. In this case, apply_change fails with impact_confirm_required and writes nothing. The client must show you the impact. Only after you accept it can the client repeat the call with confirmImpact: true. restore_revision uses the same rule.

Read the impact before you accept it. A confirmed change removes the seeds and unplayed matches of the affected groups.

A group is locked when one of its matches has started. A change that touches a locked group fails with blocked, and confirmImpact doesn't override it. These are the same rules that apply when you edit the event in Strave.

History and undo

A change applies in full or not at all. If one operation fails, Strave writes none of them.

Each applied change becomes one version in the event's Version history. The entry shows your name and the label "via" followed by the client name, for example "via Claude". To undo a change, restore an earlier version. You can ask the client to do this with preview_restore and restore_revision, or select Restore this version in Version history.

Limits and pricing

The MCP server is free on all plans. Your client pays for its own AI usage.

Each user has these rate limits:

  • 60 tool calls per minute.
  • 20 write tool calls per minute, counted inside the 60 calls.

When you reach a limit, tools fail with rate_limited until the limit resets.

Errors

A failed tool call returns a JSON result with a code and an English message. Most clients pass the message to the model, which can fix the call:

CodeMeaning and what to do
blockedA locked group or a restore rule stops the change. Leave the locked groups out of the change.
impact_confirm_requiredThe change clears seeded groups. Review the impact, then repeat the call with confirmImpact: true.
invalid_changeThe change isn't valid. Fix it with the issues in the result.
permission_deniedYour role or the granted scopes don't permit the tool. Ask for the permission, or reconnect with the scope.
not_foundThe event or the tool doesn't exist, or you can't access it. Check the eventId with list_events.
rate_limitedYou reached a rate limit. Wait and try again.
event_endedThe event is completed or cancelled. You can't change it.
internalThe call failed on the Strave side. Try again later. If it keeps failing, contact support.

Next steps