
Dê a Claude e ChatGPT Dados de Futebol Ao Vivo: Construindo um Servidor MCP para uma API de Futebol
Peça ao Claude quem está jogando esta noite e ele explicará educadamente que não tem dados ao vivo. Pergunte ao ChatGPT como as odds mudaram antes de uma partida e você receberá uma palestra sobre não poder navegar. Ambos são perfeitamente capazes de raciocinar sobre futebol — eles apenas não conseguem ver o campo.
O Protocolo de Contexto do Modelo (MCP) corrige exatamente isso. Um servidor MCP é um pequeno programa que expõe "ferramentas" — funções com um nome, uma descrição e um esquema JSON — e qualquer assistente compatível com MCP pode descobri-las e chamá-las. Envolva uma API REST em um e o assistente ganha a capacidade de pesquisar coisas antes de responder.
Este post faz isso para o futebol. Na primeira parte, instalamos um servidor pronto e o conectamos ao Claude Code, Claude Desktop, Cursor e ChatGPT. Na segunda parte, abrimos e olhamos como ele é construído, para que você possa fazer o mesmo para qualquer API que você se importe.
A API subjacente é 5DollarFootballAPI: partidas, placares ao vivo, classificações, escanteios, cartões, odds e todo o histórico de movimentação de odds. Divulgação: Eu construí essa API, e escrevi o servidor MCP. Nada abaixo é específico para ela — troque pelo seu próprio cliente e o padrão é idêntico.
Parte 1: dois minutos para um assistente ciente de futebol
Você precisa do Node 18+ e de uma chave de API. O nível gratuito (sem cartão) cobre partidas, placares ao vivo e classificações, o que é suficiente para a maioria dos prompts abaixo.
Claude Code
claude mcp add football-api -e FIVEDOLLARFOOTBALL_API_KEY=fb_live_your_key -- npx -y football-api-mcp
Claude Desktop e Cursor
Ambos leem a mesma estrutura JSON. Claude Desktop: claude_desktop_config.json. Cursor: .cursor/mcp.json no projeto, ou ~/.cursor/mcp.json globalmente.
{
"mcpServers": {
"football-api": {
"command": "npx",
"args": ["-y", "football-api-mcp"],
"env": { "FIVEDOLLARFOOTBALL_API_KEY": "fb_live_your_key" }
}
}
}
Reinicie o aplicativo e você deve ver onze novas ferramentas listadas sob o servidor.
ChatGPT — a exceção apenas remota
O ChatGPT também suporta MCP, mas com duas restrições que vale a pena saber antes de você gastar tempo com isso:
- Ele só se conecta a servidores remotos via HTTPS (HTTP transmitível). Um comando local
npxé invisível para ele. - Você precisa de um plano Plus, Pro ou Business e deve habilitar o Modo Desenvolvedor — ele está sob Configurações → Segurança e login, sinalizado como "risco elevado", o que é justo: um servidor MCP não revisado vê tudo o que o modelo lhe envia.
Portanto, o servidor tem um modo --http, e você coloca um túnel na frente dele:
# terminal 1 — serve MCP sobre HTTP em localhost:3333
FIVEDOLLARFOOTBALL_API_KEY=fb_live_your_key npx -y football-api-mcp --http --token pick-a-secret
# terminal 2 — exponha-o (cloudflared mostrado; ngrok funciona da mesma forma)
cloudflared tunnel --url http://localhost:3333
cloudflared imprime uma URL https://something.trycloudflare.com. No ChatGPT, abra Plugins na barra lateral, clique no + (Criar aplicativo), escolha URL do servidor, cole https://something.trycloudflare.com/mcp/pick-a-secret, defina a Autenticação como Sem Auth, marque o reconhecimento, Criar, e então Conectar. O ChatGPT busca a lista de ferramentas imediatamente, então um erro de digitação na URL falha logo ali, em vez de no meio da conversa.
Esse --token não é decoração. O ChatGPT não consegue anexar cabeçalhos personalizados às suas solicitações, então um segredo no caminho da URL é a única coisa que separa "qualquer um que adivinhar a URL do túnel" e sua chave de API. Escolha algo longo.
Parte 2: como é usar
Alguns prompts que funcionam no nível gratuito:
"Quais partidas da Premier League estão acontecendo hoje, e quais são os placares?"
O assistente chama get_fixtures (hoje, UTC), percebe que precisa de um id de liga, chama search_leagues com "Premier League", e então filtra. Você recebe uma lista legível com placares ao vivo, contagens de escanteios e cartões.
"Mostre-me as classificações de escanteios da Premier League nesta temporada."
get_standings com type: "corner" — uma tabela classificada por escanteios em vez de pontos. Este é o tipo de pergunta que é complicada na maioria das APIs de futebol e trivial aqui, porque o modelo de dados tem tabelas de escanteios como uma coisa de primeira classe.
"Como as odds 1x2 mudaram para Arsenal vs Chelsea antes do apito inicial?"
get_team_fixtures para encontrar o id da partida, depois get_odds_history com market: "1x2". Cada preço registrado vem com um timestamp, e o assistente resume a movimentação — o que é uma experiência mais agradável do que o loop em Python no meu post anterior. Note que as odds atuais precisam do plano de $5 e o histórico de ticks do plano de $25; a ferramenta retorna um claro erro insufficient_plan caso contrário, e o assistente explica isso em vez de alucinar números.
A implementação de um servidor MCP pode transformar a forma como assistentes de IA interagem com dados em tempo real, permitindo que empresas brasileiras integrem informações dinâmicas em seus serviços. Isso pode melhorar a experiência do usuário e aumentar a relevância em setores como esportes e entretenimento.

