Strava API and MCP server Let your AI agent tidy your Strava account.

Read your Strava activities, gear and club records through MCP or REST. Connect an AI agent or create a private activity reporting workflow with HTTP requests.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Strava
Strava logo Strava Cloud Browser

11 tools Read and write

Read and write

What can you automate in Strava? Use an AI agent, a workflow or a script.

  • Fix gear on many activities

  • Read the weekly club leaderboard

  • Check shoe and bike mileage

  • Reply to comments

  • Log a missed workout

  • Request your full data export

Official, read-only

Does Strava have an MCP server or an API? Yes, with limits, since June 2026.

Strava has an official API and, since 1 June 2026, an official MCP connector (checked 27 Oct 2026). The MCP is read-only, works with Claude only and needs a paid Strava subscription, with no separate fee. Cotlet runs 11 Strava tools hosted, 5 of them writes, over MCP for agents and REST for scripts.

  • The API also needs a subscription for new developers, serves 1 athlete by default and 10 after a self-upgrade, and allows 200 requests per 15 minutes and 2,000 a day by default.
  • Strava's API Policy bans using its data in any AI application, except through Strava's own MCP, and bans operating other MCP servers on top of the API.
  • Strava has no bulk edit for gear or activity type, and the club leaderboard keeps no history beyond last week.
Strava's official MCP, its API and Cotlet compared, checked 27 Oct 2026
What you need Official MCPStrava APICotlet
Read activities, gear and clubs Yes, with a subscription Yes, with a subscription Yes
Edit gear, title or privacy No, read-only Yes, one call each Yes, one activity at a time
Read a club leaderboard Club data, no tool list Club endpoints deprecated Yes
Post a comment No Not in the reference Yes, after your OK
Use it from ChatGPT, Cursor or n8n Claude only for now Bans AI use of the data Any MCP client or REST
Allowed by Strava's terms Yes, official Yes, but not for AI No, automated access

Checked 27 Oct 2026. Sources: Strava Press: Strava Launches MCP Connector (1 June 2026) · Strava Help: What Is the Strava MCP Connector? · Strava Community Hub: An Update To Our Developer Program · Strava API Policy (effective 1 June 2026) · Strava Help: Bulk editing activities

Set up once

How does Cotlet connect to Strava? One account, two ways to connect.

  1. 1Sign in to Strava

    Use your own account in its Cotlet Cloud Browser.

  2. 2Choose MCP or REST

    Connect your agent or create a Cotlet API key.

  3. 3Run your workflow

    Ask your agent or send an HTTP request.

We never keep your Strava password, and no comment or new activity goes out until you approve it. Who can see your session

Any MCP client

Connect Strava to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.

  1. 1

    Enable Strava for agents. Sign up, log in to Strava in its Cloud Browser, then press Enable for agents.

  2. 2

    Paste the Cotlet address. Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.

  3. 3

    Approve the connection. Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.

One shared address, https://cotlet.dev/mcp/v1, also carries Strava next to your other apps. If you enable Strava after connecting, refresh the connector so the new tools show up.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-strava \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-strava": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet-strava]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: strava_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: strava_write
Scripts and HTTP

How to use the Strava REST API

Create your Cotlet API key

Create a Cotlet API key with access to Strava and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.

Sign in to Strava in its Cotlet Cloud Browser and enable the app for agents. Use your own Strava account; private activities remain account data to handle in your chosen private destination.

Make your first Strava API request

REST
curl https://cotlet.dev/api/v1/strava/activities \
  -H "Authorization: Bearer $COTLET_API_KEY"

Read activities and continue the list

A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.

Illustrative response excerpt
{
  "status": "success",
  "app": "strava",
  "tool": "list_activities",
  "result": {
    "activities": [
      {
        "activity_id": "14820593112",
        "title": "Morning run",
        "sport": "Run",
        "date": "2026-10-26",
        "distance_km": 10.4,
        "moving_time": "52:10",
        "gear": "Pegasus 41",
        "visibility": "followers",
        "kudos": 12,
        "comments": 3
      }
    ],
    "next_cursor": null
  }
}

