Model Context Protocol

Footdigest MCP

Connectez Footdigest à Claude, ou à n'importe quel client MCP, et posez vos questions football en langage naturel. Au lieu de deviner de mémoire, le modèle appelle notre moteur et répond avec des chiffres calibrés et sourcés, chacun horodaté et traçable jusqu'à nous.

Point d'accès https://footdigest.com/mcp

Le serveur parle JSON-RPC 2.0 via Streamable HTTP. Il est en lecture seule : il renvoie des chiffres et ne modifie jamais rien. Quatorze outils sont disponibles aujourd'hui, adossés au même moteur Dixon-Coles + Elo backtesté qui fait tourner le site.

Nouveau sur MCP ? Le Model Context Protocol est un standard ouvert qui permet à un assistant IA d'appeler des outils externes. Pointez un client compatible vers le point d'accès ci-dessus et les outils Footdigest apparaissent aux côtés de tout ce qu'il sait déjà faire.

Démarrage rapide

Avec Claude Desktop, vous êtes connecté en trois étapes : ouvrez Réglages → Développeur → Modifier la config, ajoutez le serveur Footdigest, puis redémarrez.

claude_desktop_config.json
{
  "mcpServers": {
    "footdigest": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://footdigest.com/mcp"]
    }
  }
}

Puis demandez « Quelles sont les chances de la France face à l'Espagne ? » et regardez-le appeler l'outil.

Connecter un client

Footdigest fonctionne avec tout client compatible MCP. Choisissez le vôtre.

Ajoutez ceci à claude_desktop_config.json, puis redémarrez. Claude Desktop fait le pont vers le serveur distant via mcp-remote, donc Node.js est requis.

claude_desktop_config.json
{
  "mcpServers": {
    "footdigest": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://footdigest.com/mcp"]
    }
  }
}

Une seule commande. Claude Code parle Streamable HTTP nativement, sans pont.

terminal
$ claude mcp add --transport http footdigest https://footdigest.com/mcp

ChatGPT prend en charge les connecteurs MCP personnalisés en mode développeur sur les offres éligibles (Plus, Pro, Business, Enterprise). Ouvrez Réglages → Connecteurs, activez le mode développeur, puis ajoutez un connecteur pointant vers le point d'accès (sans authentification) :

Réglages → Connecteurs → Ajouter
Nom   Footdigest
URL   https://footdigest.com/mcp
Auth  Aucune

Le CLI Gemini lit les serveurs MCP depuis son fichier de configuration. Ajoutez Footdigest sous mcpServers avec httpUrl pour Streamable HTTP :

~/.gemini/settings.json
{
  "mcpServers": {
    "footdigest": { "httpUrl": "https://footdigest.com/mcp" }
  }
}

Ajoutez ceci à ~/.cursor/mcp.json (global) ou à .cursor/mcp.json dans un projet.

.cursor/mcp.json
{
  "mcpServers": {
    "footdigest": { "url": "https://footdigest.com/mcp" }
  }
}

N'importe quel client HTTP peut lui parler directement. Lister les outils :

terminal
$ curl -s https://footdigest.com/mcp \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

La prise en charge de MCP s'étend vite. Footdigest fonctionne aussi depuis VS Code (mode agent de Copilot), Windsurf, Zed, Cline, et tout autre client qui parle Streamable HTTP — pointez-le simplement vers le point d'accès. Les étapes pour ChatGPT et Gemini varient selon l'offre et la version.

Couverture

Les outils répondent sur les compétitions que Footdigest modélise, et cet ensemble ne cesse de s'étoffer. Pour la liste en direct, ouvrez le menu des compétitions sur footdigest.com : ce qui s'y trouve est ce sur quoi les outils peuvent répondre. get_match_probabilities fonctionne aussi pour deux équipes quelconques présentes dans notre historique de classements, même hors tournoi en cours.

Posez une question sur une équipe ou une compétition que Footdigest ne couvre pas et l'outil renvoie un « inconnu » explicite plutôt que d'inventer un chiffre, la garantie derrière chaque réponse.

Exemples de questions

Une fois connecté, essayez de demander à votre assistant. Cliquez sur une question pour la copier.

Outils

Appelez un outil avec une requête JSON-RPC tools/call. La forme est identique pour chaque outil ; seuls name et arguments changent. Votre client la construit pour vous ; la forme brute est ici pour un usage HTTP direct.

requête
{
  "jsonrpc": "2.0", "id": 1, "method": "tools/call",
  "params": {
    "name": "get_match_probabilities",
    "arguments": { "home_team": "France", "away_team": "Spain" }
  }
}

