Webmcp-AN

Numéro de table à l'Hôtel de Lassay
25
Ce contenu est contributif, il n'est pas rédigé par l'Assemblée nationale.
Le contenu de cette page est écrit par les contributeurs du projet depuis le dépôt de code.
À propos du défi
Prototype de pages du site de l'Assemblée nationale en WebMCP, pour permettre à des agents IA d'interagir avec celui-ci de manière simple et sécurisée.
Ce prototype explore l'intégration de WebMCP sur les pages du site de l'Assemblée nationale, afin de rendre celui-ci directement exploitable par des agents IA. Plutôt que de contraindre ces agents à analyser le HTML des pages ou à recourir au scraping — des approches fragiles, coûteuses et sources d'erreurs —, WebMCP expose des outils structurés et documentés directement au niveau de chaque page : recherche de textes législatifs, consultation des amendements, suivi des scrutins, exploration des dossiers, etc.
Cette approche présente un double avantage. Pour les agents, l'interaction devient simple et fiable : les actions disponibles sont explicites, typées et accompagnées de leur contexte d'usage. Pour le site, elle est sécurisée et maîtrisée : c'est l'Assemblée qui définit précisément quelles opérations sont accessibles aux agents, dans quel périmètre et sous quelles conditions, sans jamais exposer plus que nécessaire.
Ce qui a été réalisé pendant le hackathon
Le prototype « WebMCP-ifie » de vraies pages du site de l'Assemblée : le contenu visible reste strictement identique, seul un script déclare des outils auprès de l'agent via l'API navigator.modelContext (avec polyfill lorsque le navigateur ne l'implémente pas encore).
Deux pages sont livrées :
- Page « Présidence de l'Assemblée nationale » — une page réelle du site, enrichie de WebMCP : l'agenda des réunions et la navigation institutionnelle sont exposés comme des outils appelables.
- Page « Comment la page a été WebMCP-ifiée » — une explication pas à pas du code ajouté, pensée comme un tutoriel reproductible pour les équipes du site.
21 outils sont enregistrés auprès de l'agent, organisés en quatre familles :
- Dossiers législatifs :
getLawByKeywords,getLawDetails,getLawMainMeasures,getLawAuthors,getLawsByAuthor,getLawByScrutin - Amendements :
getAmendmentsByLaw,getAmendmentAuthors,getAmendmentsByAuthor - Acteurs :
search_deputes,searchGroups,getDeputiesByGroup - Scrutins et votes :
search_scrutins,getScrutinsByLaw,getScrutinsByAmendment,resolveRelevantScrutin,getGroupPosition,getAllGroupsPositions,getPosition,getPositions
Un soin particulier a été porté à la conception anti-hallucination des outils : getLawMainMeasures ne « résume » pas la loi et n'invente rien, il renvoie uniquement les documents, titres et formules réellement disponibles, à charge pour l'agent de synthétiser à partir de ces éléments sourcés. De même, resolveRelevantScrutin arbitre entre plusieurs scrutins possibles pour une question utilisateur vague, en privilégiant le vote solennel ou final sur l'ensemble du texte, plutôt que de laisser l'agent choisir au hasard.
Ce prototype vise ainsi à démontrer qu'un site institutionnel peut devenir nativement « agent-friendly » tout en conservant le contrôle total sur ses données et ses fonctionnalités, ouvrant la voie à de nouveaux usages : assistants citoyens capables de répondre à des questions sur la procédure législative en cours, outils de veille parlementaire automatisée, ou aide à la navigation dans la masse documentaire produite par l'institution.
Galerie d'images
Documents du défi
Informations du défi
Livrables du défi
Ressources utilisées
Dossiers législatifs de l'Assemblée nationale (législature courante) Assemblée nationaleAmendements déposés à l'Assemblée nationale (législature actuelle) Assemblée nationaleVotes des députés (législature actuelle) Assemblée nationaleDéputés en exercice Assemblée nationaleAgenda des réunions à l'Assemblée nationale (législature courante) Assemblée nationale