Fantasy Premier League

Accede a datos y herramientas de Fantasy Premier League (FPL), incluyendo información de jugadores, detalles de equipos y datos de jornadas.

Documentación

Servidor MCP de Fantasy Premier League

PyPI version Package Check PyPI - Python Version License: MIT Downloads

Trust Score

Un servidor de Model Context Protocol (MCP) que proporciona acceso a datos y herramientas de Fantasy Premier League (FPL). Este servidor te permite interactuar con los datos de FPL en Claude for Desktop y otros clientes compatibles con MCP.

Demostración del servidor MCP de Fantasy Premier League en acción

Fantasy Premier League MCP Demo

Plataformas compatibles

  • Claude Desktop
  • Cursor
  • Windsurf
  • Otros LLM de escritorio compatibles con MCP

Actualmente no se admite la versión móvil.

Características

  • Datos completos de jugadores: Accede a estadísticas exhaustivas de jugadores desde la API de FPL
  • Información de equipos: Obtén detalles sobre los equipos de la Premier League
  • Datos de jornadas: Consulta información de jornadas actuales y pasadas
  • Búsqueda de jugadores: Encuentra jugadores por nombre o equipo
  • Comparación de jugadores: Compara estadísticas detalladas entre dos jugadores cualesquiera

Requisitos

  • Python 3.10 o superior
  • Claude Desktop (para la integración con IA)

Instalación

Opción 1: Instalar desde PyPI (recomendado)

pip install fpl-mcp

Opción 1b: Instalar con dependencias de desarrollo

pip install "fpl-mcp[dev]"

Opción 2: Instalar desde GitHub

pip install git+https://github.com/rishijatia/fantasy-pl-mcp.git

Opción 3: Clonar e instalar localmente

git clone https://github.com/rishijatia/fantasy-pl-mcp.git
cd fantasy-pl-mcp
pip install -e .

Ejecutar el servidor

Después de la instalación, tienes varias opciones para ejecutar el servidor:

1. Usando el comando CLI

fpl-mcp

2. Usando el módulo de Python

python -m fpl_mcp

3. Usando con Claude Desktop

Configura Claude Desktop para usar el paquete instalado editando tu archivo claude_desktop_config.json:

Método 1: Usar el módulo de Python directamente (el más fiable)

{
  "mcpServers": {
    "fantasy-pl": {
      "command": "python",
      "args": ["-m", "fpl_mcp"]
    }
  }
}

Método 2: Usar el comando instalado con la ruta completa (si se instaló con pip)

{
  "mcpServers": {
    "fantasy-pl": {
      "command": "/full/path/to/your/venv/bin/fpl-mcp"
    }
  }
}

Reemplaza /full/path/to/your/venv/bin/fpl-mcp con la ruta real al ejecutable. Puedes encontrarla ejecutando which fpl-mcp en tu terminal después de activar tu entorno virtual.

Nota: Usar solo "command": "fpl-mcp" puede provocar un error de spawn fpl-mcp ENOENT ya que Claude Desktop podría no tener acceso al PATH de tu entorno virtual. Usar la ruta completa o el enfoque del módulo de Python ayuda a evitar este problema.

Uso

En Claude for Desktop

  1. Inicia Claude for Desktop
  2. Deberías ver las herramientas de FPL disponibles mediante el icono de martillo
  3. Ejemplos de consultas:
    • "Compara a Mohamed Salah y Erling Haaland en las últimas 5 jornadas"
    • "Encuentra todos los centrocampistas del Arsenal"
    • "¿Cuál es el estado de la jornada actual?"
    • "Muéstrame los 5 delanteros con más puntos"

Instrucciones de uso de Fantasy-PL MCP

Comandos básicos:

  • Comparar jugadores: "Compara a [Jugador1] y [Jugador2]"
  • Encontrar jugadores: "Encuentra jugadores de [Equipo]" o "Busca a [Nombre del jugador]"
  • Dificultad de los partidos: "Muestra los próximos partidos de [Equipo]"
  • Consejo de capitán: "¿A quién debería poner de capitán entre [Jugador1] y [Jugador2]?"

Funciones avanzadas:

  • Análisis estadístico: "Compara las estadísticas subyacentes de [Jugador1] y [Jugador2]"
  • Comprobación de forma: "Muéstrame jugadores en forma ahora mismo"
  • Selecciones diferenciales: "Sugiere diferenciales con menos del 10% de propiedad"
  • Optimización de equipo: "Evalúa mi equipo y sugiere fichajes"

