mcpField
M
Model Context Protocol (MCP) Server + Strava OAuth

Model Context Protocol (MCP) Server + Strava OAuth

ローカル
github.com/kw510開発ツール2680 週間前に更新

Model Context Protocol (MCP) Server + Strava OAuth について

Cloudflare Workers 上で動作する MCP サーバーで、Strava OAuth によるサインイン機能を内蔵しています。利用者は Strava アカウントでログインしてからツールにアクセスします。MCP クライアント向けの OAuth サーバーと Strava 向けの OAuth クライアントの両方の役割を担い、開発者向けの参照実装として利用できます。

主な機能

  1. 01Strava OAuth サインインを内蔵
  2. 02OAuth 2.1 サーバーとしてのトークン発行と検証
  3. 03workers-oauth-provider ライブラリを利用
  4. 04Cloudflare KV によるトークン保存
  5. 05SSE エンドポイントによるリモート MCP 接続

活用シーン

  1. 01MCP クライアントへの Strava アカウントログイン提供
  2. 02OAuth プロバイダーをリモート MCP サーバーに接続する方法の学習
  3. 03認証付き MCP サーバーの Cloudflare Workers へのデプロイ

MCP 対応

本プロジェクトは リモート MCP サーバーであり、Claude や Cursor などの MCP クライアントに対して SSE エンドポイント経由でツールを公開します。接続前に Strava での認可が必要です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"strava-mcp-kw510": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

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

パッケージ
npm@modelcontextprotocol/inspector

ツール

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

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

詳細

Model Context Protocol (MCP) サーバー + Strava OAuth

これは、リモート MCP 接続をサポートし、Strava OAuth を組み込んだ Model Context Protocol (MCP) サーバーです。ユーザーは Strava アカウントでサインインして、あなたの MCP サーバーに接続できます。

概要

MCP サーバー(Cloudflare Workers を利用)は、次の 2 つの役割を担います:

  • MCP クライアントに対する OAuth サーバーとして機能します
  • Strava の OAuth サービスに対する OAuth クライアントとして機能します

このプロジェクトは、workers-oauth-provider ライブラリを使用して、Cloudflare にデプロイされた MCP サーバーに OAuth プロバイダーを統合するためのリファレンス例です。

前提条件

  • Strava アカウント
  • Cloudflare アカウント
  • Node.js と npm がインストールされていること
  • Wrangler CLI がインストールされていること(npm install -g wrangler)

クイックスタート

  1. リポジトリをクローンします:

    git clone https://github.com/kw510/strava-mcp.git
    cd strava-mcp
    npm install
    
  2. Strava API の認証情報を設定します(Strava API 認証情報の設定を参照)

  3. Cloudflare KV ネームスペースを設定します:

    wrangler kv:namespace create "OAUTH_KV"
    

    生成された KV ID で wrangler.toml ファイルを更新します。

  4. Cloudflare にデプロイします:

    wrangler deploy
    

Strava API 認証情報の設定

本番環境の場合
  1. Strava の API 設定にアクセスし、新しいアプリケーションを作成します

  2. アプリケーションを設定します:

    • Application Name: アプリケーションの名前を選択します
    • Category: 適切なカテゴリを選択します
    • Website: あなたのウェブサイトの URL
    • Application Description: アプリケーションの簡単な説明
    • Authorization Callback Domain: mcp-strava-oauth.<your-subdomain>.workers.dev
    • Authorization Callback URL: https://mcp-strava-oauth.<your-subdomain>.workers.dev/callback
  3. 本番環境の環境変数を設定します:

    wrangler secret put STRAVA_CLIENT_ID
    wrangler secret put STRAVA_CLIENT_SECRET
    
開発環境の場合
  1. 開発用に別の Strava API アプリケーションを作成します

  2. 開発用アプリケーションを設定します:

    • Authorization Callback Domain: localhost
    • Authorization Callback URL: http://localhost:8788/callback
  3. プロジェクトのルートに .dev.vars ファイルを作成します:

    STRAVA_CLIENT_ID=your_development_strava_client_id
    STRAVA_CLIENT_SECRET=your_development_strava_client_secret
    

MCP サーバーのテスト

Inspector の使用
  1. Inspector ツールをインストールします:

    npx @modelcontextprotocol/inspector@latest
    
  2. サーバーに接続します:

    • 本番環境の場合: https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse
    • 開発環境の場合: http://localhost:8788/sse
Claude Desktop の使用
  1. Claude Desktop を開き、Settings -> Developer -> Edit Config に移動します
  2. MCP サーバーの設定を追加します:
    {
      "mcpServers": {
        "strava": {
          "command": "npx",
          "args": [
            "mcp-remote",
            "https://mcp-strava-oauth.<your-subdomain>.workers.dev/sse"
          ]
        }
      }
    }
    
  3. Claude Desktop を再起動し、OAuth フローを完了します

開発

ローカル開発
  1. 開発サーバーを起動します:

    wrangler dev
    
  2. サーバーは http://localhost:8788 で利用可能になります

API レート制限

Strava API には以下のレート制限があります:

  • 15 分ごとに 200 リクエスト
  • 1 日あたり 2,000 リクエスト

仕組み

OAuth プロバイダー

OAuth プロバイダーライブラリは以下を処理します:

  • OAuth 2.1 サーバーの実装
  • トークンの発行と検証
  • KV への安全なトークン保存
  • Strava OAuth との統合
Durable MCP

以下を提供します:

  • 永続的な状態管理
  • 安全な認証コンテキストの保存
  • this.props を介したユーザー情報へのアクセス
  • 条件付きのツールの可用性
MCP Remote

以下を可能にします:

  • クライアントとサーバー間の通信
  • ツールの定義と管理
  • リクエスト/レスポンスのシリアライズ
  • SSE 接続の維持

トラブルシューティング

  • Claude Desktop でエラーメッセージが表示される場合は、🔨 アイコンにカーソルを合わせて接続を確認してください
  • Cursor との統合では、「Command」タイプを使用し、command と args を 1 つの文字列にまとめてください
  • コールバック URL が、Strava アプリケーションで設定した内容と完全に一致していることを確認してください

コメント

MCP は初めてですか?

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

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