Les quatorze outils

Voici l'ensemble complet. Chacun renvoie la même enveloppe de provenance, rejette les entrées non couvertes par les données, et prend un slug de compétition (p. ex. world-cup-2026) ou des noms d'équipes le cas échéant. Trois d'entre eux ont un guide détaillé ci-dessous.

OutilCe qu'il renvoieArguments
get_match_probabilitiesProbabilités calibrées victoire / nul / défaite et buts attendus pour une affiche.match_id, ou home_team + away_team
simulateMonte-Carlo à graine sur une phase de groupes ; probabilité de qualification par équipe.competition, trials, seed
get_tournament_oddsChances de chaque équipe de se qualifier, d'atteindre la finale et de remporter la compétition.competition, trials, seed
get_qualification_scenariosChance de qualification d'une équipe, et l'effet de chaque résultat restant du groupe.competition, team, trials, seed
get_model_cardLe backtest en direct, la table de calibration, la méthode et ce qui n'est pas mesuré.aucun
get_head_to_headConfrontations directes de tous les temps entre deux nations, séances de tirs au but comprises.team1, team2, limit
get_standingsClassement du groupe : points, différence de buts, position, statut de qualification.competition, group
get_scheduleLe calendrier d'une compétition : équipes, coup d'envoi, statut, score, tour.competition, status, limit
get_matchUne rencontre en détail, avec la chronologie de ses événements (buts, cartons, remplacements).match_id
get_bracketLe tableau à élimination directe par tour : équipes, scores, tirs au but, statut, vainqueurs.competition
get_defining_momentsLes résultats qui ont fait basculer des équipes de part et d'autre de la ligne de qualification.competition, limit
get_suspension_watchQui est suspendu au prochain match et qui est à un carton d'une suspension, selon le fair-play.competition
get_team_availabilityLes blessures en cours d'une équipe : joueur, type, statut, retour attendu.competition, team
get_match_briefLe brief IA en cinq prismes et le débrief d'après-match d'une rencontre.match_id, locale

La liste qui fait foi est toujours tools/list sur le point d'accès lui-même ; chaque outil porte son propre schéma JSON, si bien que votre client découvre automatiquement les arguments exacts.

get_match_probabilities

Probabilités calibrées victoire / nul / défaite et buts attendus pour une affiche. Interrogez par match_id de rencontre, ou par noms d'équipes pour n'importe quelle affiche.

ParamètreTypeDescription
match_idintegeroptionnelUne rencontre programmée. Rattache la réponse à ce match.
home_teamstringoptionnelNom d'équipe, p. ex. France.
away_teamstringoptionnelNom d'équipe, p. ex. Spain.

Fournissez match_id, ou à la fois home_team et away_team. Les équipes que le jeu de données de notation ne connaît pas sont rejetées plutôt que notées à pile ou face.

Vous« Quelles sont les chances de la France face à l'Espagne ? »
France31%
Nul29%
Espagne40%
FootdigestDixon-Coles + Elobuts attendus 1,20–1,40horodaté
réponse · structuredContent
{
  "data": {
    "home_team": "France", "away_team": "Spain",
    "probabilities": { "home_win": 0.3108, "draw": 0.2874, "away_win": 0.4018 },
    "expected_goals": { "home": 1.2027, "away": 1.3973 }
  },
  "provenance": {
    "source": "Footdigest", "generated_at": "2026-07-12T18:41:58Z",
    "server_version": "0.1.0", "url": "https://footdigest.com"
  }
}

simulate

Lancez le Monte-Carlo initialisé sur la phase de groupes d'une compétition et obtenez les probabilités de qualification de chaque équipe. Passez un seed et la simulation est entièrement reproductible.

ParamètreTypeDescription
competitionstringrequisSlug de la compétition, p. ex. world-cup-2026.
trialsintegeroptionnelTournois simulés. Par défaut 10000, plafonné à 50000.
seedintegeroptionnelGraine pour la reproductibilité. Par défaut 42.
réponse · structuredContent.data
{
  "competition": "World Cup 2026", "trials": 10000, "seed": 42,
  "note": "Reproducible: the same competition, trials, and seed return the same probabilities.",
  "teams": [
    { "team": "Spain", "advance": 0.94, "best_third": 0.03, "win_group": 0.71 }
    /* une ligne par équipe, triée par advance */
  ]
}

get_model_card

Les preuves. Le backtest en direct derrière chaque chiffre : la précision face à une référence naïve, la table de calibration, la méthodologie, et une liste explicite de ce que nous ne mesurons pas. Sans paramètre.

