In-depth architectural comparison of the Fantasy Pl MCP and Firstcycling MCP MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Fantasy Pl MCP
Sports · Local stdio
Quality: 67/100 (Great) | Auth: API Key required
Firstcycling MCP
Sports · Local stdio
Quality: 47/100 (Fair) | Auth: No auth required
Verdict Summary: Choose Fantasy Pl MCP if you need specialized Sports tools running via a local process. Choose Firstcycling MCP if your workspace requires Sports integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Fantasy Pl MCP when:
You need dedicated capabilities in the Sports domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: API Key required (Free / Open Source).
You have access to required keys: FPL_USERNAME, FPL_PASSWORD, FPL_COOKIES.
An MCP server for real-time Fantasy Premier League data and analysis tools.
Access cycling race data, results, and statistics through natural language. Features include retrieving start lists, race results, and rider information from firstcycling.com.
Get any team's players, captain, and other details for a specific gameweek
Args:
team_id: FPL team ID (required)
gameweek: Gameweek number (defaults to current gameweek)
Returns:
Detailed team information including player details, captain, and value
get_my_team
Get your own FPL team for a specific gameweek
Args:
gameweek: Gameweek number (defaults to current gameweek)
Returns:
Detailed team information including player details, captain, and value
Note:
This uses your authenticated team ID from the FPL credentials.
To get another team's details, use get_team and provide a team_id.
get_manager
Get detailed information about an FPL manager
Args:
team_id: FPL team ID to look up
Returns:
Manager information including history, name, team details, and leagues
get_my_current_team
Get your current team as shown on the transfers page, including
selling prices, chips, and transfer state (requires authentication)
Unlike get_my_team, this uses the authenticated my-team endpoint, so
it reflects pending changes and per-player purchase/selling prices.
Returns:
Current squad with prices, available chips, and transfer status
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Fantasy Pl MCP is categorized under Sports and uses a local stdio subprocess. In contrast, Firstcycling MCP belongs to Sports using local stdio subprocess. Select Fantasy Pl MCP when you need capabilities focused on sports and Firstcycling MCP when you require tools for sports.
Check if FPL authentication is working correctly
Returns:
Authentication status and basic team information
update_fpl_credentials
Store a new FPL refresh token when the current one has expired.
Use this when authenticated FPL tools fail with an invalid/expired refresh
token error. Ask the user to fetch a fresh token first: log in at
https://fantasy.premierleague.com, open the DevTools Console (F12), run
copy(JSON.parse(localStorage.getItem(Object.keys(localStorage).find(k=>k.startsWith('oidc.user:')))).refresh_token)
(typing 'allow pasting' first if Chrome refuses), and paste the clipboard
contents here. Copying the whole 'oidc.user:...' JSON value from DevTools ->
Application -> Local storage works too.
Args:
refresh_token: The copied oidc.user JSON value (or just its
refresh_token field)
team_id: FPL team ID; omit to keep the currently stored one
Returns:
Whether the new token was stored and validated against the FPL API
get_manager_info
Get detailed information about an FPL manager
Args:
team_id: FPL team ID (defaults to authenticated user)
Returns:
Manager info with leagues and performance stats
get_manager_transfer_history
Get a manager's transfer history with player names and prices
Args:
team_id: FPL team ID to look up
limit: Maximum number of transfers to return (most recent first)
Returns:
Transfer history grouped by gameweek
get_league_standings
Get standings for a specified FPL league
Args:
league_id: ID of the league to fetch
Returns:
League information with standings and team details
get_league_analytics
Get rich analytics for a Fantasy Premier League mini-league
Returns visualization-optimized data for various types of league analysis.
Args:
league_id: ID of the league to analyze
analysis_type: Type of analysis to perform:
- "overview": General league overview (default)
- "historical": Historical performance analysis
- "team_composition": Team composition analysis
- "decisions": Captain and transfer decision analysis
- "fixtures": Fixture difficulty comparison
start_gw: Starting gameweek (defaults to 1 or use "current-N" format)
end_gw: Ending gameweek (defaults to current)
Returns:
Rich analytics data structured for visualization
get_player_information
Get detailed information and statistics for a specific player
Args:
player_id: FPL player ID (if provided, takes precedence over player_name)
player_name: Player name to search for (used if player_id not provided)
start_gameweek: Starting gameweek for filtering player history
end_gameweek: Ending gameweek for filtering player history
include_history: Whether to include gameweek-by-gameweek history
include_fixtures: Whether to include upcoming fixtures
Returns:
Comprehensive player information including stats and history
search_fpl_players
Search for FPL players by name with optional filtering
Args:
query: Player name or partial name to search for
position: Optional position filter (GKP, DEF, MID, FWD)
team: Optional team name filter
limit: Maximum number of results to return
Returns:
List of matching players with details
+11 more tools listed on main page
Firstcycling MCP Tools (20)
get_rider_info
Get basic biographical information about a rider including nationality, birthdate, weight, height, and current team
get_rider_best_results
Retrieve a rider's best career results, sorted by importance
get_rider_grand_tour_results
Get a rider's results in Grand Tours (Tour de France, Giro d'Italia, Vuelta a España)
get_rider_monument_results
Retrieve a rider's results in cycling's Monument classics
get_rider_team_and_ranking
Get a rider's team history and UCI ranking evolution over time
get_rider_race_history
Retrieve a rider's complete race participation history, optionally filtered by year
get_rider_one_day_races
Get a rider's results in one-day races, optionally filtered by year
get_rider_stage_races
Get a rider's results in multi-day stage races, optionally filtered by year
get_rider_teams
Retrieve the complete team history of a rider throughout their career
get_rider_victories
Get a list of a rider's career victories, with optional filters for WorldTour or UCI races
get_race_results
Retrieve results for a specific race edition by race ID and year
get_race_overview
Get general information about a race including history, records, and past winners