mcpField
F
Fantasy Premier League MCP Server

Fantasy Premier League MCP Server

ローカル
github.com/rishijatiaゲーム・エンタメ8012 週間前に更新

Fantasy Premier League MCP Server について

Fantasy Premier League MCP Server は、Fantasy Premier League のデータと分析ツールを MCP サーバーとして提供するプロジェクトです。Claude Desktop、Cursor、Windsurf などの MCP 互換クライアントから利用でき、選手の成績や日程、自分のチームを確認したいFPLプレイヤーを対象としています。

主な機能

  1. 01名前やチームによる選手検索と統計表示
  2. 02複数の指標を使った選手比較
  3. 03日程難易度とブランク・ダブルゲームウィーク表示
  4. 04ライブのゲームウィーク得点と公式ドリームチーム
  5. 05キャプテン候補の提案と移籍履歴の参照

活用シーン

  1. 01会話の中で二人の選手の直近の調子を比較する
  2. 02プレミアリーグのチームの今後の日程を確認する
  3. 03現在のゲームウィーク状況を確認し、好調な選手を探す

MCP 対応

本プロジェクトは FPL のリソース、ツール、プロンプトテンプレートを MCP クライアントに公開する MCP サーバーです。一部のツールは認証を必要とし、ユーザー自身のチームやリーグ情報を読み取ります。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

Fantasy Premier League MCP サーバー

PyPI version Package Check PyPI - Python Version License: MIT Downloads

Trust Score README の画像

Fantasy Premier League(FPL)のデータとツールへのアクセスを提供するModel Context Protocol(MCP)サーバーです。このサーバーを使うと、Claude for Desktopやその他のMCP互換クライアントからFPLのデータを操作できます。

Fantasy Premier League MCP サーバーの動作デモ

Fantasy Premier League MCP Demo

対応プラットフォーム

  • Claude Desktop
  • Cursor
  • Windsurf
  • その他のMCP対応デスクトップLLM

モバイルには現在対応していません。

機能

  • 豊富な選手データ:FPL APIから包括的な選手統計にアクセスできます
  • チーム情報:Premier Leagueのチームに関する詳細情報を取得できます
  • ゲームウィークデータ:現在および過去のゲームウィーク情報を確認できます
  • 選手検索:名前またはチームで選手を検索できます
  • 選手比較:任意の2人の選手の詳細な統計を比較できます

要件

  • Python 3.10以降
  • Claude Desktop(AI連携用)

インストール

オプション1:PyPIからインストール(推奨)
pip install fpl-mcp
オプション1b:開発用依存関係とともにインストール
pip install "fpl-mcp[dev]"
オプション2:GitHubからインストール
pip install git+https://github.com/rishijatia/fantasy-pl-mcp.git
オプション3:クローンしてローカルにインストール
git clone https://github.com/rishijatia/fantasy-pl-mcp.git
cd fantasy-pl-mcp
pip install -e .

サーバーの実行

インストール後、サーバーを実行する方法はいくつかあります。

1. CLIコマンドを使用する
fpl-mcp
2. Pythonモジュールを使用する
python -m fpl_mcp
3. Claude Desktopで使用する

claude_desktop_config.jsonファイルを編集して、インストール済みのパッケージを使うようClaude Desktopを設定します。

方法1:Pythonモジュールを直接使用する(最も確実)

{
  "mcpServers": {
    "fantasy-pl": {
      "command": "python",
      "args": ["-m", "fpl_mcp"]
    }
  }
}

方法2:インストール済みのコマンドをフルパスで使用する(pipでインストールした場合)

{
  "mcpServers": {
    "fantasy-pl": {
      "command": "/full/path/to/your/venv/bin/fpl-mcp"
    }
  }
}

/full/path/to/your/venv/bin/fpl-mcpを実際の実行可能ファイルのパスに置き換えてください。仮想環境を有効にした後、ターミナルでwhich fpl-mcpを実行すると、このパスを確認できます。

