Skip to main content
Glama
FFE MCP

FFE MCP

by riadh-mnasri

FFE MCP

Serveur MCP qui permet à Claude d'interroger les données publiques de la Fédération Française des Échecs (echecs.asso.fr) directement en conversation : rechercher un joueur, lister les tournois d'un département, consulter la cadence et le classement d'un tournoi, suivre les résultats d'un joueur ronde par ronde.

Un modèle à copier, pas un service

Comme ecoledirecte-mcp, ce projet n'est pas un service auquel tu te connectes : c'est un programme que tu installes et fais tourner chez toi. Ici, c'est même plus simple : les données FFE sont publiques, donc aucun identifiant à fournir, aucun fichier .env à sécuriser.

Related MCP server: Lichess MCP

Important : API non officielle

La FFE n'expose aucune API publique documentée. Ce serveur scrape les pages HTML publiques d'echecs.asso.fr. Conséquences concrètes :

  • Le format des pages peut changer sans préavis. Si un outil commence à renvoyer une erreur "le site a probablement changé sa mise en page", le parseur (src/domain/ffe-parsers.ts) doit être mis à jour.

  • En cas d'échec du live (site indisponible), chaque outil retombe automatiquement sur le dernier résultat mis en cache (dossier ~/.ffe-mcp/cache/) en signalant qu'il s'agit de données potentiellement périmées.

  • Merci de ne pas appeler les outils en boucle rapprochée : c'est un site public partagé par toute la communauté échiquéenne, pas une API taillée pour l'usage intensif.

Ce qui a été vérifié par capture réelle (2026-09-10)

  • ListeJoueurs.aspx?Action=FFE (POST JoueurNom=<recherche>) : recherche de licencié, colonnes NrFFE / nom / Elo standard + lettre d'origine (F=FIDE, N=national, E=estimé). Testé en direct sur le fichier des licenciés.

  • ListeTournois.aspx?Action=TOURNOICOMITE&ComiteRef=<departement> : liste des tournois d'un département (le ComiteRef FFE correspond au code département pour la France métropolitaine). Testé en direct sur le 92.

  • FicheTournoi.aspx?Ref=<ref> : cadence, nombre de rondes, annonce. Le nom et la ville du tournoi n'y sont volontairement pas extraits (sélecteurs non vérifiés), utiliser lister_tournois pour ces champs.

  • Resultats.aspx?URL=Tournois/Id/<ref>/<ref>&Action=Cl : classement général après la dernière ronde publiée par l'organisateur (pas systématique, dépend du logiciel utilisé côté club).

  • Resultats.aspx?URL=Tournois/Id/<ref>/<ref>&Action=Ga : grille américaine, résultats ronde par ronde d'un joueur précis (recherche par nom exact tel qu'affiché par la FFE).

Ce qui reste à vérifier

  • Les colonnes Elo rapide et blitz de la recherche de joueur (présentes sur la page mais pas encore parsées).

  • Une éventuelle fiche joueur individuelle par NrFFE (historique complet, progression Elo), pas encore identifiée avec certitude.

Outils exposés

Outil

Description

rechercher_joueur

Recherche un joueur par nom, retourne NrFFE + Elo standard

lister_tournois

Liste les tournois homologués d'un département

details_tournoi

Cadence, nombre de rondes, annonce d'un tournoi

classement_tournoi

Classement général après la dernière ronde publiée

resultats_joueur_tournoi

Résultats ronde par ronde d'un joueur dans un tournoi

Stack

  • Node.js + TypeScript, exécuté en local uniquement (pas de serveur HTTP, pas de déploiement)

  • @modelcontextprotocol/sdk, transport stdio

  • zod pour la validation des schémas de sortie

  • vitest pour les tests (fixtures HTML réelles capturées sur echecs.asso.fr)

Installation

git clone https://github.com/riadh-mnasri/ffe-mcp.git
cd ffe-mcp
npm install
npm run build

Connexion à Claude Desktop / Claude Code

Ajouter dans la configuration MCP :

{
  "mcpServers": {
    "ffe": {
      "command": "node",
      "args": ["/chemin/vers/ffe-mcp/dist/index.js"]
    }
  }
}

Développement

npm run dev    # lance le serveur en TypeScript direct (tsx)
npm test       # tests unitaires (parseurs HTML)
npm run build  # compilation TypeScript

Licence

MIT, © 2026 Riadh MNASRI

Available Tools

5 tools
classement_tournoiA

Recupere le classement general publie d'un tournoi FFE apres la derniere ronde jouee, si l'organisateur a publie ses resultats sur echecs.asso.fr (ce n'est pas systematique).

Inputs: ref (required).

details_tournoiA

Recupere la cadence (standard/rapide/blitz), le nombre de rondes et l'annonce d'un tournoi FFE a partir de sa reference (voir lister_tournois pour obtenir une reference).

Inputs: ref (required).

lister_tournoisA

Liste les tournois homologues FFE a venir (ou recents) pour un departement francais donne (comite FFE = code departement, ex. 92 pour les Hauts-de-Seine).

Inputs: departement (required).

rechercher_joueurA

Recherche un joueur dans le fichier des licencies de la Federation Francaise des Echecs (FFE) par nom de famille (ou debut de nom). Retourne le numero FFE (NrFFE) et l'Elo standard publie de chaque joueur trouve.

Inputs: nom (required).

resultats_joueur_tournoiA

Recupere les resultats ronde par ronde (couleur, adversaire, victoire/nulle/defaite) d'un joueur precis dans un tournoi FFE donne, a partir de la grille americaine publiee par l'organisateur.

Inputs: nom (required), ref (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 5 tools

    Disambiguation5/5

    Every tool targets a distinct query: player search, tournament listing, tournament details, tournament standings, and individual player results. There is no meaningful overlap between any two tools.

    Naming Consistency4/5

    All names are lowercase snake_case in French and clearly readable. The slight split between verb-led names (rechercher_joueur, lister_tournois) and noun-led names (details_tournoi, classement_tournoi, resultats_joueur_tournoi) is a minor inconsistency rather than a real problem.

    Tool Count5/5

    Five tools is well-scoped for a read-only French chess federation data server. Each tool earns its place and there is no redundant tooling.

    Completeness4/5

    The set covers the central public workflows: searching players, discovering tournaments, getting tournament metadata, viewing final standings, and looking up individual round-by-round results. Minor gaps such as a full player profile or tournament pairings per round exist, but the core surface is coherent and usable.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables natural language interaction with Lichess chess platform to play games, analyze positions, manage challenges and tournaments, and interact with other players through Claude Desktop.
      28 npm
      MIT
    • A
      license
      A
      quality
      Not graded
      maintenance
      Connects Claude to Lichess for playing chess games, analyzing positions with Stockfish cloud evaluation, and solving puzzles. Supports real-time gameplay including moves, challenges, draw offers, and accessing user profiles and game history.
      28
      28 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to explore player profiles, ratings, game archives, leaderboards, clubs, and puzzles via the Chess.com API.
      2
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables querying Chess.com public data including player profiles, stats, games, and club information through natural language.
      9
      6 npm
      MIT