Read result.activities and pass the returned next_cursor unchanged as cursor until it is empty. Preserve sport, date and missing-gear filters; no page-size input is exposed.

Your own activity list includes Only You activities. Keep those records in a private destination and compare gear, visibility and engagement counts as well as IDs.

distance_km uses kilometers; moving_time is formatted time rather than numeric minutes. These activity reads do not return GPS, power or other streams.

Strava workflows for agents and automations

Strava workflows you configure
ToolConnect throughExample workflow
n8nHTTP RequestRead activities and activity details into a private gear and activity report, retaining visibility settings.
MakeHTTP > Make a requestRead gear records into a shoe and bike distance review without updating equipment.
Python or Node.jsREST APIRead clubs and their leaderboards into a dated club-distance digest for your chosen destination.

Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.

Cotlet reads Strava; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.

Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.

The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.

6 read, 5 write

Strava API endpoints and MCP tools

Activities5

Reads come from your My Activities list. Streams, GPS tracks and power data are not returned. Strava has no bulk edit, so a change to many activities is one call each.

  • list_activities List your activities from the My Activities page, newest first. read

    Returns the activity ID, title, sport, date, distance in km, moving time, gear name, visibility, and kudos and comment counts for each row, newest first. The tool reads the My Activities list, so it sees your own activities only, including those set to Only You. Follow next_cursor until it is empty to read a long history. Streams, GPS tracks and power data are not returned.

    MCP callstrava_read → list_activities

    REST endpointGET https://cotlet.dev/api/v1/strava/activities

    Parameters

    Parameters: list_activities
    NameTypeDescription
    sport string string Sport filter as My Activities shows it, for example Run or Ride. Omit for all sports.
    since string string Only activities on or after this date, ISO 8601.
    until string string Only activities on or before this date, ISO 8601.
    missing_gear boolean boolean When true, return only activities with no gear set.
    cursor string string Next page cursor from the previous call.

    Example response

    {
      "activities": [
        {
          "activity_id": "14820593112",
          "title": "Morning run",
          "sport": "Run",
          "date": "2026-10-26",
          "distance_km": 10.4,
          "moving_time": "52:10",
          "gear": "Pegasus 41",
          "visibility": "followers",
          "kudos": 12,
          "comments": 3
        },
        {
          "activity_id": "14812207745",
          "title": "Hill repeats",
          "sport": "Run",
          "date": "2026-10-24",
          "distance_km": 8.1,
          "moving_time": "47:32",
          "gear": null,
          "visibility": "followers",
          "kudos": 4,
          "comments": 0
        },
        {
          "activity_id": "14799031860",
          "title": "Easy spin",
          "sport": "Ride",
          "date": "2026-10-22",
          "distance_km": 24.8,
          "moving_time": "1:12:05",
          "gear": null,
          "visibility": "everyone",
          "kudos": 7,
          "comments": 1
        }
      ],
      "next_cursor": null
    }
  • get_activity Read one of your activities with its description, gear and privacy settings. read

    Returns the title, description, sport, start time, distance, elevation gain, moving and elapsed time, gear, visibility, whether heart rate is hidden, and the kudos and comment counts. Private notes and the full list of kudos givers are not returned. Works for your own activities only.

    MCP callstrava_read → get_activity

    REST endpointGET https://cotlet.dev/api/v1/strava/activities/{activity_id}

    Parameters

    Parameters: get_activity
    NameTypeDescription
    activity_id string required string Activity ID from list_activities.

    Example input

    {
      "activity_id": "activity_8c41d2"
    }

    Example response

    {
      "activity_id": "14820593112",
      "title": "Morning run",
      "description": "Easy loop by the river.",
      "sport": "Run",
      "start": "2026-10-26T06:41:00",
      "distance_km": 10.4,
      "elevation_gain_m": 62,
      "moving_time": "52:10",
      "gear": "Pegasus 41",
      "visibility": "followers",
      "heart_rate_hidden": false,
      "kudos": 12,
      "comments": 3
    }
  • update_activity Change an activity's title, description, gear or sport. write

    Saves the fields you pass and leaves the rest as they are. Returns the activity as it is after the save. It does not change visibility, so it reaches nobody new and is undone by calling it again with the old values, which is why it does not ask first. For many activities the agent calls it once per activity, because Strava has no bulk edit for gear.

    MCP callstrava_write → update_activity

    REST endpointPATCH https://cotlet.dev/api/v1/strava/activities/{activity_id}

    Parameters

    Parameters: update_activity
    NameTypeDescription
    activity_id string required string Activity ID from list_activities.
    title string string New title.
    description string string New description.
    gear_id string string Gear ID from list_gear. The gear must already exist in your profile.
    sport string string Sport as the edit screen lists it, for example Run or Ride.

    Example input

    {
      "activity_id": "14812207745",
      "gear_id": "g8812034"
    }

    Example response

    {
      "activity_id": "14812207745",
      "title": "Hill repeats",
      "gear": "Pegasus 41",
      "sport": "Run",
      "saved": true
    }
  • set_activity_visibility Set an activity to Everyone, Followers or Only You. writeasks first

    Changes who can see one activity. Moving an activity from Everyone to Followers or Only You removes its segment achievements, and Strava does not give them back. Returns the new setting. By default you confirm each call; you can switch that off for this tool.

    MCP callstrava_write → set_activity_visibility

    REST endpointPUT https://cotlet.dev/api/v1/strava/activities/{activity_id}/visibility

    Parameters

    Parameters: set_activity_visibility
    NameTypeDescription
    activity_id string required string Activity ID from list_activities.
    visibility string required string everyone, followers or only_you.

    Example input

    {
      "activity_id": "activity_8c41d2",
      "visibility": "visibility"
    }

    Example response

    {
      "activity_id": "14799031860",
      "visibility": "only_you",
      "saved": true
    }
  • create_manual_activity Add a manual entry for a workout you did not record. writeasks first

    Creates the activity from the web form and returns its ID and link. The website cannot edit start time, distance, duration or elevation of a manual activity afterwards, so a wrong entry has to be deleted by hand and created again. A new activity shows in your followers' feeds. By default you confirm each call; you can switch that off for this tool.

    MCP callstrava_write → create_manual_activity

    REST endpointPOST https://cotlet.dev/api/v1/strava/manual-activities

    Parameters

    Parameters: create_manual_activity
    NameTypeDescription
    title string required string Activity title.
    sport string required string Sport as the manual entry form lists it, for example Run or Ride.
    start string required string Start date and time, ISO 8601, in your Strava time zone.
    duration_minutes number required number Elapsed time in minutes.
    distance_km number number Distance in km.
    gear_id string string Gear ID from list_gear.

    Example input

    {
      "title": "title",
      "sport": "sport",
      "start": "start",
      "duration_minutes": 1
    }

    Example response

    {
      "activity_id": "14831550204",
      "title": "Easy run",
      "sport": "Run",
      "start": "2026-10-26T18:30:00",
      "distance_km": 5.2,
      "url": "https://www.strava.com/activities/14831550204"
    }