注記: "command": "fpl-mcp"だけを指定すると、Claude Desktopが仮想環境のPATHにアクセスできず、spawn fpl-mcp ENOENTエラーが発生する場合があります。フルパスを指定するか、Pythonモジュールを使用すると、この問題を回避できます。

使い方

Claude for Desktopでの使用
  1. Claude for Desktopを起動します
  2. ハンマーアイコンからFPLツールを利用できることを確認します
  3. クエリの例:
    • 「直近5ゲームウィークでMohamed SalahとErling Haalandを比較して」
    • 「Arsenalのミッドフィールダーをすべて探して」
    • 「現在のゲームウィークの状況は?」
    • 「ポイント順にフォワード上位5人を表示して」
Fantasy-PL MCPの使用手順
基本コマンド:
  • 選手の比較:「[Player1]と[Player2]を比較して」
  • 選手の検索:「[Team]の選手を探して」または「[Player Name]を検索して」
  • 対戦難易度:「[Team]の今後の対戦予定を表示して」
  • キャプテンのアドバイス:「[Player1]と[Player2]なら、どちらをキャプテンにすべき?」
高度な機能:
  • 統計分析:「[Player1]と[Player2]の基礎スタッツを比較して」
  • 好調チェック:「今好調な選手を表示して」
  • 差別化候補:「保有率10%未満の差別化候補を提案して」
  • チーム最適化:「自分のチームを評価して、移籍候補を提案して」
ヒント:
  • 正確な結果を得るには、選手名を具体的に指定してください
  • 検索時にはポジション(FWD、MID、DEF、GK)を含めてください
  • 最適なキャプテン候補のアドバイスを得るには、調子、対戦日程、基礎統計について尋ねてください
  • 特定の指標(xG、ボックス内シュート数など)の比較を依頼してください。
開発用 MCP Inspector

開発とテストには、次を使用してください。

# If you have mcp[cli] installed
mcp dev -m fpl_mcp

# Or use npx
npx @modelcontextprotocol/inspector python -m fpl_mcp

利用可能なリソース

  • fpl://static/players - 包括的な統計を含む全選手データ
  • fpl://static/players/{name} - 名前検索による選手データ
  • fpl://static/teams - プレミアリーグの全チーム
  • fpl://static/teams/{name} - 名前検索によるチームデータ
  • fpl://gameweeks/current - 現在のゲームウィークのデータ
  • fpl://gameweeks/all - 全ゲームウィークのデータ
  • fpl://fixtures - 今シーズンの全試合日程
  • fpl://fixtures/gameweek/{gameweek_id} - 特定のゲームウィークの試合日程
  • fpl://fixtures/team/{team_name} - 特定のチームの試合日程
  • fpl://players/{player_name}/fixtures - 特定の選手の今後の試合日程
  • fpl://gameweeks/blank - 今後のブランクゲームウィークに関する情報
  • fpl://gameweeks/double - 今後のダブルゲームウィークに関する情報

利用可能なツール

選手
  • search_fpl_players - 名前で選手を検索し、任意でポジションやチームによる絞り込みができます
  • get_player_information - 選手の詳細情報とゲームウィークの履歴を取得します
  • analyze_players - 複数の条件に基づいてFPL選手を絞り込み、分析します
  • compare_players - 複数の選手をさまざまな指標で比較します
  • get_price_changes - 現在のゲームウィークで価格が上昇または下落した選手を取得します
試合日程とゲームウィーク
  • get_gameweek_status - 現在、前回、次回のゲームウィークに関する正確な情報を取得します
  • analyze_player_fixtures - 難易度評価を含め、選手の今後の試合日程を分析します
  • analyze_fixtures - 選手、チーム、ポジションの今後の試合日程を分析します
  • get_blank_gameweeks - 今後のブランクゲームウィークに関する情報を取得します
  • get_double_gameweeks - 今後のダブルゲームウィークに関する情報を取得します
