gamedai

Ferramentas NFL somente leitura do gamedai, a primeira rádio esportiva interativa: placares ao vivo, notícias do Wire e notas públicas de jogadores do Scout, recomendações de escalação/banco e rankings.

Documentação

gamedai-nfl-mcp

Parte do gamedai, a rádio esportiva interativa. Este servidor MCP licenciado sob MIT expõe cinco ferramentas NFL somente leitura, apoiadas pela API pública do gamedai.

O backend padrão é https://gamedai-v2-preview.fly.dev. Substitua-o por GAMEDAI_API_BASE. Chamadas do Scout usam opcionalmente GAMEDAI_SCOUT_API_KEY; o nome legado GAMEDAI_PUBLIC_API_KEY é aceito como um alias.

Instalação

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

Ferramentas

  • get_game_scores(date?, event_id?) lê o quadro público. date é enviado ao backend; event_id filtra o quadro retornado localmente.
  • get_wire_news(page?, page_size?) lê o feed paginado do Wire.
  • get_player_grade(player, season?, week?) lê as notas de jogadores do Scout.
  • get_start_sit_recommendation(player_a, player_b, week, season?) lê a comparação start/sit do Scout. week é obrigatório.
  • get_scout_rankings(position?, scoring?, week?) lê o quadro de rankings do Scout.

Quando season é omitido, get_player_grade e get_start_sit_recommendation usam a temporada completa mais recente de estatísticas da NFL: today.year - 1 quando o mês é março ou posterior, caso contrário today.year - 2. Uma temporada explícita sempre prevalece. Os rankings derivam sua temporada de origem no backend.

Todos os erros do backend são retornados como objetos estruturados com code, http_status e um message limitado. As chaves do Scout são enviadas apenas para chamadas de /v1/scout/*.

Modo hospedado

O serviço hospedado usa HTTP com streaming:

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

O endpoint MCP é /mcp; a atividade do processo é /healthz; a prontidão do backend é /readyz. O aplicativo Fly é o aplicativo existente gamedai-mcp e faz deploy a partir deste diretório com flyctl deploy.

O SDK MCP fixado permite HTTP sem estado quando seu construtor FastMCP suporta stateless_http=True. SDKs mais antigos mantêm sessões normais, como um fallback seguro.

Ambiente

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

OPENAI_APPS_CHALLENGE_TOKEN é necessário apenas para a rota existente de desafios dos Apps públicos. Nunca confirme chaves ou exponha a chave do Scout a um modelo MCP.

Testes

Os testes usam clientes HTTP simulados e não chamam o backend ao vivo:

pytest

O contrato canônico do backend é gerado em backend/openapi/scout_public_contract.openapi.json; execute python scripts/mcp/check_contract_drift.py a partir da raiz do repositório para verificar se há desvios de rota ou esquema.

Licença: MIT.