Comments2

Replies are posted under your name and no tool deletes them.

  • list_activity_comments List the comments on one of your activities, oldest first. read

    Returns the comment ID, author name, text and time for each comment, oldest first. Use it before comment_on_activity so the agent answers the open question and not one you already answered.

    MCP callstrava_read → list_activity_comments

    REST endpointGET https://cotlet.dev/api/v1/strava/activity-comments

    Parameters

    Parameters: list_activity_comments
    NameTypeDescription
    activity_id string required string Activity ID from list_activities.
    cursor string string Next page cursor from the previous call.

    Example input

    {
      "activity_id": "activity_8c41d2"
    }

    Example response

    {
      "comments": [
        {
          "comment_id": "3301145",
          "author": "Dana K.",
          "text": "Nice pace! Which shoes?",
          "posted_at": "2026-10-26T08:12:00"
        },
        {
          "comment_id": "3301190",
          "author": "Tom R.",
          "text": "See you Saturday?",
          "posted_at": "2026-10-26T09:40:00"
        }
      ],
      "next_cursor": null
    }
  • comment_on_activity Post a comment on one of your activities. writeasks first

    Posts the comment under your name and returns its ID. Anyone who can see the activity can read it, and no tool deletes it, so remove a wrong comment by hand in Strava. By default you confirm each call; you can switch that off for this tool.

    MCP callstrava_write → comment_on_activity

    REST endpointPOST https://cotlet.dev/api/v1/strava/activities/{activity_id}/replies

    Parameters

    Parameters: comment_on_activity
    NameTypeDescription
    activity_id string required string Activity ID from list_activities.
    text string required string Comment text.

    Example input

    {
      "activity_id": "activity_8c41d2",
      "text": "text"
    }

    Example response

    {
      "comment_id": "3301302",
      "activity_id": "14820593112",
      "text": "Thanks Dana, Pegasus 41. Saturday works for me.",
      "posted_at": "2026-10-27T07:05:00"
    }