ライブのゲームウィーク
  • get_gameweek_live_scores - 試合中の選手の獲得ポイントと統計をリアルタイムで取得します
  • get_dream_team - ゲームウィークで最も高得点を獲得した公式の XI
チームとアドバイス
  • suggest_captain - チームをキャプテンスコア順に並べ、各要素に基づく理由を提示します
  • check_fpl_authentication - FPL 認証が正しく機能しているか確認します
  • update_fpl_credentials - チャット内から保存済みの FPL 認証情報を更新します
  • get_my_team - 認証済みのチームを表示します(認証が必要です)
  • get_my_current_team - 現在のゲームウィークのチームを表示します(認証が必要です)
  • get_team - 特定の ID のチームを表示します(認証が必要です)
  • get_manager - 特定のチーム ID の監督詳細を取得します(認証が必要です)
  • get_manager_info - 監督の詳細を取得します(認証が必要です)
  • get_manager_transfer_history - 監督の全移籍履歴を取得します
リーグ
  • get_league_standings - クラシックリーグの順位表を取得します(認証が必要です)
  • get_league_analytics - リーグの監督、保有率の傾向、成績を分析します

プロンプトテンプレート

  • player_analysis_prompt - FPL選手を詳しく分析するためのプロンプトを作成します
  • transfer_advice_prompt - 予算とポジションに基づいて、選手の移籍に関するアドバイスを取得します
  • team_rating_prompt - FPLチームを評価・分析するためのプロンプトを作成します
  • differential_players_prompt - 保有率の低い差別化選手を見つけるためのプロンプトを作成します
  • chip_strategy_prompt - チップ戦略に関するアドバイス用のプロンプトを作成します

開発

機能の追加

新機能を追加するには、次の手順に従います。

  1. fpl_mcp/fpl/resources/ 内の適切なファイルにリソースハンドラーを追加します
  2. fpl_mcp/fpl/tools/ 内の適切なファイルにツールハンドラーを追加します
  3. 新しいリソースとツールを登録するため、__main__.py ファイルを更新します
  4. Claude for Desktop にデプロイする前に、MCP Inspector を使ってテストします

認証

FPL はログインを PingOne(Ping Identity)OIDC に移行したため、認証にはメールアドレスとパスワードではなく、OIDC リフレッシュトークンを使用するようになりました。リフレッシュトークンは自動的に有効期間の短いアクセストークンと交換され、リクエストは X-API-Authorization: Bearer ヘッダーを付けて送信されます。

チームやプライベートリーグへのアクセスなど、認証が必要な機能を使うには、リフレッシュトークンを設定してください。

# Run the credential setup tool
fpl-mcp-config setup

この対話型ツールでは、次の操作を行います。

  1. ブラウザーから OIDC リフレッシュトークンをコピーする方法を表示します
  2. リフレッシュトークンとチーム ID の入力を求めます
  3. それらを暗号化して ~/.fpl-mcp/credentials.enc に保存します

リフレッシュトークンの取得方法:

  1. ブラウザーで https://fantasy.premierleague.com にログインします。
  2. DevTools コンソール(F12 → Console)を開き、次を実行します。
    copy(JSON.parse(localStorage.getItem(Object.keys(localStorage).find(k=>k.startsWith('oidc.user:')))).refresh_token)
    
    (Chrome が拒否する場合は、先にコンソールに allow pasting と入力してください。)リフレッシュ トークンがクリップボードにコピーされます。入力を求められたら貼り付けてください。
  3. または、DevTools → Application → Local storage → https://fantasy.premierleague.com を開き、oidc.user: で始まるキーの JSON 値全体をコピーして、 代わりに貼り付けます。セットアップ時に refresh_token フィールドが 自動的に抽出されます。

