Strava MCP Server
Provides tools for interacting with the Strava API to retrieve and analyze athlete activities, including running, cycling, swimming records, and athlete statistics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Strava MCP ServerShow my last 10 runs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Strava MCP Server
Strava APIとMCP(Model Context Protocol)を統合するサーバーです。
このMCPサーバーを使用することで、ClaudeなどのAIアシスタントから直接Stravaのアクティビティデータを取得・分析できます。ランニングやサイクリングの記録を会話形式で確認したり、統計情報を簡単に照会できます。
📦 対応クライアント
このMCPサーバーは以下のクライアントで使用できます:
✅ Claude Desktop - Anthropic公式デスクトップアプリ
✅ Cursor - AI統合コードエディタ
✅ Manus - AIアシスタントプラットフォーム
✅ Dify - ノーコードAIアプリケーションプラットフォーム
⚠️ ChatGPT(開発モード) - Custom GPT Actions 経由(HTTPラッパーが必要)
Related MCP server: Strava MCP Server
インストール
npmからインストール
npm install -g @keitaro_aigc/strava-mcp-serverまたはプロジェクトローカルに:
npm install @keitaro_aigc/strava-mcp-serverソースからビルド
git clone https://github.com/yourusername/strava-mcp-server.git
cd strava-mcp-server
npm install
npm run build主な機能
このMCPサーバーは以下のツールを提供します:
1. get_activities - アクティビティ一覧の取得
最近のランニング、サイクリング、水泳などのアクティビティ一覧を取得します。
パラメータ:
page(オプション): ページ番号(デフォルト: 1)per_page(オプション): 1ページあたりの件数(デフォルト: 30、最大: 200)
取得できる情報: アクティビティ名、距離、時間、平均速度、獲得標高など
2. get_activity - 特定アクティビティの詳細取得
指定したアクティビティIDの詳細情報を取得します。
パラメータ:
activity_id(必須): アクティビティのID
取得できる情報: 詳細な統計、ラップタイム、心拍数、パワーデータなど
3. get_athlete - アスリートプロフィールの取得
認証されたアスリート(自分自身)のプロフィール情報を取得します。
取得できる情報: 名前、体重、所在地、性別など
4. get_athlete_stats - 統計情報の取得
アスリートの累計統計や最近の統計を取得します。
パラメータ:
athlete_id(必須): アスリートのID
取得できる情報: 累計距離、累計時間、最近4週間の統計、今年の統計など
セットアップ
前提条件
Node.js 18以上がインストールされていること
Stravaアカウントを持っていること
Claude DesktopまたはMCP対応クライアントがインストールされていること
ステップ1: Strava APIの認証情報を取得
Strava APIを使用するには、アプリケーションを作成してAPI認証情報を取得する必要があります。
1.1 Stravaアプリケーションの作成
Strava API設定ページにアクセス
「Create App」または「My API Application」をクリック
以下の情報を入力:
Application Name: 任意の名前(例:「My MCP Server」)
Category: 適切なカテゴリを選択
Club: 空欄でOK
Website: 任意のURL(例:
http://localhost)Authorization Callback Domain:
localhostApplication Description: 任意の説明
利用規約に同意して「Create」をクリック
1.2 Client IDとClient Secretの確認
アプリケーションを作成すると、以下の情報が表示されます:
Client ID: 数字の羅列(例:123456)
Client Secret: 英数字の文字列(例:abc123def456)
これらをメモしておいてください。
1.3 Refresh Tokenの取得
以下のURLをブラウザで開いてください(
YOUR_CLIENT_IDを実際のClient IDに置き換える):
https://www.strava.com/oauth/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=http://localhost&approval_prompt=force&scope=activity:read_allStravaにログインして「Authorize」をクリック
リダイレクト後のURL(
http://localhost/?...)のアドレスバーからcodeパラメータの値をコピー例:
http://localhost/?code=abc123xyz789の場合、abc123xyz789をコピー
ターミナルで以下のコマンドを実行(各値を実際の値に置き換える):
curl -X POST https://www.strava.com/oauth/token \
-d client_id=YOUR_CLIENT_ID \
-d client_secret=YOUR_CLIENT_SECRET \
-d code=YOUR_CODE \
-d grant_type=authorization_codeレスポンスに含まれる
refresh_tokenの値をメモ:
{
"access_token": "...",
"refresh_token": "abc123...", ← この値をメモ
"expires_at": 1234567890
}ステップ2: Claude Desktopでの設定
Claude Desktopの設定ファイル(claude_desktop_config.json)に以下を追加:
macOS
Claude Desktopの設定ファイルを開く:
open ~/Library/Application\ Support/Claude/claude_desktop_config.json以下の内容を追加(既存の設定がある場合は
mcpServersセクションに追加):
{
"mcpServers": {
"strava": {
"command": "npx",
"args": ["-y", "@keitaro_aigc/strava-mcp-server"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}Claude Desktopを再起動
Claude Desktopの右下に🔨マークが表示され、「strava」が利用可能になっていることを確認
Windows
Claude Desktopの設定ファイルを開く:
notepad %APPDATA%\Claude\claude_desktop_config.jsonmacOSと同じJSON設定を追加
各値を実際の値に置き換え
Claude Desktopを再起動
🔨マークで「strava」が利用可能になっていることを確認
ステップ2-B: Cursor での設定
Cursor エディタで使用する場合:
設定ファイルの場所
macOS/Linux:
~/.cursor/mcp.jsonWindows:
%APPDATA%\Cursor\User\mcp.json
設定手順
設定ファイルを作成または編集:
# macOS/Linux
mkdir -p ~/.cursor
nano ~/.cursor/mcp.json
# Windows
mkdir %APPDATA%\Cursor\User
notepad %APPDATA%\Cursor\User\mcp.json以下の内容を追加:
{
"mcpServers": {
"strava": {
"command": "npx",
"args": ["-y", "@keitaro_aigc/strava-mcp-server"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}各値を実際の認証情報に置き換え
Cursor を再起動
Cursor の AI チャットで MCP ツールが利用可能になっていることを確認
ステップ2-C: Manus での設定
Manus で使用する場合:
設定手順
Manus の設定画面を開く
MCP サーバー設定セクションに移動
新しいサーバーを追加:
{
"name": "strava",
"command": "npx",
"args": ["-y", "@keitaro_aigc/strava-mcp-server"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}設定を保存
Manus を再起動してツールを有効化
ステップ2-D: Dify での設定
Dify プラットフォームで使用する場合:
セルフホスト版の場合
Dify の
docker-compose.ymlに環境変数を追加:
services:
api:
environment:
# 既存の環境変数...
STRAVA_CLIENT_ID: "your_client_id"
STRAVA_CLIENT_SECRET: "your_client_secret"
STRAVA_REFRESH_TOKEN: "your_refresh_token"MCP サーバーをカスタムツールとして登録:
{
"tool_name": "strava_mcp",
"command": "npx -y @keitaro_aigc/strava-mcp-server",
"type": "mcp"
}Docker コンテナを再起動:
docker-compose down
docker-compose up -dクラウド版の場合
Dify のワークスペース設定を開く
「カスタムツール」セクションに移動
新しい MCP ツールを追加し、エンドポイント情報を設定
注意: クラウド版では MCP サーバーを別途ホスティングする必要がある場合があります。
ステップ2-E: ChatGPT(開発モード)での設定
ChatGPT の開発モード(Actions/Functions)で使用する場合:
前提条件
ChatGPT Plus または Enterprise アカウント
カスタム GPT の作成権限
設定手順
ChatGPT で「GPTs」→「Create a GPT」を選択
「Configure」タブで Actions を追加
MCP サーバーを API エンドポイントとしてホスティング(例:Vercel、AWS Lambda など)
OpenAPI スキーマを定義:
openapi: 3.0.0
info:
title: Strava MCP Server
version: 1.0.0
servers:
- url: https://your-deployment-url.com
paths:
/get_activities:
post:
summary: Get athlete activities
requestBody:
content:
application/json:
schema:
type: object
properties:
page:
type: integer
per_page:
type: integer
responses:
'200':
description: Success
/get_activity:
post:
summary: Get specific activity
requestBody:
content:
application/json:
schema:
type: object
properties:
activity_id:
type: integer
required:
- activity_id
responses:
'200':
description: Success環境変数を Actions の設定で追加
注意: ChatGPT での使用には MCP サーバーの HTTP ラッパーが必要です。直接的な STDIO 接続はサポートされていません。
ステップ3: 動作確認
各クライアントで以下のように質問してみてください:
Claude Desktop / Cursor / Manus
最近のアクティビティを5件教えてDify
ワークフロー内で Strava MCP ツールを呼び出し、パラメータを指定して実行。
ChatGPT
カスタム GPT 内でアクションが利用可能になっていることを確認。
Stravaのデータが表示されれば、セットアップ完了です!🎉
トラブルシューティング
エラー: "Failed to refresh access token"
Client ID、Client Secret、Refresh Tokenが正しいか確認
Stravaアプリケーションのステータスが「Active」になっているか確認
ツールが表示されない
Claude Desktopを完全に再起動(メニューから終了して再度起動)
設定ファイルのJSON形式が正しいか確認(カンマの位置、閉じ括弧など)
"command not found" エラー
Node.js 18以上がインストールされているか確認:
node -vnpmが正しくインストールされているか確認:
npm -v
ローカル開発・ビルドからの使用
npm経由ではなく、ソースコードからビルドして使用する場合:
1. リポジトリのクローンとビルド
git clone https://github.com/groundcobra009/strava-mcp-server.git
cd strava-mcp-server
npm install
npm run build2. Claude Desktop設定(ローカルビルド版)
macOS
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["/Users/keitaro/🏀|TRAE/20251028strava-mcp/dist/index.js"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}Windows(ローカルビルド版)
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["C:\\path\\to\\strava-mcp-server\\dist\\index.js"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}注意: C:\\path\\to\\strava-mcp-server\\の部分は実際のクローンしたディレクトリパスに置き換えてください。
3. 環境変数の設定(ローカル開発用)
ローカル開発では.envファイルを使用することもできます:
cp .env.example .env
# .envファイルを編集して認証情報を設定npm公開手順(開発者向け)
このパッケージをnpmに公開するには以下の手順を実行します:
1. npmアカウントの作成とログイン
# npmアカウントがない場合は作成
npm adduser
# すでにアカウントがある場合はログイン
npm login2. package.jsonの設定を確認
name: パッケージ名(スコープ付きの場合は@username/package-name)version: バージョン番号(セマンティックバージョニング)repository: GitHubリポジトリURLauthor: 作者情報
3. ビルドとテスト
# ビルド
npm run build
# パッケージ内容を確認
npm pack --dry-run4. npm公開
# スコープ付きパッケージの場合は公開アクセスを設定
npm publish --access public
# 通常のパッケージの場合
npm publish5. バージョン更新(次回以降)
# パッチバージョンアップ(1.0.0 -> 1.0.1)
npm version patch
# マイナーバージョンアップ(1.0.0 -> 1.1.0)
npm version minor
# メジャーバージョンアップ(1.0.0 -> 2.0.0)
npm version major
# 再公開
npm publish --access public注意事項
package.jsonのnameを自分のnpmユーザー名でスコープ化してください(例:@yourusername/strava-mcp-server)repositoryのURLを実際のGitHubリポジトリURLに変更してください一度公開したバージョンは削除できません(24時間以内のみ可能)
.npmignoreでソースコードや不要なファイルを除外済みです
使用例
基本的な使い方
Claude Desktopや他のMCP対応クライアントで、以下のような自然な会話でStravaデータにアクセスできます:
例1: 最近のアクティビティを確認
あなた: 「最近のランニング記録を10件見せて」
Claude: get_activitiesツールを使用して、最近のアクティビティ10件を取得します...
1. 朝ラン - 5.2km, 26分15秒, 平均ペース 5:03/km
2. 夜ラン - 10.5km, 52分30秒, 平均ペース 5:00/km
...例2: 特定のアクティビティを詳しく分析
あなた: 「昨日のランニング(ID: 12345678)の詳細を教えて」
Claude: get_activityツールで詳細を取得します...
アクティビティ: モーニングラン
距離: 10.5km
タイム: 52分30秒
平均ペース: 5:00/km
獲得標高: 85m
平均心拍数: 152bpm
最大心拍数: 172bpm例3: 統計情報の確認
あなた: 「今月の走行距離の合計は?」
Claude: get_athlete_statsツールで統計情報を取得します...
今年の累計:
- 総距離: 245.8km
- 総時間: 20時間35分
- アクティビティ数: 28回
最近4週間:
- 総距離: 82.3km
- 総時間: 6時間52分例4: プロフィール情報の確認
あなた: 「私のStravaプロフィールを見せて」
Claude: get_athleteツールでプロフィール情報を取得します...
名前: Taro Yamada
所在地: Tokyo, Japan
体重: 65kg
登録日: 2020年1月15日応用的な使い方
データ分析
あなた: 「先月と今月のランニング距離を比較して、改善点を教えて」
Claude: 統計データを取得して分析します...トレーニング計画
あなた: 「最近のペースの傾向から、来週のトレーニングメニューを提案して」
Claude: アクティビティデータを分析してトレーニングプランを提案します...モチベーション管理
あなた: 「今年の目標1000kmに対して、現在の進捗率と達成見込みは?」
Claude: 累計統計から進捗を計算します...開発者向け情報
ローカル開発
開発モード(ウォッチモード)でコードを編集する場合:
# ウォッチモードで自動ビルド
npm run dev
# 別ターミナルでテスト実行
node dist/index.jsプロジェクト構造
.
├── src/
│ └── index.ts # メインのMCPサーバー実装
├── dist/ # TypeScriptビルド出力(自動生成)
├── package.json # npmパッケージ設定
├── tsconfig.json # TypeScript設定
├── .env.example # 環境変数テンプレート
├── .gitignore # Git除外ファイル
├── .npmignore # npm公開除外ファイル
├── LICENSE # MITライセンス
└── README.md # ドキュメント使用技術
TypeScript 5.3+: 型安全なコード
MCP SDK 0.5+: Model Context Protocolの公式 SDK
Axios: HTTPリクエストライブラリ
dotenv: 環境変数管理
Node.js 18+: 実行環境
貪献
プルリクエストやイシューの報告を歓迎します!
このリポジトリをFork
新しいブランチを作成 (
git checkout -b feature/amazing-feature)変更をコミット (
git commit -m 'Add amazing feature')ブランチをPush (
git push origin feature/amazing-feature)Pull Requestを作成
リンク
npmパッケージ: https://www.npmjs.com/package/@keitaro_aigc/strava-mcp-server
GitHubリポジトリ: https://github.com/groundcobra009/strava-mcp-server
Strava APIドキュメント: https://developers.strava.com/
MCP公式ドキュメント: https://modelcontextprotocol.io/
ライセンス
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/groundcobra009/strava-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server