Strava MCP Server について
Strava MCP ServerはMCPクライアントをStrava APIに接続します。ブラウザー認証と更新トークンの保存に対応し、アクティビティやセグメントを照会できます。
主な機能
- 01日付で絞り込んだアクティビティ取得
- 02アクティビティの詳細表示
- 03アクティビティ内のセグメント取得
- 04セグメントのリーダーボード照会
- 05ブラウザー経由のOAuth認証
活用シーン
- 01最近のStravaアクティビティの確認
- 02特定のアクティビティとセグメントの調査
- 03Stravaセグメントの順位確認
MCP 対応
MCPクライアント向けに、アクティビティやセグメントの照会などStrava APIのツールを提供します。OAuth認証はブラウザーで開始し、更新トークンは次回以降のために保存されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Strava MCP Server
Strava API と連携するための Model Context Protocol(MCP)サーバーです。
ユーザーガイド
インストール
uvx を使って Strava MCP を簡単にインストールできます。
uvx strava-mcp
Strava 認証情報の設定
-
Strava API アプリケーションを作成する:
- https://www.strava.com/settings/api にアクセスします。
- 新しいアプリケーションを作成して、Client ID と Client Secret を取得します。
- 「Authorization Callback Domain」には
localhostを入力します。
-
認証情報を設定する: 認証情報ファイル(例:
~/.ssh/strava.sh)を作成します。export STRAVA_CLIENT_ID=your_client_id export STRAVA_CLIENT_SECRET=your_client_secret -
Claude Desktop を設定する: 次の内容を Claude の設定(
/Users/<username>/Library/Application Support/Claude/claude_desktop_config.json)に追加します。"strava": { "command": "bash", "args": [ "-c", "source ~/.ssh/strava.sh && uvx strava-mcp" ] }
認証
Strava MCP ツールを初めて使用するときは、次の処理が行われます。
- 認証フローが自動的に開始されます。
- ブラウザーで Strava の認証ページが開きます。
- 認証すると、ローカルページにリダイレクトされます。
- 今後の使用に備えて、リフレッシュトークンが自動的に保存されます。
利用可能なツール
ユーザーのアクティビティを取得
認証済みユーザーのアクティビティを取得します。
パラメーター:
before(任意):フィルタリングに使用するエポックタイムスタンプafter(任意):フィルタリングに使用するエポックタイムスタンプpage(任意):ページ番号(デフォルト:1)per_page(任意):1 ページあたりの項目数(デフォルト:30)
アクティビティを取得
特定のアクティビティの詳細情報を取得します。
パラメーター:
activity_id:アクティビティの IDinclude_all_efforts(任意):セグメントのエフォートを含めるかどうか(デフォルト:false)
アクティビティのセグメントを取得
特定のアクティビティからセグメントを取得します。
パラメーター:
activity_id:アクティビティの ID
セグメントのリーダーボードを取得
特定のセグメントのリーダーボードを取得します。
パラメーター:
segment_id:セグメントの ID- 各種オプションのフィルター(性別、年齢層など)
開発者ガイド
プロジェクトのセットアップ
-
リポジトリをクローンします。
git clone <repository-url> cd strava -
依存関係をインストールします。
uv install -
環境変数を設定します。
export STRAVA_CLIENT_ID=your_client_id export STRAVA_CLIENT_SECRET=your_client_secretまたは、これらの変数を含む
.envファイルを作成します。
開発モードでの実行
MCP CLI を使ってサーバーを実行します。
mcp dev strava_mcp/main.py
手動認証
次のコマンドを実行すると、リフレッシュトークンを手動で取得できます。
python get_token.py
プロジェクト構成
strava_mcp/:メインのパッケージディレクトリ__init__.py:パッケージの初期化config.py:pydantic-settings を使用した設定models.py:Strava API エンティティ用の Pydantic モデルapi.py:Strava 用の低レベル API クライアントauth.py:Strava OAuth 認証の実装oauth_server.py:スタンドアロン OAuth サーバーの実装service.py:ビジネスロジックのサービスレイヤーserver.py:MCP サーバーの実装
tests/:単体テストstrava_mcp/main.py:サーバーを実行するメインエントリーポイントget_token.py:リフレッシュトークンを手動で取得するユーティリティスクリプト
テストの実行
pytest
PyPI への公開
パッケージのビルド
# Build both sdist and wheel
uv build
PyPI への公開
# Publish to Test PyPI first
uv publish --index testpypi
# Publish to PyPI
uv publish
ライセンス
謝辞
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。