Strava MCP Server について
Strava MCP Serverは、言語モデルからStravaのアクティビティ、アスリート情報、ルート、実績、ソーシャルデータを照会できるようにします。一部のアクティビティとアスリート情報にはHTTP APIも用意されています。
主な機能
- 01アクティビティの記録と分析
- 02アスリート統計と記録
- 03ルートマップと標高データ
- 04実績と年間目標
- 05Kudos、コメント、クラブ活動
活用シーン
- 01最近のトレーニングと自己記録の確認
- 02トレーニング量とパフォーマンスの比較
- 03ルート、区間、標高の確認
- 04Kudosとアクティビティコメントの確認
MCP 対応
MCPクライアントにStravaのアクティビティ、アスリート、ルート、実績、ソーシャルデータを提供します。HTTPサーバーとしても動作し、最近のアクティビティ、詳細・マップ、アスリート統計のエンドポイントを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Strava MCP サーバー
Strava API へのアクセスを提供する Model Context Protocol(MCP)サーバーです。このサーバーにより、言語モデルはアクティビティやアスリート情報などの Strava データを操作できます。
機能
- 🏃♂️ アクティビティの追跡と分析
- 📊 アスリートの統計情報
- 🗺️ ルートの可視化
- 🏆 実績の追跡
- 🤝 ソーシャル機能(Kudos、コメント)
前提条件
- Python 3.12+
- Strava API の認証情報
- pip(Python パッケージインストーラー)
インストール
- リポジトリをクローンします:
git clone https://github.com/yourusername/strava_mcp.git
cd strava_mcp
- 仮想環境を作成します:
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
- 依存関係をインストールします:
pip install -r requirements.txt
設定
- Strava API の認証情報を含む
config/.envファイルを作成します:
STRAVA_CLIENT_ID=your_client_id
STRAVA_CLIENT_SECRET=your_client_secret
STRAVA_REFRESH_TOKEN=your_refresh_token
- Strava API の認証情報を取得するには:
- https://www.strava.com/settings/api にアクセスします
- 新しいアプリケーションを作成します
- Client ID と Client Secret を控えます
- OAuth 2.0 フローに従ってリフレッシュトークンを取得します
使用方法
Claude で使用する
接続すると、Claude を通じてさまざまな方法で Strava データを操作できます:
アクティビティに関する質問
- 「最近のアクティビティを表示して」
- 「最後のランニングの詳細を教えて」
- 「今月最長のライドはどれ?」
- 「自己記録を達成したアクティビティを表示して」
- 「最新のアクティビティのルートマップを表示して」
パフォーマンス分析
- 「今年の平均ランニングペースは?」
- 「先月と今月のサイクリングのパフォーマンスを比較して」
- 「昨日のワークアウトの心拍数ゾーンを表示して」
- 「全アクティビティの累積標高は?」
- 「週ごとのランニング距離を計算して」
ソーシャル機能
- 「最新のアクティビティに Kudos を送った人は誰?」
- 「マラソンのランニングへのコメントを表示して」
- 「クラブのアクティビティをすべて一覧表示して」
- 「友人と一緒に行ったアクティビティを探して」
実績の追跡
- 「セグメントの実績をすべて一覧表示して」
- 「近隣のセグメントでの自己記録を表示して」
- 「今週獲得した実績は?」
- 「年間目標の進捗状況を表示して」
Claude で利用できるデータ
-
アクティビティの詳細:
- 距離、時間、ペース
- ルートマップと標高プロファイル
- 心拍数、パワー、ケイデンスのデータ
- スプリットとラップの情報
- アクティビティ中の天候
-
アスリートの統計情報:
- 年初来および全期間の合計
- 自己記録と実績
- トレーニング負荷とフィットネスの傾向
- 装備の使用状況とメンテナンス
-
ソーシャルデータ:
- Kudos とコメント
- クラブのアクティビティとリーダーボード
- 友人のアクティビティとチャレンジ
- セグメントの記録とランキング
-
ルート情報:
- 標高データ付きの詳細なマップ
- セグメント分析
- 人気のルートとセグメント
- ルートの計画と分析
MCP サーバーとして
Claude Desktop の設定を更新します:
{
"mcpServers": {
"Strava": {
"command": "python",
"args": ["src/strava_server.py"],
"cwd": "/path/to/strava_mcp",
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
HTTP サーバーとして
- サーバーを起動します:
./run_server.sh
http://localhost:8000で API にアクセスします
利用可能なエンドポイント:
- GET
/activities/recent- 最近のアクティビティを一覧表示します - GET
/activities/{id}- アクティビティの詳細を取得します - GET
/activities/{id}/map- アクティビティのマップを可視化して取得します - GET
/athlete/stats- アスリートの統計情報を取得します
開発
プロジェクト構成
strava_mcp/
├── src/
│ ├── strava_server.py # MCP server implementation
│ ├── strava_http_server.py # HTTP API server
│ ├── map_utils.py # Map visualization utilities
│ └── templates.py # HTML templates
├── config/
│ └── .env # Environment variables (not in git)
├── requirements.txt # Python dependencies
└── run_server.sh # Server startup script
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更をコミットします
- ブランチにプッシュします
- Pull Request を作成します
セキュリティ
.envファイルや API 認証情報をコミットしないでください.gitignoreファイルは、機密データがコミットされないように設定されています- 機密情報を含む設定には、すべて環境変数を使用してください
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
謝辞
- Strava API ドキュメント
- Model Context Protocol(MCP)仕様
- コントリビューターとメンテナー
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。