Consejos:

  • Sé específico con los nombres de los jugadores para obtener resultados precisos
  • Incluye posiciones al buscar (DEL, MED, DEF, POR)
  • Para obtener el mejor consejo de capitán, pregunta sobre forma, partidos y estadísticas subyacentes
  • Solicita la comparación de métricas específicas (xG, disparos en el área, etc.

MCP Inspector para desarrollo

Para desarrollo y pruebas:

# If you have mcp[cli] installed
mcp dev -m fpl_mcp

# Or use npx
npx @modelcontextprotocol/inspector python -m fpl_mcp

Recursos disponibles

  • fpl://static/players - Todos los datos de jugadores con estadísticas exhaustivas
  • fpl://static/players/{name} - Datos de jugadores por búsqueda de nombre
  • fpl://static/teams - Todos los equipos de la Premier League
  • fpl://static/teams/{name} - Datos de equipos por búsqueda de nombre
  • fpl://gameweeks/current - Datos de la jornada actual
  • fpl://gameweeks/all - Datos de todas las jornadas
  • fpl://fixtures - Todos los partidos de la temporada actual
  • fpl://fixtures/gameweek/{gameweek_id} - Partidos de una jornada específica
  • fpl://fixtures/team/{team_name} - Partidos de un equipo específico
  • fpl://players/{player_name}/fixtures - Próximos partidos de un jugador específico
  • fpl://gameweeks/blank - Información sobre las próximas jornadas en blanco
  • fpl://gameweeks/double - Información sobre las próximas jornadas dobles

Herramientas disponibles

Jugadores

  • search_fpl_players - Busca jugadores por nombre, con filtros opcionales de posición y equipo
  • get_player_information - Obtén información detallada e historial de jornadas de un jugador
  • analyze_players - Filtra y analiza jugadores de FPL según múltiples criterios
  • compare_players - Compara varios jugadores en diversas métricas
  • get_price_changes - Obtén jugadores cuyo precio subió o bajó en la jornada actual

Partidos y jornadas

  • get_gameweek_status - Obtén información precisa sobre las jornadas actual, anterior y siguiente
  • analyze_player_fixtures - Analiza los próximos partidos de un jugador con calificaciones de dificultad
  • analyze_fixtures - Analiza los próximos partidos de jugadores, equipos o posiciones
  • get_blank_gameweeks - Obtén información sobre las próximas jornadas en blanco
  • get_double_gameweeks - Obtén información sobre las próximas jornadas dobles

Jornada en vivo

  • get_gameweek_live_scores - Puntos y estadísticas en vivo de los jugadores mientras se disputan los partidos
  • get_dream_team - El once oficial con mayor puntuación de una jornada

Tu equipo y consejos

  • suggest_captain - Clasifica tu plantilla por puntuación de capitán con razonamiento por componente
  • check_fpl_authentication - Comprueba si la autenticación de FPL funciona correctamente
  • update_fpl_credentials - Actualiza tus credenciales de FPL almacenadas desde un chat
  • get_my_team - Consulta tu equipo autenticado (requiere autenticación)
  • get_my_current_team - Consulta tu equipo actual para la jornada activa (requiere autenticación)
  • get_team - Consulta cualquier equipo con un ID específico (requiere autenticación)
  • get_manager - Obtén los detalles del mánager para un ID de equipo específico (requiere autenticación)
  • get_manager_info - Obtén los detalles del mánager (requiere autenticación)
  • get_manager_transfer_history - Obtén el historial completo de fichajes de un mánager

Ligas

  • get_league_standings - Obtén la clasificación de una liga clásica (requiere autenticación)
  • get_league_analytics - Analiza los mánagers de una liga, las tendencias de propiedad y el rendimiento

Plantillas de prompts

  • player_analysis_prompt - Crea un prompt para analizar en profundidad a un jugador de FPL
  • transfer_advice_prompt - Obtén consejos sobre fichajes de jugadores según presupuesto y posición
  • team_rating_prompt - Crea un prompt para evaluar y analizar un equipo de FPL
  • differential_players_prompt - Crea un prompt para encontrar jugadores diferenciales con baja propiedad
  • chip_strategy_prompt - Crea un prompt para obtener consejos sobre estrategia de comodines

Desarrollo

Añadir funciones

Para añadir nuevas funciones:

  1. Añade los manejadores de recursos en el archivo correspondiente dentro de fpl_mcp/fpl/resources/
  2. Añade los manejadores de herramientas en el archivo correspondiente dentro de fpl_mcp/fpl/tools/
  3. Actualiza el archivo __main__.py para registrar nuevos recursos y herramientas
  4. Prueba con MCP Inspector antes de implementarlo en Claude for Desktop

Autenticación

FPL migró su inicio de sesión a PingOne (Ping Identity) OIDC, por lo que la autenticación ahora usa un token de actualización OIDC en lugar de tu correo electrónico y contraseña. El token de actualización se intercambia automáticamente por tokens de acceso de corta duración, y las solicitudes se envían con un encabezado X-API-Authorization: Bearer.

Para usar funciones que requieren autenticación (como acceder a tu equipo o ligas privadas), configura tu token de actualización:

# Run the credential setup tool
fpl-mcp-config setup

Esta herramienta interactiva:

  1. Te mostrará cómo copiar tu token de actualización OIDC desde el navegador
  2. Te pedirá el token de actualización y tu ID de equipo
  3. Los guardará (cifrados) en ~/.fpl-mcp/credentials.enc

Cómo obtener tu token de actualización:

  1. Inicia sesión en https://fantasy.premierleague.com en tu navegador.
  2. Abre la consola de DevTools (F12 → Consola) y ejecuta:
    copy(JSON.parse(localStorage.getItem(Object.keys(localStorage).find(k=>k.startsWith('oidc.user:')))).refresh_token)
    
    (Si Chrome lo rechaza, escribe allow pasting en la consola primero). El token de actualización ya está en tu portapapeles: pégalo cuando se te solicite.
  3. Alternativa: DevTools → Application → Local storage → https://fantasy.premierleague.com, copia el valor JSON completo de la clave que comienza con oidc.user: y pégalo en su lugar: la configuración extrae el campo refresh_token automáticamente.

Ejecuta fpl-mcp-config test justo después de la configuración: el primer intercambio reclama el token antes de que tu sesión del navegador pueda reemplazarlo, y lo rota para que la copia en tu navegador quede retirada; esto es lo esperado, y tu sesión del navegador se recupera por sí sola.

Puedes probar tu autenticación con:

fpl-mcp-config test

Alternativamente, puedes configurar la autenticación manualmente:

  1. Crea el archivo ~/.fpl-mcp/.env con:

    FPL_REFRESH_TOKEN=your_refresh_token
    FPL_TEAM_ID=your_team_id
    
  2. O crea ~/.fpl-mcp/config.json:

    {
      "refresh_token": "your_refresh_token",
      "team_id": "your_team_id"
    }
    
  3. O establece variables de entorno:

    export FPL_REFRESH_TOKEN=your_refresh_token
    export FPL_TEAM_ID=your_team_id
    

Nota: los tokens de actualización pueden rotarse o revocarse por FPL. Si la autenticación empieza a fallar, vuelve a ejecutar fpl-mcp-config setup con un token recién copiado.

Avanzado: anular los endpoints OIDC

Si FPL cambia su cliente o endpoints OIDC, puedes anular los valores predeterminados con variables de entorno (todas opcionales):

VariableValor predeterminado
FPL_OIDC_CLIENT_ID1f243d70-a140-4035-8c41-341f5af5aa12
FPL_OIDC_AUTHORITYhttps://account.premierleague.com/as
FPL_TOKEN_URL<FPL_OIDC_AUTHORITY>/token

Limitaciones

  • La API de FPL no está documentada oficialmente y puede cambiar sin previo aviso
  • Actualmente solo se admiten operaciones de lectura

Solución de problemas

Problemas comunes

1. Error "spawn fpl-mcp ENOENT" en Claude Desktop

Esto ocurre porque Claude Desktop no puede encontrar el ejecutable fpl-mcp en su PATH.

Solución: Usa uno de estos enfoques:

  • Usa la ruta completa al ejecutable en tu archivo de configuración

    {
      "mcpServers": {
        "fantasy-pl": {
          "command": "/full/path/to/your/venv/bin/fpl-mcp"
        }
      }
    }
    
  • Usa Python para ejecutar el módulo directamente (método preferido)

    {
      "mcpServers": {
        "fantasy-pl": {
          "command": "python",
          "args": ["-m", "fpl_mcp"]
        }
      }
    }
    

2. El servidor se desconecta inmediatamente

Si el servidor se inicia pero se desconecta de inmediato:

  • Revisa los registros en ~/Library/Logs/Claude/mcp*.log (macOS) o %APPDATA%\Claude\logs\mcp*.log (Windows)
  • Asegúrate de que todas las dependencias estén instaladas
  • Intenta ejecutar el servidor manualmente con python -m fpl_mcp para ver cualquier error

3. El servidor no aparece en Claude Desktop

Si el icono de martillo no aparece:

  • Reinicia Claude Desktop por completo
  • Verifica que tu claude_desktop_config.json tenga una sintaxis JSON correcta
  • Asegúrate de que la ruta a Python o al ejecutable sea absoluta, no relativa

Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENSE para más detalles.

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una Pull Request.

  1. Haz un fork del repositorio
  2. Crea tu rama de funciones (git checkout -b feature/amazing-feature)
  3. Haz commit de tus cambios (git commit -m 'Add some amazing feature')
  4. Haz push a la rama (git push origin feature/amazing-feature)
  5. Abre una Pull Request

Para más detalles, consulta el archivo CONTRIBUTING.md.

Agradecimientos

Cita

Si usas este paquete en tu investigación o proyecto, considera citarlo:

@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},
}