fpl-mcp-server 0.1.6__tar.gz → 0.1.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fpl_mcp_server-0.1.7/.pre-commit-config.yaml +15 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/CONTRIBUTING.md +18 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/PKG-INFO +2 -2
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/README.md +1 -1
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/docs/installation.md +1 -1
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/docs/tool-selection-guide.md +22 -30
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/pyproject.toml +1 -1
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/prompts/captain_recommendation.py +13 -16
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/prompts/league_analysis.py +12 -5
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/prompts/player_analysis.py +2 -3
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/prompts/squad_analysis.py +1 -1
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/prompts/team_analysis.py +2 -1
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/prompts/transfers.py +4 -3
- fpl_mcp_server-0.1.7/src/tools/fixtures.py +342 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/tools/gameweeks.py +0 -182
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/tools/leagues.py +189 -2
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/tools/players.py +259 -287
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/tools/teams.py +1 -173
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/tools/transfers.py +250 -112
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/conftest.py +62 -7
- fpl_mcp_server-0.1.7/tests/test_tools_advanced.py +341 -0
- fpl_mcp_server-0.1.7/tests/test_tools_coverage.py +126 -0
- fpl_mcp_server-0.1.7/tests/test_tools_coverage_extra.py +119 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_tools_integration.py +7 -223
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/uv.lock +1 -1
- fpl_mcp_server-0.1.6/src/tools/fixtures.py +0 -146
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/.dockerignore +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/.env.example +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/.github/workflows/lint.yml +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/.github/workflows/publish-docker.yml +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/.github/workflows/publish-pypi.yml +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/.github/workflows/test.yml +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/.gitignore +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/Dockerfile +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/LICENSE +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/docs/configuration.md +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/docs/fpl-api-swagger.json +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/docs/fpl-api.md +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/docs/releasing.md +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/docs/usage-examples.md +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/pytest.ini +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/cache.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/client.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/config.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/constants.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/exceptions.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/formatting.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/main.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/models.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/prompts/__init__.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/prompts/chips.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/prompts/team_selection.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/rate_limiter.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/resources/__init__.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/resources/bootstrap.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/state.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/tools/__init__.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/utils.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/src/validators.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_cache.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_client.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_client_advanced.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_exceptions.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_formatting.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_models.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_rate_limiter.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_resources.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_state.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_state_advanced.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_utils.py +0 -0
- {fpl_mcp_server-0.1.6 → fpl_mcp_server-0.1.7}/tests/test_validators.py +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v6.0.0
|
|
4
|
+
hooks:
|
|
5
|
+
- id: check-yaml
|
|
6
|
+
- id: end-of-file-fixer
|
|
7
|
+
- id: trailing-whitespace
|
|
8
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
9
|
+
rev: v0.14.14
|
|
10
|
+
hooks:
|
|
11
|
+
# Run the linter.
|
|
12
|
+
- id: ruff
|
|
13
|
+
args: [--fix]
|
|
14
|
+
# Run the formatter.
|
|
15
|
+
- id: ruff-format
|
|
@@ -57,6 +57,24 @@ uv run ruff check --fix src tests
|
|
|
57
57
|
uv run ruff format src tests
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
+
### Pre-commit Hooks
|
|
61
|
+
|
|
62
|
+
We use `pre-commit` to verify code quality before committing changes.
|
|
63
|
+
|
|
64
|
+
Setup:
|
|
65
|
+
```bash
|
|
66
|
+
# Install pre-commit (if not already installed)
|
|
67
|
+
pip install pre-commit
|
|
68
|
+
|
|
69
|
+
# Install the git hooks
|
|
70
|
+
pre-commit install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Now checks will run automatically on commit. To run them manually on all files:
|
|
74
|
+
```bash
|
|
75
|
+
pre-commit run --all-files
|
|
76
|
+
```
|
|
77
|
+
|
|
60
78
|
### Running Locally
|
|
61
79
|
|
|
62
80
|
```bash
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fpl-mcp-server
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.7
|
|
4
4
|
Summary: Fantasy Premier League MCP Server
|
|
5
5
|
Project-URL: Homepage, https://github.com/nguyenanhducs/fpl-mcp
|
|
6
6
|
Project-URL: Repository, https://github.com/nguyenanhducs/fpl-mcp
|
|
@@ -41,7 +41,7 @@ A comprehensive **Model Context Protocol (MCP)** server for Fantasy Premier Leag
|
|
|
41
41
|
|
|
42
42
|
This MCP server provides comprehensive FPL analysis capabilities through:
|
|
43
43
|
|
|
44
|
-
- **
|
|
44
|
+
- **17 Interactive Tools** - Search players, analyze fixtures, compare managers, track transfers, and more
|
|
45
45
|
- **4 Data Resources** - access to players, teams, and gameweeks bootstrap data
|
|
46
46
|
- **8 Strategy Prompts** - Structured templates for squad analysis, transfer planning, chip strategy, and captain selection
|
|
47
47
|
- **Smart Caching** - 4-hour cache for bootstrap data to minimize API calls while keeping data fresh
|
|
@@ -10,7 +10,7 @@ A comprehensive **Model Context Protocol (MCP)** server for Fantasy Premier Leag
|
|
|
10
10
|
|
|
11
11
|
This MCP server provides comprehensive FPL analysis capabilities through:
|
|
12
12
|
|
|
13
|
-
- **
|
|
13
|
+
- **17 Interactive Tools** - Search players, analyze fixtures, compare managers, track transfers, and more
|
|
14
14
|
- **4 Data Resources** - access to players, teams, and gameweeks bootstrap data
|
|
15
15
|
- **8 Strategy Prompts** - Structured templates for squad analysis, transfer planning, chip strategy, and captain selection
|
|
16
16
|
- **Smart Caching** - 4-hour cache for bootstrap data to minimize API calls while keeping data fresh
|
|
@@ -182,4 +182,4 @@ To verify your installation, ask your AI assistant:
|
|
|
182
182
|
List available FPL tools
|
|
183
183
|
```
|
|
184
184
|
|
|
185
|
-
You should see all
|
|
185
|
+
You should see all 17 FPL tools, including player search, fixture analysis, and transfer tracking capabilities.
|
|
@@ -14,59 +14,54 @@ This guide provides a comprehensive reference to all available tools, resources,
|
|
|
14
14
|
|
|
15
15
|
Interactive functions that perform specific FPL analysis tasks. All tools accept structured inputs and return formatted data.
|
|
16
16
|
|
|
17
|
-
### Player Tools (
|
|
17
|
+
### Player Tools (5 tools)
|
|
18
18
|
|
|
19
19
|
| Tool Name | Description | Key Parameters |
|
|
20
20
|
|-----------|-------------|----------------|
|
|
21
|
-
| `fpl_search_players` | Search players by name | `name`, `max_results` |
|
|
22
|
-
| `fpl_search_players_by_team` | Get all players from a specific team | `team_name`, `max_results` |
|
|
23
21
|
| `fpl_find_player` | Find player with fuzzy name matching | `player_name` |
|
|
24
22
|
| `fpl_get_player_details` | Comprehensive player info with fixtures and history | `player_name` |
|
|
25
23
|
| `fpl_compare_players` | Compare multiple players side-by-side | `player_names[]` |
|
|
26
24
|
| `fpl_get_top_performers` | Top 10 players by goals, xG, assists, xA, xGI | `metric`, `num_gameweeks` |
|
|
27
|
-
| `
|
|
25
|
+
| `fpl_get_captain_recommendations` | Get top captain picks for upcoming gameweek | `team_id`, `gameweek` |
|
|
28
26
|
|
|
29
|
-
### Team Tools (
|
|
27
|
+
### Team Tools (1 tool)
|
|
30
28
|
|
|
31
29
|
| Tool Name | Description | Key Parameters |
|
|
32
30
|
|-----------|-------------|----------------|
|
|
33
|
-
| `fpl_get_team_info` | Team details and strength ratings | `team_name` |
|
|
34
|
-
| `fpl_list_all_teams` | Overview of all 20 Premier League teams | `format` |
|
|
35
31
|
| `fpl_analyze_team_fixtures` | Assess upcoming fixtures for a team | `team_name`, `num_gameweeks` |
|
|
36
32
|
|
|
37
|
-
### Gameweek Tools (
|
|
33
|
+
### Gameweek Tools (1 tool)
|
|
38
34
|
|
|
39
35
|
| Tool Name | Description | Key Parameters |
|
|
40
36
|
|-----------|-------------|----------------|
|
|
41
37
|
| `fpl_get_current_gameweek` | Current or upcoming gameweek details | `format` |
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
|
|
39
|
+
### Fixtures Tools (2 tools)
|
|
40
|
+
|
|
41
|
+
| Tool Name | Description | Key Parameters |
|
|
42
|
+
|-----------|-------------|----------------|
|
|
44
43
|
| `fpl_get_fixtures_for_gameweek` | All matches in a specific gameweek | `gameweek`, `format` |
|
|
44
|
+
| `fpl_find_fixture_opportunities` | Find teams with easiest upcoming fixtures | `num_gameweeks`, `min_difficulty` |
|
|
45
45
|
|
|
46
|
-
### League & Manager Tools (
|
|
46
|
+
### League & Manager Tools (4 tools)
|
|
47
47
|
|
|
48
48
|
| Tool Name | Description | Key Parameters |
|
|
49
49
|
|-----------|-------------|----------------|
|
|
50
50
|
| `fpl_get_league_standings` | League rankings and points | `league_id`, `page`, `format` |
|
|
51
|
-
| `fpl_get_manager_gameweek_team` | Team selection via manager name + league ID | `manager_name`, `league_id`, `gameweek` |
|
|
52
|
-
| `fpl_get_manager_squad` | Direct access via team ID | `team_id`, `gameweek` |
|
|
53
51
|
| `fpl_get_manager_by_team_id` | Manager profile without league context | `team_id`, `gameweek`, `format` |
|
|
54
52
|
| `fpl_compare_managers` | Side-by-side team comparison | `manager1_team_id`, `manager2_team_id`, `gameweek` |
|
|
55
|
-
| `
|
|
53
|
+
| `fpl_analyze_rival` | Head-to-head analysis with a rival | `my_team_id`, `rival_team_id` |
|
|
56
54
|
|
|
57
|
-
### Transfer Tools (
|
|
55
|
+
### Transfer Tools (4 tools)
|
|
58
56
|
|
|
59
57
|
| Tool Name | Description | Key Parameters |
|
|
60
58
|
|-----------|-------------|----------------|
|
|
61
|
-
| `
|
|
59
|
+
| `fpl_analyze_transfer` | Analyze a potential transfer decision | `player_out`, `player_in`, `my_team_id` |
|
|
62
60
|
| `fpl_get_top_transferred_players` | Most transferred in/out right now | `limit`, `format` |
|
|
63
61
|
| `fpl_get_manager_transfers_by_gameweek` | Transfers made by a manager | `team_id`, `gameweek` |
|
|
62
|
+
| `fpl_get_manager_chips` | View used and available chips | `team_id` |
|
|
64
63
|
|
|
65
|
-
### Fixtures Tools (1 tool)
|
|
66
64
|
|
|
67
|
-
| Tool Name | Description | Key Parameters |
|
|
68
|
-
|-----------|-------------|----------------|
|
|
69
|
-
| `fpl_get_fixtures_for_gameweek` | All fixtures in a gameweek | `gameweek`, `format` |
|
|
70
65
|
|
|
71
66
|
---
|
|
72
67
|
|
|
@@ -104,37 +99,34 @@ Structured templates that guide analysis workflows. Prompts combine multiple too
|
|
|
104
99
|
|
|
105
100
|
## Quick Decision Guide
|
|
106
101
|
|
|
102
|
+
|
|
107
103
|
### Finding Players
|
|
108
104
|
|
|
109
105
|
- **Know exact name?** → `fpl_get_player_details` - Comprehensive player info with fixtures, history, and stats
|
|
110
106
|
- **Partial name/typos?** → `fpl_find_player` - Fuzzy matching finds players even with spelling variations
|
|
111
|
-
- **
|
|
112
|
-
- **Want team's squad?** → `fpl_search_players_by_team` - All players from a specific team
|
|
107
|
+
- **Want captain picks?** → `fpl_get_captain_recommendations` - Top weighted captaincy picks
|
|
113
108
|
- **Want top by metrics?** → `fpl_get_top_performers` - Top 10 players by goals, xG, assists, xA, xGI over recent gameweeks
|
|
114
109
|
|
|
115
110
|
### Analyzing Teams
|
|
116
111
|
|
|
117
|
-
- **
|
|
118
|
-
- **
|
|
119
|
-
- **Fixture difficulty?** → `fpl_analyze_team_fixtures` - Assess upcoming fixtures for a team
|
|
112
|
+
- **Fixture difficulty?** → `fpl_analyze_team_fixtures` - Assess upcoming fixtures for a specific team
|
|
113
|
+
- **Find easy fixtures?** → `fpl_find_fixture_opportunities` - Recommend teams with easiest upcoming runs
|
|
120
114
|
|
|
121
115
|
### Gameweek Information
|
|
122
116
|
|
|
123
117
|
- **Current gameweek?** → `fpl_get_current_gameweek` - Current or upcoming gameweek details
|
|
124
|
-
- **Specific gameweek stats?** → `fpl_get_gameweek_info` - Detailed stats and top performers
|
|
125
|
-
- **All gameweeks overview?** → `fpl_list_all_gameweeks` - Full season gameweek status
|
|
126
118
|
- **Gameweek fixtures?** → `fpl_get_fixtures_for_gameweek` - All matches in a specific gameweek
|
|
127
119
|
|
|
128
120
|
### League & Manager Analysis
|
|
129
121
|
|
|
130
122
|
- **League standings?** → `fpl_get_league_standings` - Rankings and points (requires league ID)
|
|
131
|
-
- **
|
|
132
|
-
- **Manager's team (with team ID)?** → `fpl_get_manager_squad` - Direct access via team ID, optional gameweek
|
|
123
|
+
- **View any team?** → `fpl_get_manager_by_team_id` - Direct access to manager profile via team ID
|
|
133
124
|
- **Compare managers?** → `fpl_compare_managers` - Side-by-side team comparison
|
|
125
|
+
- **Analyze rival?** → `fpl_analyze_rival` - Deep dive head-to-head vs a specific rival
|
|
134
126
|
- **Manager transfers?** → `fpl_get_manager_transfers_by_gameweek` - Transfers made by a manager
|
|
135
127
|
|
|
136
128
|
### Transfer Intelligence
|
|
137
129
|
|
|
138
|
-
- **
|
|
130
|
+
- **Analyze move?** → `fpl_analyze_transfer` - Deep dive comparison of player OUT vs player IN
|
|
139
131
|
- **Current trends?** → `fpl_get_top_transferred_players` - Most transferred in/out right now
|
|
140
132
|
- **Manager chip usage?** → `fpl_get_manager_chips` - View used and available chips (2025/26 half-season system)
|
|
@@ -9,7 +9,9 @@ from ..tools import mcp
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
@mcp.prompt()
|
|
12
|
-
def recommend_captain(
|
|
12
|
+
def recommend_captain(
|
|
13
|
+
team_id: int, gameweek: int | None = None, response_format: str = "markdown"
|
|
14
|
+
) -> str:
|
|
13
15
|
"""
|
|
14
16
|
Recommend optimal captain choices using xGI-based metrics and fixture analysis.
|
|
15
17
|
|
|
@@ -33,19 +35,16 @@ Act as an FPL Expert Analyst with 10+ years of experience. We do not play it saf
|
|
|
33
35
|
|
|
34
36
|
## 🚦 **Workflow & Efficiency**
|
|
35
37
|
|
|
36
|
-
**
|
|
37
|
-
|
|
38
|
-
2. **
|
|
39
|
-
|
|
40
|
-
* **Form**: > 4.0 PPG
|
|
41
|
-
* **Context**: Key talismen (e.g., Salah, Haaland, Palmer, Saka) even if form is dip.
|
|
42
|
-
3. **Deep Dive**: Only fetch detailed stats (`fpl_compare_players`) for these 3-5 candidates.
|
|
38
|
+
1. **Tool**: `fpl_get_captain_recommendations(team_id={team_id}, gameweek={gameweek})`
|
|
39
|
+
*This tool automatically runs the Pro-Level Scoring Model defined below.*
|
|
40
|
+
2. **Review**: Analyze the return values (Score, Rationale, Metrics).
|
|
41
|
+
3. **Explain**: Use the framework below to justify the tool's recommendations.
|
|
43
42
|
|
|
44
43
|
---
|
|
45
44
|
|
|
46
45
|
## 📊 **Pro-Level Scoring Model (Max 100)**
|
|
47
46
|
|
|
48
|
-
|
|
47
|
+
The tool calculates the **Captain Suitability Score** using this weighted matrix. Use this context to explain the results:
|
|
49
48
|
|
|
50
49
|
### **1. Projected Points (Weight: 40%)**
|
|
51
50
|
*The core engine. Can they score specific points this week?*
|
|
@@ -112,7 +111,7 @@ Calculate the **Captain Suitability Score** using this weighted matrix:
|
|
|
112
111
|
• **Nailedness**: [Secure/Risk] - [Minutes played last 3 GWs]
|
|
113
112
|
• **Explosiveness**: [Penalty Duties? / Haul Potential?]
|
|
114
113
|
|
|
115
|
-
**Why**: [2-3 sentence reasoning.
|
|
114
|
+
**Why**: [2-3 sentence reasoning using the Scoring Model. E.g. "Points for Elite Stats (40pts) + Weak Defense (30pts)..."]
|
|
116
115
|
**Risk**: [Any rotation risk or injury flag? If none, say "None"]
|
|
117
116
|
|
|
118
117
|
**Confidence**: [Justification, e.g., "Clear data leader, 15pt gap to #2"]
|
|
@@ -141,12 +140,10 @@ Calculate the **Captain Suitability Score** using this weighted matrix:
|
|
|
141
140
|
|
|
142
141
|
## 🔧 **Execution Plan**
|
|
143
142
|
|
|
144
|
-
1. **Tool**: `
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
5. **Compute**: Apply Scoring Model.
|
|
149
|
-
6. **Output**: Generate Recommendation.
|
|
143
|
+
1. **Tool**: `fpl_get_captain_recommendations(team_id={team_id}, gameweek={gameweek})`
|
|
144
|
+
*Note: This tool handles the raw data fetching and scoring model calculation.*
|
|
145
|
+
2. **Process**: Review the tool's `recommendations` list.
|
|
146
|
+
3. **Output**: Format the top 3 recommendations as requested above.
|
|
150
147
|
|
|
151
148
|
**Begin Analysis Now.**
|
|
152
149
|
"""
|
|
@@ -110,21 +110,28 @@ Step 1: Get league standings to find manager names and team IDs:
|
|
|
110
110
|
Step 2: Compare managers using one of these approaches:
|
|
111
111
|
|
|
112
112
|
**Option A - Individual manager analysis:**
|
|
113
|
-
- Tool: `
|
|
113
|
+
- Tool: `fpl_get_manager_by_team_id`
|
|
114
114
|
- Parameters:
|
|
115
|
-
-
|
|
116
|
-
- league_id: {league_id}
|
|
115
|
+
- team_id: [Team ID] (found in standings)
|
|
117
116
|
- gameweek: {gameweek}
|
|
118
117
|
- Returns: Detailed team sheet with starting XI, bench, captain, transfers, points
|
|
119
118
|
|
|
120
|
-
**Option B - Side-by-side comparison:**
|
|
119
|
+
**Option B - Side-by-side comparison (General):**
|
|
121
120
|
- Tool: `fpl_compare_managers`
|
|
122
121
|
- Parameters:
|
|
123
|
-
- manager_names: ["Manager1", "Manager2"
|
|
122
|
+
- manager_names: ["Manager1", "Manager2"]
|
|
124
123
|
- league_id: {league_id}
|
|
125
124
|
- gameweek: {gameweek}
|
|
126
125
|
- Returns: Comparison with common players, differentials, captain choices
|
|
127
126
|
|
|
127
|
+
**Option C - Deep Rival Analysis (Head-to-Head):**
|
|
128
|
+
- Tool: `fpl_analyze_rival`
|
|
129
|
+
- Parameters:
|
|
130
|
+
- my_team_id: [Your Team ID]
|
|
131
|
+
- rival_team_id: [Rival Team ID]
|
|
132
|
+
- gameweek: {gameweek}
|
|
133
|
+
- Returns: Comprehensive stats, differentials, and threat assessment
|
|
134
|
+
|
|
128
135
|
**Additional data sources:**
|
|
129
136
|
- Resource `fpl://bootstrap/players` - All player details, ownership %, positions, prices
|
|
130
137
|
- Resource `fpl://current-gameweek` - Current gameweek status and deadline information
|
|
@@ -123,12 +123,11 @@ Present side-by-side:
|
|
|
123
123
|
|
|
124
124
|
## 🔧 **Tool Calls**
|
|
125
125
|
|
|
126
|
-
|
|
127
|
-
1. **`fpl://player/{{{{player_name}}}}/summary`** → Get comprehensive stats, fixtures, history
|
|
126
|
+
1. **`fpl_compare_players(player_names=[p1, p2, ...])`** → Get comprehensive stats, fixtures, history side-by-side
|
|
128
127
|
*Provides: xG, xA, xGI, minutes, goals, assists, upcoming fixtures*
|
|
129
128
|
2. **`fpl://bootstrap/players`** → Get ownership %, price, transfer trends
|
|
130
129
|
*Provides: selected_by_percent, now_cost, transfers_in/out_event*
|
|
131
|
-
3. **`fpl_get_top_performers
|
|
130
|
+
3. **`fpl_get_top_performers(num_gameweeks=5)`** → Benchmark against top xGI players
|
|
132
131
|
|
|
133
132
|
---
|
|
134
133
|
|
|
@@ -119,7 +119,7 @@ Instead of arbitrary PPG thresholds, use xGI/90:
|
|
|
119
119
|
## 🔧 **Tool Calls**
|
|
120
120
|
|
|
121
121
|
Use these tools and resources:
|
|
122
|
-
1. `
|
|
122
|
+
1. `fpl_get_manager_by_team_id(team_id={team_id})` → Current squad composition
|
|
123
123
|
2. `fpl_get_top_performers(num_gameweeks={num_gameweeks})` → Benchmark against top xGI players
|
|
124
124
|
3. For each player:
|
|
125
125
|
- `fpl://player/{{{{player_name}}}}/summary` → xG, xA, xGI, minutes, fixtures
|
|
@@ -108,7 +108,8 @@ Calculate **rolling 3-GW average FDR**:
|
|
|
108
108
|
|
|
109
109
|
## 🔧 **Tool Calls**
|
|
110
110
|
|
|
111
|
-
Use: `
|
|
111
|
+
Use: `fpl_analyze_team_fixtures(team_name="{team_name}", num_gameweeks={num_gameweeks})`
|
|
112
|
+
For broader analysis (finding ANY team with good fixtures), use `fpl_find_fixture_opportunities`.
|
|
112
113
|
Enrich with: `fpl://bootstrap/teams` for opponent strength proxy (if xGC not available, use team strength rank)
|
|
113
114
|
|
|
114
115
|
---
|
|
@@ -150,11 +150,12 @@ Using `fpl_get_top_performers(num_gameweeks=5)`:
|
|
|
150
150
|
|
|
151
151
|
## 🔧 **Tool Calls**
|
|
152
152
|
|
|
153
|
-
1. `
|
|
153
|
+
1. `fpl_get_manager_by_team_id(team_id={team_id})` → Current squad with transfer context
|
|
154
154
|
2. `fpl_get_top_performers(num_gameweeks=5)` → Find high xGI players for replacements
|
|
155
|
-
3.
|
|
155
|
+
3. Use `fpl_analyze_transfer(player_out=..., player_in=...)` to validate your top priority move.
|
|
156
|
+
4. For other candidates:
|
|
156
157
|
- `fpl://player/{{{{name}}}}/summary` → xG, xA, fixtures, status
|
|
157
|
-
|
|
158
|
+
5. `fpl://bootstrap/players` → Price, ownership, transfer trends
|
|
158
159
|
|
|
159
160
|
---
|
|
160
161
|
|