Skip to content

Serli/iana-mcp-app

Repository files navigation

IA-NA MCP

Serveur MCP (Model Context Protocol) qui expose le programme d'IA-NA 2026 — la 3ème édition de la conférence IA en Nouvelle-Aquitaine (La Rochelle, 3 juin 2026, Centre de Congrès Georges Pernoud) — à un client MCP (ChatGPT, Claude Desktop, etc.). Il fournit des outils pour explorer le programme, savoir quelle session est en cours, consulter les fiches sessions et intervenants, lister les sponsors et partenaires, le tout avec un jeu de widgets visuels (MCP App).

Runtime : Bun (cible Clever Cloud).

Outils MCP exposés

Outil Description Widget
infos_iana Vue d'ensemble : date, lieu, thématique « ADOPTE TON IA », tagline, objectifs, billetterie, organisateurs, compteurs
programme Programme complet du 3 juin 2026 (sessions, pauses, ouvertures), par salle
conf_en_cours Sessions en cours + prochaines, par salle ✅ now-next
conf_a_telle_heure Sessions à une heure donnée
detail_conference Détail d'une session (format, salle, partenaire, intervenants) ✅ conf-card
fiche_speaker Fiche d'un intervenant et ses sessions ✅ speaker-card
recherche_conference Recherche libre (titres, format, salle, partenaire, intervenants)
liste_speakers Liste de tous les intervenants
liste_sponsors Sponsors groupés par tier (Platine, Or, Argent, Bronze)
liste_partenaires Organisateurs + partenaires institutionnels / écosystème

Les outils marqués widget renvoient un structuredContent accompagné d'un resourceUri pointant vers une mini-app HTML embarquée (bundle Vite single-file).

Pré-requis

  • Bun ≥ 1.1 (curl -fsSL https://bun.sh/install | bash)

Installation

bun install

Le postinstall lance automatiquement bun run build qui bundle les 3 widgets dans dist/client/.

Lancer en local

bun run start          # serveur prod sur http://localhost:3000/mcp
bun run start:dev      # hot-reload serveur + widgets
bun run dev            # start:dev + MCP Inspector
bun run inspect        # Inspector seul (serveur déjà lancé)

Dans l'Inspector : transport Streamable HTTP, URL http://localhost:3000/mcp, Connect.

Connecter un client MCP

ChatGPT (Apps SDK)

Paramètres → MCP / Apps → Ajouter un serveur. Transport Streamable HTTP, URL https://<host>/mcp (ou http://localhost:3000/mcp en local).

Claude Desktop / Codex CLI

{
  "mcpServers": {
    "iana": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

Configuration

Variable Défaut Description
PORT 3000 Port d'écoute
NODE_ENV development ⇒ écoute sur 127.0.0.1, sinon 0.0.0.0
CORS_ORIGIN * Origine autorisée
RATE_LIMIT_WINDOW_MS 60000 Fenêtre du rate limiting
RATE_LIMIT_MAX 100 Max requêtes/IP par fenêtre
TRUST_PROXY Express trust proxy (requis derrière un reverse-proxy, ex. Clever)

Données

Toutes les données sont figées dans data/program.json (snapshot du site officiel scrapé une fois). Pour le rebuild entièrement depuis le site :

bun run refresh-data

Le script scripts/refresh-data.ts :

  1. Fetch https://ia-na.fr/ (page statique unique).
  2. Parse le tableau du programme : créneaux horaires, badges → types (Ouverture, Plénière/keynote, Table ronde, Atelier, Conférence, Flash, Session spéciale, Pause), salles (« Session 1 » à « Session 7 »), titres, partenaire associé, et intervenants en texte libre (heuristique tolérante, voir parseSpeakerText).
  3. Parse la section « Organisé par / Nos sponsors / Nos partenaires », les objectifs, la thématique, les infos pratiques (lieu, billetterie, contact, carte) et l'édition précédente (2025).
  4. Écrit data/program.json.

Date de l'événement codée en dur en haut du script (DAY). À éditer si elle change.

Architecture

server/
  index.ts        # Express + Streamable HTTP transport + landing page
  server.ts       # Déclaration du serveur MCP + outils + widgets
  program.ts      # Types + logique métier (chargement, recherche, sessions en cours)
client/
  shared.ts       # Types + helpers DOM communs
  shared.css      # Design system (thème bleu/magenta IA-NA)
  conf-card.{html,ts}     # Widget « fiche session »
  now-next.{html,ts}      # Widget « sessions en cours / à suivre »
  speaker-card.{html,ts}  # Widget « fiche intervenant »
data/
  program.json    # Snapshot complet (1 journée, 22 sessions, 25 intervenants)
scripts/
  refresh-data.ts # Rebuild complet de data/program.json depuis ia-na.fr
dist/             # Sortie de build (généré)

Déploiement Clever Cloud (Bun)

  1. Créer une app Bun.
  2. Variables : PORT (auto-injectée), TRUST_PROXY=1, NODE_ENV=production.
  3. Le postinstall build les widgets ; la commande de lancement (bun run start) est auto-déduite.

Licence

Apache-2.0. Un projet Serli. Données : ia-na.fr.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors