gamedai

Herramientas de solo lectura de la NFL de gamedai, la primera radio deportiva interactiva: puntuaciones en vivo, noticias de Wire y calificaciones públicas de jugadores de Scout, recomendaciones de inicio/banquillo y clasificaciones.

Documentación

gamedai-nfl-mcp

Parte de gamedai, la radio deportiva interactiva. Este servidor MCP con licencia MIT expone cinco herramientas de NFL de solo lectura respaldadas por la API pública de gamedai.

El backend predeterminado es https://gamedai-v2-preview.fly.dev. Anúlalo con GAMEDAI_API_BASE. Las llamadas de Scout usan opcionalmente GAMEDAI_SCOUT_API_KEY; el nombre heredado GAMEDAI_PUBLIC_API_KEY se acepta como alias.

Instalación

cd tools/gamedai-mcp
python3.12 -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[test]"

Herramientas

  • get_game_scores(date?, event_id?) lee la lista pública. date se envía al backend; event_id filtra la lista devuelta localmente.
  • get_wire_news(page?, page_size?) lee el feed paginado de Wire.
  • get_player_grade(player, season?, week?) lee las calificaciones de jugadores de Scout.
  • get_start_sit_recommendation(player_a, player_b, week, season?) lee la comparación de inicio/suplente de Scout. week es obligatorio.
  • get_scout_rankings(position?, scoring?, week?) lee el tablero de clasificaciones de Scout.

Cuando season se omite, get_player_grade y get_start_sit_recommendation usan la temporada más reciente completa de estadísticas de la NFL: today.year - 1 cuando el mes es marzo o posterior; de lo contrario, today.year - 2. Una temporada explícita siempre tiene prioridad. Las clasificaciones derivan su temporada de origen en el backend.

Todos los errores del backend se devuelven como objetos estructurados con code, http_status y un message acotado. Las claves de Scout se envían solo a llamadas de /v1/scout/*.

Modo alojado

El servicio alojado usa HTTP transmisible:

gamedai-nfl-mcp --transport streamable-http --host 0.0.0.0 --port 8080

El endpoint de MCP es /mcp; la actividad del proceso es /healthz; la preparación del backend es /readyz. La aplicación de Fly es la aplicación existente gamedai-mcp y se implementa desde este directorio con flyctl deploy.

El SDK de MCP fijado habilita HTTP sin estado cuando su constructor FastMCP admite stateless_http=True. Los SDK más antiguos mantienen sesiones normales, como una alternativa segura.

Entorno

export GAMEDAI_API_BASE="https://gamedai-v2-preview.fly.dev"
export GAMEDAI_SCOUT_API_KEY="<server-provisioned Scout key>"

OPENAI_APPS_CHALLENGE_TOKEN solo se necesita para la ruta existente de desafío de Apps públicas. Nunca confirmes claves ni expongas la clave de Scout a un modelo de MCP.

Pruebas

Las pruebas usan clientes HTTP simulados y no llaman al backend en vivo:

pytest

El contrato canónico del backend se genera en backend/openapi/scout_public_contract.openapi.json; ejecuta python scripts/mcp/check_contract_drift.py desde la raíz del repositorio para verificar si hay desviaciones de rutas o esquemas.

Licencia: MIT.