Gear and clubs3

Gear mileage is what Strava counts from assigned activities. A club leaderboard covers this week and last week only.

  • list_gear List your bikes and shoes with the distance Strava counts on each. read

    Returns the gear ID, name, type (bike or shoes), total distance in km, and whether it is your default for a sport, as the My Gear page shows them. Strava has no field to enter gear mileage by hand, so the distance comes from the activities assigned to the item.

    MCP callstrava_read → list_gear

    REST endpointGET https://cotlet.dev/api/v1/strava/gears

    Parameters

    No parameters.

    Example response

    {
      "gear": [
        {
          "gear_id": "g8812034",
          "name": "Pegasus 41",
          "type": "shoes",
          "distance_km": 412.6,
          "default_for": [
            "Run"
          ]
        },
        {
          "gear_id": "g7740291",
          "name": "Gravel bike",
          "type": "bike",
          "distance_km": 3180.2,
          "default_for": [
            "Ride"
          ]
        }
      ]
    }
  • list_clubs List the clubs you belong to, with your role in each. read

    Returns the club ID, name, sport type, member count and your role (member or admin) for each club. The club ID feeds get_club_leaderboard.

    MCP callstrava_read → list_clubs

    REST endpointGET https://cotlet.dev/api/v1/strava/clubs

    Parameters

    No parameters.

    Example response

    {
      "clubs": [
        {
          "club_id": "921004",
          "name": "Riverside Runners",
          "sport": "Running",
          "members": 214,
          "role": "admin"
        },
        {
          "club_id": "655871",
          "name": "Saturday Gravel",
          "sport": "Cycling",
          "members": 58,
          "role": "member"
        }
      ]
    }
  • get_club_leaderboard Read a club's weekly leaderboard for this week or last week. read

    Returns the ranked members with the stats Strava shows. A single-sport club ranks by distance and a multisport club by time. The website shows the top 100 members. Strava keeps no leaderboard history beyond last week, so a weekly run is the only way to build one.

    MCP callstrava_read → get_club_leaderboard

    REST endpointGET https://cotlet.dev/api/v1/strava/clubs/{club_id}/leaderboard

    Parameters

    Parameters: get_club_leaderboard
    NameTypeDescription
    club_id string required string Club ID from list_clubs.
    week string string this or last. Defaults to last.

    Example input

    {
      "club_id": "club_8c41d2"
    }

    Example response

    {
      "club": "Riverside Runners",
      "week": "last",
      "ranked_by": "distance",
      "members": [
        {
          "rank": 1,
          "name": "Dana K.",
          "distance_km": 62.4,
          "activities": 5,
          "time": "5:31:10"
        },
        {
          "rank": 2,
          "name": "Sam R.",
          "distance_km": 55,
          "activities": 4,
          "time": "4:58:42"
        },
        {
          "rank": 3,
          "name": "Lena P.",
          "distance_km": 48.7,
          "activities": 4,
          "time": "4:41:03"
        }
      ]
    }

Your data1

