get_manager_info
Retrieve detailed Fantasy Premier League manager information including team performance, league standings, and statistics for any FPL team ID.
Instructions
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
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | No |
Implementation Reference
- Core handler function that fetches raw manager data from API and parses it into structured sections: basic_info, performance, and leagues.async def _get_manager_info(team_id: Optional[int] = None) -> Dict[str, Any]: """Get detailed information about an FPL manager""" # Get raw manager data data = await get_manager_data(team_id) # Check for errors if "error" in data: return data # Parse different sections basic_info = parse_manager_basic_info(data) performance = parse_manager_performance(data) leagues = parse_manager_leagues(data) # Return combined data return { "basic_info": basic_info, "performance": performance, "leagues": leagues }
- src/fpl_mcp/fpl/tools/managers.py:173-189 (registration)Registers the 'get_manager_info' tool using the @mcp.tool() decorator, providing input schema via type hints and docstring.def register_tools(mcp): """Register manager tools with the MCP server""" @mcp.tool() async def get_manager_info( team_id: Optional[int] = None ) -> Dict[str, Any]: """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 """ return await _get_manager_info(team_id)
- src/fpl_mcp/__main__.py:142-146 (registration)Top-level registration call that invokes register_manager_tools(mcp), which registers the get_manager_info tool with the MCP server.# Register team, manager, league, and player tools register_team_tools(mcp) register_manager_tools(mcp) register_league_tools(mcp) register_player_tools(mcp)
- Helper function that fetches raw manager/team entry data from the FPL API using authentication.async def get_manager_data(team_id: Optional[int] = None) -> Dict[str, Any]: """ Get raw manager data from the FPL API Args: team_id: FPL team ID (defaults to authenticated user) Returns: Raw manager data from the API """ auth_manager = get_auth_manager() # Use default team ID if not provided if team_id is None: team_id = auth_manager.team_id if not team_id: return { "error": "No team ID specified and no default team ID found" } # Get manager data try: data = await auth_manager.get_entry_data(team_id) return data except Exception as e: logger.error(f"Error fetching manager data: {e}") return {"error": f"Failed to retrieve manager data: {str(e)}"}
- Helper that parses basic manager details like name, team, region from raw API data.def parse_manager_basic_info(data: Dict[str, Any]) -> Dict[str, Any]: """Parse basic manager information""" first_name = data.get('player_first_name', '') last_name = data.get('player_last_name', '') return { "team_id": data.get("id"), "team_name": data.get("name"), "manager_name": f"{first_name} {last_name}", "region": data.get("player_region_name"), "started_event": data.get("started_event"), "favourite_team": data.get("favourite_team"), "joined_time": data.get("joined_time"), "kit": data.get("kit"), "years_active": data.get("years_active"), }