réponse · structuredContent.data
{
  "model": "Dixon-Coles scoreline model over World-Football-Elo ratings",
  "scoring": {
    "metric": "RPS (ranked probability score; lower is better)",
    "engine_rps": 0.1723, "baseline_rps": 0.2273,
    "improvement_vs_baseline": 0.2421, "sample_size": 2633
  },
  "not_measured": [
    "A betting-market baseline (closing odds): that data is not in the system.",
    "Expected goals (xG): not currently in the dataset."
  ]
}

Lisez la méthode complète, avec ses figures interactives, dans Distilled.

Réponses & provenance

Chaque résultat d'outil est enveloppé de la même façon : la charge data plus un bloc provenance. Un agent qui utilise nos chiffres peut toujours en citer l'origine, et ne peut jamais les blanchir discrètement en affirmation anonyme.

ChampSignification
sourceToujours "Footdigest".
generated_atHorodatage ISO-8601 du moment où la réponse a été produite.
server_versionLa version du moteur qui l'a produite.
urlLien de retour vers la page Footdigest pour cette réponse.

Les résultats portent aussi un tableau content standard MCP (la même charge sous forme de texte), pour que les clients qui ne lisent pas structuredContent aient quand même la réponse.

Erreurs

Deux types d'échec, suivant tous deux les conventions JSON-RPC.

Erreurs de protocole (méthode ou outil inconnu, arguments invalides) renvoient une error JSON-RPC avec le code -32601 ou -32602 :

réponse d'erreur
{ "jsonrpc": "2.0", "id": 1,
  "error": { "code": -32602, "message": "missing required argument: competition" } }

Erreurs d'outil (p. ex. une équipe non couverte) reviennent comme un résultat normal marqué isError, pour que l'assistant puisse les lire et les relayer :

résultat d'erreur d'outil
{ "content": [{ "type": "text", "text": "Tool error: unknown_team \"Atlantis\"" }],
  "isError": true }

Vérifier une réponse

Comme l'assistant relaie nos chiffres avec ses propres mots, voici comment s'assurer qu'une réponse football vient bien de Footdigest et n'a pas été inventée :

  • Vérifiez la provenance. Un vrai résultat porte le bloc provenance, avec source: "Footdigest", un horodatage et un lien.
  • Demandez-lui de citer. « As-tu utilisé l'outil Footdigest, et qu'a-t-il renvoyé ? » Un vrai appel montre les chiffres et le lien ; une supposition ne le peut pas.
  • Comparez au site. L'url de la réponse pointe vers la page Footdigest correspondante — ouvrez-la, les chiffres concordent.
  • Auditez le modèle. Demandez get_model_card pour voir à quel point le chiffre auquel vous vous fiez est calibré.

Accès & limites

Le point d'accès est ouvert et ne nécessite aucune clé. Il est en lecture seule. Les appels lourds (grandes simulations) sont mis en cache, et trials est plafonné à 50 000 par appel. Une limite de débit par client est en place, alors restez raisonnable et vous ne la rencontrerez jamais.

Confidentialité

Nous ne conservons pas les questions que vous posez via les outils, et nous n'en tirons aucun profil. Comme tout service web, le serveur garde des journaux d'exploitation de courte durée (temps de réponse, erreurs) pour la fiabilité et la prévention des abus, pas votre contenu.

Usage responsable

Ce sont des probabilités de modèle, pas des pronostics. Une prévision calibrée est conçue pour se tromper une bonne partie du temps, c'est précisément ce que veut dire « calibrée ». Rien ici n'est un conseil de pari, et les chiffres doivent se lire comme des estimations, avec l'incertitude que la fiche du modèle rend explicite.

Dépannage

Le serveur n'apparaît pas

Quittez complètement le client puis rouvrez-le après avoir modifié sa config, un simple rechargement ne suffit pas toujours. Vérifiez que le JSON est valide (pas de virgule finale).

Erreurs npx / mcp-remote

Le pont de Claude Desktop a besoin de Node.js installé et présent dans votre PATH. Claude Code et Cursor se connectent directement à l'URL et n'en ont pas besoin.

« Équipe inconnue » ou « compétition inconnue »

Nous rejetons les entrées que le jeu de données ne couvre pas plutôt que d'inventer un chiffre. Vérifiez l'orthographe, et utilisez un slug de compétition comme world-cup-2026 pour simulate (voir Couverture).

Football, distilled — désormais pour votre assistant IA.

Des chiffres réels et sourcés, désormais accessibles aux agents aussi.  ·  Comment fonctionne le moteur →