FluanceLe mouvement qui éveille et apaise

Agent-Ready API

API Fluance

Cette API expose le planning des cours Fluance, le statut d’un pass et la réservation d’une séance. Elle est utilisée par le site et par les outils WebMCP déclarés côté navigateur.

Endpoints principaux

  • GET /api/courses : liste des cours disponibles avec date, heure, lieu et places restantes.
  • GET /api/course-status?courseId=... : statut détaillé d’un cours.
  • GET /api/pass-status?email=... : vérifie si une personne dispose d’un pass actif.
  • POST /api/bookings : crée une réservation, avec ou sans pass, et peut initier un paiement si nécessaire.
  • GET /api/status : endpoint santé léger pour discovery automatisée.

État actuel

  • Les ressources de discovery /.well-known/api-catalog, /.well-known/agent-skills/index.json et /.well-known/mcp/server-card.json sont publiées sur le site public.
  • Les routes publiques same-origin /api/* existent et sont documentées pour les humains, les agents et la discovery automatique.
  • Le frontend de réservation du site n’utilise pas ces routes en production. Il appelle directement les Cloud Functions publiques.
  • Cette décision est volontaire car le site statique est déployé sur GitHub Pages, qui ne prend pas en charge les rewrites nécessaires pour faire fonctionner /api/* comme façade same-origin vers Firebase Functions.
  • Les outils WebMCP peuvent exposer une surface agent prête à l’emploi, mais pour le navigateur public il faut considérer les endpoints Cloud Functions comme la source réelle d’exécution.
  • Les routes /api/* doivent donc être considérées comme une façade documentaire et future-facing, à n’utiliser réellement en production que si un reverse proxy ou une couche edge est ajoutée devant le site.

WebMCP

Les pages Fluance déclarent des outils WebMCP pour :

  • identifier à qui l’approche Fluance peut convenir,
  • lister les cours disponibles,
  • ouvrir le parcours de réservation pour une séance choisie.

Limites connues

  • GitHub Pages ne permet pas d’ajouter des en-têtes HTTP personnalisés sur la homepage. Les vérifications qui attendent des Link headers sur / resteront donc en échec sans proxy, CDN programmable ou migration d’hébergement.
  • GitHub Pages ne permet pas non plus de forcer le type MIME idéal application/linkset+json pour le chemin sans extension /.well-known/api-catalog. Le fichier est publié, mais servi avec un type générique.
  • Le site publie des ressources markdown dédiées pour les agents, mais ne fait pas encore de vraie négociation de contenu sur les pages HTML via Accept: text/markdown.
  • Aucun endpoint OAuth/OIDC de discovery n’est publié pour l’instant, car l’API exposée publiquement ne repose pas encore sur un vrai serveur OAuth/OIDC dédié.
  • Le server card MCP publié décrit la surface WebMCP navigateur. Il ne décrit pas un serveur MCP distant autonome en transport HTTP/SSE.
  • Comme le site public est servi par GitHub Pages, les rewrites et headers Firebase Hosting définis dans firebase.json ne s’appliquent pas au site statique en production.