Asks Strava for the account archive and cannot open the email it sends.

  • request_account_export Ask Strava to email you a download of your whole account. write

    Presses Request download under Settings, My Account, Download your account. Strava emails the link to your account address, which can take a few hours, and the agent cannot open that email. The request reaches only you and nothing needs undoing, so it does not ask first.

    MCP callstrava_write → request_account_export

    REST endpointPOST https://cotlet.dev/api/v1/strava/account-export/request

    Parameters

    No parameters.

    Example response

    {
      "requested": true,
      "delivery": "email to your Strava address, can take a few hours"
    }
Encrypted, revocable

Who can see my Strava session, and how do I revoke it?

  • What we store

    Your logged-in Strava profile, encrypted with AES-256-GCM, in Finland. Not the password.

  • What your agent gets

    The 11 Strava tools. Never the cookie.

  • What the session sees

    Your activities, including Only You ones, gear, clubs and comments.

  • What no tool touches

    Subscription, payments, password, privacy zones, deleting.

  • If Strava asks to verify

    A code or CAPTCHA is for you. You type it in, we never do.

  • How to cut access

    Disable for agents, reset the browser, or log out sessions in Strava.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). There is no SOC 2 report or third-party pentest yet.

Account risk

Is it against Strava's terms? Account safety Yes, automated access is banned.

"Automated access to or collection of data from the Services, by any means, including data mining, robots, screen scraping, scripts, or similar data-gathering tools or software such as browser extensions and crawlers, is prohibited. This prohibition applies regardless of whether you are logged into a Strava account at the time of such automated access or collection."
Strava Terms of Service (2026), section 19, checked 27 Oct 2026

Strava says it acts on violations with "a warning, a temporary account suspension, and for more serious offenses, a permanent suspension", and you can appeal. Strava also names scraping as a problem that "degraded platform performance for everyone". Cotlet works through the Strava web app for one account, and Strava can still read that as automation. We found no public case of a Strava account closed for it (checked 27 Oct 2026). Do not connect an account you cannot afford to lose.

What we do to keep it low-key

  • Your own Strava account, logged in by you
  • One Cloud Browser with its own IP and cookies
  • Comments, visibility changes and new activities wait for your OK
  • No tool deletes an activity, a comment or the account
  • Reads are paged, so no scan of other athletes

Edit many activities over days, not in one burst, and keep your agent to your own account and clubs.

Tested every 12 h

What happens when Strava changes? We repair the tool; your prompts stay the same.

between tests of the Strava reads
12 h
between tests of writes that others would see
24 h
for a call to a Strava tool paused for repair
$0

Strava is also reworking its API through June 2027 (developer program post, 1 Jun 2026). When it moves a button or renames a field, the fix happens on our side and your prompts keep working. status.cotlet.dev watches the site, console and API every 3 minutes.

3 tools ask first

Approvals, undo and mistakes Followers see nothing until you say so.

  1. 01 Finds the activity list_activities with your filter, gear still empty.
  2. 02 Reads before it writes Comments are read first so nothing is answered twice.
  3. 03 Waits for your OK A comment or new activity shows in your console first.
  4. 04 Reports the result Activity link, what changed, what was skipped.
Which Strava actions can be undone
ActionUndo
Change gear, title or descriptionCall update_activity with the old value
Set visibilitySet it back; segment achievements lost on the way to Followers or Only You stay lost
Log a manual activityDelete it by hand; the website cannot edit its distance or time
Post a commentDelete it by hand in Strava
Request an exportNothing to undo, only the email goes to you

3 of 11 tools ask first: comment_on_activity, create_manual_activity and set_activity_visibility, the ones others can see. A gear or title fix is undone in one call, and an export request reaches only you, so they run at once. Switch the wait off per tool for a scheduled run.

Strava applies a bulk privacy change to all past activities at once and cannot reverse it. Cotlet changes one activity per call.

MCP call
{
  "name": "update_activity",
  "arguments": {
    "activity_id": "14812207745",
    "gear_id": "g8812034"
  }
}
REST
curl -X PATCH https://cotlet.dev/api/v1/strava/activities/14812207745 \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"gear_id":"g8812034"}'
Tool output
{
  "activity_id": "14812207745",
  "title": "Hill repeats",
  "gear": "Pegasus 41",
  "sport": "Run",
  "saved": true
}

