mcpField
S
Strava MCP Server

Strava MCP Server

ローカル
github.com/yorrickjansenヘルスケア483 週間前に更新

Strava MCP Server について

Strava MCP ServerはMCPクライアントをStrava APIに接続します。ブラウザー認証と更新トークンの保存に対応し、アクティビティやセグメントを照会できます。

主な機能

  1. 01日付で絞り込んだアクティビティ取得
  2. 02アクティビティの詳細表示
  3. 03アクティビティ内のセグメント取得
  4. 04セグメントのリーダーボード照会
  5. 05ブラウザー経由のOAuth認証

活用シーン

  1. 01最近のStravaアクティビティの確認
  2. 02特定のアクティビティとセグメントの調査
  3. 03Stravaセグメントの順位確認

MCP 対応

MCPクライアント向けに、アクティビティやセグメントの照会などStrava APIのツールを提供します。OAuth認証はブラウザーで開始し、更新トークンは次回以降のために保存されます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"strava-mcp-yorrickjansen": {
"command": "uvx",
"args": [
"strava-mcp"
]
}
}
}
起動コマンドuvx strava-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypistrava-mcp

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Strava MCP Server

CI/CD Pipeline codecov

Strava API と連携するための Model Context Protocol(MCP)サーバーです。

Strava Server MCP server

ユーザーガイド

インストール

uvx を使って Strava MCP を簡単にインストールできます。

uvx strava-mcp
Strava 認証情報の設定
  1. Strava API アプリケーションを作成する:

    • https://www.strava.com/settings/api にアクセスします。
    • 新しいアプリケーションを作成して、Client ID と Client Secret を取得します。
    • 「Authorization Callback Domain」には localhost を入力します。
  2. 認証情報を設定する: 認証情報ファイル(例:~/.ssh/strava.sh)を作成します。

    export STRAVA_CLIENT_ID=your_client_id
    export STRAVA_CLIENT_SECRET=your_client_secret
    
  3. 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 ツールを初めて使用するときは、次の処理が行われます。

  1. 認証フローが自動的に開始されます。
  2. ブラウザーで Strava の認証ページが開きます。
  3. 認証すると、ローカルページにリダイレクトされます。
  4. 今後の使用に備えて、リフレッシュトークンが自動的に保存されます。
利用可能なツール
ユーザーのアクティビティを取得

認証済みユーザーのアクティビティを取得します。

パラメーター:

  • before(任意):フィルタリングに使用するエポックタイムスタンプ
  • after(任意):フィルタリングに使用するエポックタイムスタンプ
  • page(任意):ページ番号(デフォルト:1)
  • per_page(任意):1 ページあたりの項目数(デフォルト:30)
アクティビティを取得

特定のアクティビティの詳細情報を取得します。

パラメーター:

  • activity_id:アクティビティの ID
  • include_all_efforts(任意):セグメントのエフォートを含めるかどうか(デフォルト:false)
アクティビティのセグメントを取得

特定のアクティビティからセグメントを取得します。

パラメーター:

  • activity_id:アクティビティの ID
セグメントのリーダーボードを取得

特定のセグメントのリーダーボードを取得します。

パラメーター:

  • segment_id:セグメントの ID
  • 各種オプションのフィルター(性別、年齢層など)

開発者ガイド

プロジェクトのセットアップ
  1. リポジトリをクローンします。

    git clone <repository-url>
    cd strava
    
  2. 依存関係をインストールします。

    uv install
    
  3. 環境変数を設定します。

    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

ライセンス

MIT License

謝辞

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。