Skip to main content
Glama
davise070893

MCP Partidos de Fútbol

by davise070893

MCP Partidos de Fútbol ⚽

Un servidor MCP (Model Context Protocol) en Python para obtener datos de partidos de fútbol mediante web scraping inteligente desde múltiples fuentes.

🌟 Características

  • 🏈 Múltiples fuentes: Extrae datos de ESPN, Goal.com, BBC Sport, Marca, AS y más

  • 🔄 URLs configurables: Fácil modificación y adición de nuevas fuentes

  • 📊 Salida JSON estructurada: Formato optimizado para procesamiento por IA

  • 🚀 Compatible con MCP: Integración directa con Claude y otros sistemas de IA

  • Scraping asíncrono: Rendimiento optimizado con requests paralelos

  • 🏆 Detección inteligente: Identifica automáticamente partidos "atractivos" y equipos grandes

  • 🎯 Filtrado avanzado: Sistema de scoring para priorizar partidos importantes

  • 💾 Sistema de caché: Evita requests innecesarios

📊 Datos que extrae

  • Equipos: Nombres completos de equipos locales y visitantes

  • Horarios: Fecha y hora exacta de los partidos

  • Ligas: Competición, torneo o liga (Champions, Premier League, etc.)

  • Canales: Canales de TV/streaming donde se transmite

  • Estadios: Lugar donde se juega (cuando está disponible)

  • Estado: Programado, en vivo, finalizado

  • Marcadores: Resultados en tiempo real (cuando disponible)

  • Nivel de atractivo: Score 1-5 basado en importancia de equipos y liga

🚀 Instalación rápida

Opción 1: Con uv (recomendado)

# Instalar uv si no lo tienes powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Clonar e instalar git clone <repo-url> cd mcp-partidos uv venv uv pip install -r requirements.txt

Opción 2: Con pip tradicional

git clone <repo-url> cd mcp-partidos pip install -r requirements.txt

⚙️ Configuración

1. Configurar fuentes

Edita src/mcp_partidos/config.py para agregar o modificar fuentes:

FUENTES_PARTIDOS = [ "https://www.espn.com/soccer/fixtures", "https://www.goal.com/fixtures", "https://www.bbc.com/sport/football/fixtures", "https://www.marca.com/futbol/fixture.html", # Agrega más fuentes aquí ]

2. Configurar equipos importantes

Personaliza la lista de equipos "grandes" para el sistema de scoring:

EQUIPOS_GRANDES = [ "Real Madrid", "Barcelona", "Manchester United", "Liverpool", "Bayern Munich", "PSG", # Agrega más equipos aquí ]

🎮 Uso

Como servidor MCP (con Claude)

  1. Configurar en claude_desktop_config.json:

{ "mcpServers": { "mcp-partidos": { "command": "uv", "args": ["run", "--directory", "/ruta/a/mcp-partidos", "python", "run_server.py"] } } }
  1. En Claude:

"Obtén los partidos de fútbol de hoy y muéstrame los 5 más atractivos ordenados por importancia"

Como script independiente

# Ejecutar servidor MCP python run_server.py # Probar el scraper python test_scraper.py # Probar una fuente específica python test_scraper.py "https://www.espn.com/soccer/fixtures"

🛠️ Herramientas MCP disponibles

Herramienta

Descripción

Parámetros

obtener_partidos_hoy

Obtiene partidos programados para hoy

incluir_fuentes (bool)

obtener_partidos_fecha

Obtiene partidos para fecha específica

fecha (YYYY-MM-DD), incluir_fuentes (bool)

listar_fuentes

Lista todas las fuentes configuradas

-

probar_fuente

Verifica si una fuente funciona

url (string)

📋 Formato de salida JSON

{ "partidos": [ { "equipo_local": "Barcelona", "equipo_visitante": "Real Madrid", "fecha": "2025-09-19", "hora": "15:00", "liga": "La Liga", "canales": ["ESPN", "Movistar+"], "estadio": "Camp Nou", "estado": "programado", "fuente": { "nombre": "espn.com", "url": "https://www.espn.com/soccer/fixtures" }, "metadatos": { "es_partido_importante": true, "nivel_atractivo": 5, "fecha_extraccion": "2025-09-19T10:30:00Z" } } ], "fecha_consulta": "2025-09-19", "total_partidos": 15, "fuentes_consultadas": 6, "timestamp": "2025-09-19T10:30:00Z", "estadisticas": { "por_liga": { "Champions League": 4, "Premier League": 6, "La Liga": 5 }, "partidos_importantes": 8, "nivel_atractivo_promedio": 3.2 } }

🎯 Ejemplos de uso con Claude

# Partidos de hoy con análisis "Obtén los partidos de fútbol de hoy, ordénalos por atractivo y dime cuáles son los 3 mejores para ver" # Partidos por fecha "¿Qué partidos hay el 2025-12-25? Muéstrame solo los de ligas europeas importantes" # Análisis de fuentes "Lista las fuentes configuradas y prueba ESPN para ver si funciona bien" # Partidos por horario "Obtén partidos de hoy y agrúpalos por franja horaria, mostrando horarios en UTC-5" # Análisis por liga "Dame partidos de hoy y dime cuántos hay por liga, priorizando Champions League"

🔧 Desarrollo y testing

# Instalar dependencias de desarrollo uv pip install -e ".[dev]" # Formatear código uv run black src/ # Verificar tipos con mypy uv run mypy src/ # Probar scraper completo uv run python test_scraper.py # Probar fuente específica uv run python test_scraper.py "https://www.espn.com/soccer/fixtures" # Ejecutar servidor MCP uv run python run_server.py

📁 Estructura del proyecto

mcp-partidos/ ├── src/ │ └── mcp_partidos/ │ ├── __init__.py │ ├── server.py # Servidor MCP principal │ ├── scraper.py # Lógica de web scraping │ ├── config.py # Configuración de URLs y equipos │ └── models.py # Modelos de datos (Partido, etc.) ├── run_server.py # Script para ejecutar el servidor ├── test_scraper.py # Script de prueba del scraper ├── claude_config.md # Guía de configuración para Claude ├── install.sh # Script de instalación con uv ├── pyproject.toml # Configuración del proyecto ├── requirements.txt # Dependencias Python └── README.md # Este archivo

🌐 Fuentes soportadas

  • ESPN - Cobertura internacional completa

  • Goal.com - Noticias y fixtures globales

  • BBC Sport - Deportes británicos y europeos

  • Marca - Enfoque en fútbol español y europeo

  • AS - Deportes en español

  • Sky Sports - Premier League y fútbol europeo

  • UEFA - Competiciones europeas oficiales

Fácilmente expandible agregando URLs en

🤝 Contribuir

  1. Fork el repositorio

  2. Crea una rama para tu feature: git checkout -b feature/nueva-fuente

  3. Agrega la nueva fuente en config.py

  4. Prueba con python test_scraper.py

  5. Commit y push: git commit -am 'Agregar fuente XYZ'

  6. Crea un Pull Request

📄 Licencia

MIT License - Usa libremente para proyectos personales y comerciales.

🆘 Soporte

Si encuentras problemas:

  1. Revisa las fuentes: Las páginas web cambian frecuentemente

  2. Prueba fuentes individuales: python test_scraper.py <URL>

  3. Verifica conectividad: Algunas fuentes pueden bloquear ciertos IPs

  4. Actualiza selectores: Modifica config.py si una fuente cambió su estructura


¡Dale una estrella si te resulta útil!

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/davise070893/mcp-GetTodayFutbolMatches-usingIA'

If you have feedback or need assistance with the MCP directory API, please join our Discord server