Scripts and cron jobs reach the same tools over REST at /api/v1/strava, with the same key and price. A gear ID that is not in your profile fails, and a failed call costs nothing. The tools table lists the REST path of each tool.

Pay per call

How much does the Strava MCP server cost?

About $16 a monthfor an athlete who fixes gear weekly and answers comments daily, 2,700 credits. Your Strava account is billed by Strava as before.

A month of Strava jobs for one athlete, in credits
JobCallsCredits
Fix gear on 6 activities, weekly8 × 4320
Club leaderboard, weekly2 × 480
Shoe and bike mileage, weekly1 × 440
Comment replies on 3 activities, daily6 × 12720
Log a missed workout1 × 440
Cloud Browser, 30 days1,500
Total2,700
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Strava features that are subscriber-only stay subscriber-only

The month is our example: 12 activities a month, a club leaderboard each week. For comparison, Strava's own MCP adds no fee but needs a paid Strava subscription, and so does its API. Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Strava MCP server on GitHub, Zapier or hosted: which to use Official and community servers read; few write.

Other Strava tools, checked 27 Oct 2026
OptionWhat it doesWhere it stops
Strava MCP connectorOfficial, remote, OAuth. Activity history, fitness trends, gear, clubs. Included in a Strava subscription.Read-only, Claude only for now, personal use of your own data, no published tool list or limits.
r-huijts/strava-mcp and similarCommunity MCP servers on the Strava API, 502 stars for the largest, last push 13 Jun 2026.You register an API app and host it. The API Policy bans operating MCP servers on the API and AI use of the data.
Zapier and n8nZapier has a Create Activity action. n8n has a Strava node with activities, comments and update.Both use the API, so the subscription, tiers and limits apply. No comment posting or leaderboard.
Bulk-edit browser extensionsChange gear or privacy across the activities you filter, in Chrome.You run them by hand. They automate the web app too, so Strava's terms apply.

If you only want to read and analyze your training in Claude, use Strava's own MCP: it is official and costs nothing beyond your subscription. Cotlet fits when you need an agent that writes, runs from another client or a script, or reads a club leaderboard, and you accept the terms risk above.

EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the Strava tools.

Strava API and MCP: questions

Can I use the Strava API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.

How do I get access?

Create a free account at https://cotlet.dev, open Strava under Integrations in the console and log in to Strava in its Cloud Browser. The trial starts with your first app, no card asked.

Does the official Strava MCP do these jobs?

Mostly not. Strava's MCP connector, launched on 1 June 2026, is read-only, works with Claude only for now and needs a paid Strava subscription; a trial does not count. It cannot edit or upload activities. Strava publishes no list of its tools or its request limits, only that a limit per minute and per day exists (Strava Help, checked 27 Oct 2026).

Is automating the Strava website allowed?

No. Strava's Terms of Service prohibit automated access to the Services by robots, screen scraping and scripts, "regardless of whether you are logged into a Strava account". Strava may warn, suspend or ban an account for a violation. We found no public case of an account banned for this (checked 27 Oct 2026). Read the Terms before you connect an account you cannot lose.

Do I need a Strava subscription for Cotlet?

No. Cotlet works in your own Strava account on its web app and does not use the Strava API or the MCP, so the subscription the API now asks of developers does not apply. Features Strava keeps for subscribers stay for subscribers.

Why not use the Strava API with my own agent?

Since 1 June 2026 the API needs a Strava subscription for developers, serves 1 athlete by default and 10 after a self-upgrade, and its policy bans using the data in any AI application and operating an MCP server on it. Strava's own MCP is the only sanctioned way to give an agent your data (Strava API Policy sections 3.5, 5.3 and 5.16, checked 27 Oct 2026).

Can the agent see my private activities?

Yes. The session is yours, so list_activities returns activities set to Only You, and the agent can change who sees an activity. Changing visibility asks for your OK by default.

Is the MCP server different from the REST API?

Only the door is different. Both expose the same 11 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with Strava?

No. Cotlet is independent and not affiliated with Strava, Inc.

Give your agent access to Strava.

Free 7-day trial with 2,000 credits, no card needed.