Fantasy Premier League MCP Server について
Fantasy Premier League MCP Server は、Fantasy Premier League のデータと分析ツールを MCP サーバーとして提供するプロジェクトです。Claude Desktop、Cursor、Windsurf などの MCP 互換クライアントから利用でき、選手の成績や日程、自分のチームを確認したいFPLプレイヤーを対象としています。
主な機能
- 01名前やチームによる選手検索と統計表示
- 02複数の指標を使った選手比較
- 03日程難易度とブランク・ダブルゲームウィーク表示
- 04ライブのゲームウィーク得点と公式ドリームチーム
- 05キャプテン候補の提案と移籍履歴の参照
活用シーン
- 01会話の中で二人の選手の直近の調子を比較する
- 02プレミアリーグのチームの今後の日程を確認する
- 03現在のゲームウィーク状況を確認し、好調な選手を探す
MCP 対応
本プロジェクトは FPL のリソース、ツール、プロンプトテンプレートを MCP クライアントに公開する MCP サーバーです。一部のツールは認証を必要とし、ユーザー自身のチームやリーグ情報を読み取ります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Fantasy Premier League MCP サーバー
Fantasy Premier League(FPL)のデータとツールへのアクセスを提供するModel Context Protocol(MCP)サーバーです。このサーバーを使うと、Claude for Desktopやその他のMCP互換クライアントからFPLのデータを操作できます。
Fantasy Premier League MCP サーバーの動作デモ
対応プラットフォーム
- 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での使用
- Claude for Desktopを起動します
- ハンマーアイコンからFPLツールを利用できることを確認します
- クエリの例:
- 「直近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- チップ戦略に関するアドバイス用のプロンプトを作成します
開発
機能の追加
新機能を追加するには、次の手順に従います。
fpl_mcp/fpl/resources/内の適切なファイルにリソースハンドラーを追加しますfpl_mcp/fpl/tools/内の適切なファイルにツールハンドラーを追加します- 新しいリソースとツールを登録するため、
__main__.pyファイルを更新します - Claude for Desktop にデプロイする前に、MCP Inspector を使ってテストします
認証
FPL はログインを PingOne(Ping Identity)OIDC に移行したため、認証にはメールアドレスとパスワードではなく、OIDC
リフレッシュトークンを使用するようになりました。リフレッシュトークンは自動的に有効期間の短いアクセストークンと交換され、リクエストは
X-API-Authorization: Bearer ヘッダーを付けて送信されます。
チームやプライベートリーグへのアクセスなど、認証が必要な機能を使うには、リフレッシュトークンを設定してください。
# Run the credential setup tool
fpl-mcp-config setup
この対話型ツールでは、次の操作を行います。
- ブラウザーから OIDC リフレッシュトークンをコピーする方法を表示します
- リフレッシュトークンとチーム ID の入力を求めます
- それらを暗号化して
~/.fpl-mcp/credentials.encに保存します
リフレッシュトークンの取得方法:
- ブラウザーで https://fantasy.premierleague.com にログインします。
- DevTools コンソール(F12 → Console)を開き、次を実行します。
(Chrome が拒否する場合は、先にコンソールにcopy(JSON.parse(localStorage.getItem(Object.keys(localStorage).find(k=>k.startsWith('oidc.user:')))).refresh_token)allow pastingと入力してください。)リフレッシュ トークンがクリップボードにコピーされます。入力を求められたら貼り付けてください。 - または、DevTools → Application → Local storage →
https://fantasy.premierleague.comを開き、oidc.user:で始まるキーの JSON 値全体をコピーして、 代わりに貼り付けます。セットアップ時にrefresh_tokenフィールドが 自動的に抽出されます。
セットアップの直後に fpl-mcp-config test を実行してください。最初のトークン交換で、ブラウザーのセッションがトークンを
置き換える前にトークンが取得され、ローテーションされるため、ブラウザー内のコピーは無効になります。これは想定どおりの動作で、ブラウザーのセッションは自動的に復旧します。
次のコマンドで認証をテストできます。
fpl-mcp-config test
または、認証を手動で設定することもできます。
-
~/.fpl-mcp/.envファイルを作成し、次を記述します。FPL_REFRESH_TOKEN=your_refresh_token FPL_TEAM_ID=your_team_id -
または、
~/.fpl-mcp/config.jsonを作成します。{ "refresh_token": "your_refresh_token", "team_id": "your_team_id" } -
または、環境変数を設定します。
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_ID | 1f243d70-a140-4035-8c41-341f5af5aa12 |
FPL_OIDC_AUTHORITY | https://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 を送信してください。
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - Pull Request を作成します
詳細については、CONTRIBUTING.md ファイルをご覧ください。
謝辞
- データを提供してくださったFantasy Premier League API
- 接続標準を提供してくださったModel Context Protocol
- AI アシスタント機能を提供してくださったClaude
引用
このパッケージを研究やプロジェクトで使用する場合は、引用をご検討ください。
@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},
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