セットアップの直後に fpl-mcp-config test を実行してください。最初のトークン交換で、ブラウザーのセッションがトークンを 置き換える前にトークンが取得され、ローテーションされるため、ブラウザー内のコピーは無効になります。これは想定どおりの動作で、ブラウザーのセッションは自動的に復旧します。

次のコマンドで認証をテストできます。

fpl-mcp-config test

または、認証を手動で設定することもできます。

  1. ~/.fpl-mcp/.env ファイルを作成し、次を記述します。

    FPL_REFRESH_TOKEN=your_refresh_token
    FPL_TEAM_ID=your_team_id
    
  2. または、~/.fpl-mcp/config.json を作成します。

    {
      "refresh_token": "your_refresh_token",
      "team_id": "your_team_id"
    }
    
  3. または、環境変数を設定します。

    export FPL_REFRESH_TOKEN=your_refresh_token
    export FPL_TEAM_ID=your_team_id
    

注:リフレッシュトークンは FPL によってローテーションまたは取り消される場合があります。認証に失敗するようになった場合は、新しくコピーしたトークンを使って fpl-mcp-config setup を再実行してください。

詳細:OIDC エンドポイントの上書き

FPL が OIDC クライアントまたはエンドポイントを変更した場合、環境変数を使って既定値を上書きできます(すべて任意です)。

変数既定値
FPL_OIDC_CLIENT_ID1f243d70-a140-4035-8c41-341f5af5aa12
FPL_OIDC_AUTHORITYhttps://account.premierleague.com/as
FPL_TOKEN_URL<FPL_OIDC_AUTHORITY>/token

制限事項

  • FPL API は公式に文書化されておらず、予告なく変更される場合があります
  • 現在は読み取り操作のみサポートしています

トラブルシューティング

よくある問題
1. Claude Desktop で「spawn fpl-mcp ENOENT」エラーが発生する

これは、Claude Desktop が PATH 内に fpl-mcp 実行ファイルを見つけられないために発生します。

解決方法: 次のいずれかの方法を使用してください。

  • 設定ファイルで実行ファイルの絶対パスを使用する

    {
      "mcpServers": {
        "fantasy-pl": {
          "command": "/full/path/to/your/venv/bin/fpl-mcp"
        }
      }
    }
    
  • Python を使ってモジュールを直接実行する(推奨)

    {
      "mcpServers": {
        "fantasy-pl": {
          "command": "python",
          "args": ["-m", "fpl_mcp"]
        }
      }
    }
    
2. サーバーがすぐに切断される

サーバーが起動してすぐに切断される場合:

  • ~/Library/Logs/Claude/mcp*.log(macOS)または %APPDATA%\Claude\logs\mcp*.log(Windows)のログを確認します
  • 依存関係がすべてインストールされていることを確認します
  • python -m fpl_mcp を使ってサーバーを手動で実行し、エラーがないか確認します
3. Claude Desktop にサーバーが表示されない

ハンマーアイコンが表示されない場合:

  • Claude Desktop を完全に再起動します
  • claude_desktop_config.json の JSON 構文が正しいことを確認します
  • Python または実行ファイルへのパスが相対パスではなく絶対パスであることを確認します

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。

貢献

貢献を歓迎します!お気軽に Pull Request を送信してください。

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します(git checkout -b feature/amazing-feature)
  3. 変更をコミットします(git commit -m 'Add some amazing feature')
  4. ブランチにプッシュします(git push origin feature/amazing-feature)
  5. Pull Request を作成します

詳細については、CONTRIBUTING.md ファイルをご覧ください。

謝辞

引用

このパッケージを研究やプロジェクトで使用する場合は、引用をご検討ください。

@software{fpl_mcp,
  author = {Jatia, Rishi and Fantasy PL MCP Contributors},
  title = {Fantasy Premier League MCP Server},
  url = {https://github.com/rishijatia/fantasy-pl-mcp},
  version = {0.1.0},
  year = {2025},
}

コメント

MCP は初めてですか?

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

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