In-depth architectural comparison of the Fantasy Pl MCP and Nba MCP Server 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
Nba MCP Server
Sports · Local stdio
Quality: 57/100 (Good) | Auth: No auth required
Verdict Summary: Choose Fantasy Pl MCP if you need specialized Sports tools running via a local process. Choose Nba MCP Server 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.
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, Nba MCP Server belongs to Sports using local stdio subprocess. Select Fantasy Pl MCP when you need capabilities focused on sports and Nba MCP Server 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
Nba MCP Server Tools (21)
resolve_team_id
Resolve team name/city/nickname to team_id. Returns top matches.
resolve_player_id
Resolve player name to player_id. Returns top matches with active/inactive status.
get_scoreboard
Games for a date (YYYY-MM-DD or YYYYMMDD). Defaults to today.
find_game
Find game_id by team matchup and optional date. Accepts team names.
get_game_details
Detailed game info. Accepts game_id.
get_box_score
Full box score with player stats. Accepts game_id.
get_player_info
Player bio/profile. Accepts player name or ID.
get_player_stats
Player stats. stat_type: season (default), career, game_log, hustle, defense, advanced. Accepts player name or ID.
get_player_awards
Player awards/accolades. Accepts player name or ID.
get_shooting_data
Shooting data. data_type: splits (default) or chart. Accepts player name or ID.