Architecture d'un endpoint NLWeb, indexation vectorielle, sĂ©curitĂ© des actions agentiques : le guide technique de mise en Ćuvre du niveau Agent-Ready, avec le retour d'expĂ©rience du dĂ©ploiement NLWeb de busony.com.
NLWeb, WebMCP, MCP : guide technique pour rendre votre site actionnable par les agents IA
> En bref : ce guide couvre l'implĂ©mentation technique du niveau Agent-Ready â architecture d'un endpoint NLWeb, indexation vectorielle, structuration Schema.org, et comment articuler NLWeb avec WebMCP et MCP sur une mĂȘme stack. Il complĂšte notre guide sur les 4 niveaux de l'optimisation agentique, qui reste la rĂ©fĂ©rence conceptuelle et stratĂ©gique.
Savoir qu'il faut « devenir agent-ready » ne dit rien de la façon de s'y prendre. Entre la thĂ©orie (SEO â GEO â AEO â Agent-Ready) et la mise en production, il y a un pipeline technique concret : structurer les donnĂ©es, indexer un catalogue, exposer un endpoint, sĂ©curiser les actions. C'est ce pipeline que ce guide dĂ©taille, avec le retour d'expĂ©rience du dĂ©ploiement NLWeb de busony.com.
OĂč se branchent NLWeb, WebMCP et MCP dans votre stack
Les trois protocoles ne sont pas interchangeables â ils rĂ©pondent Ă des besoins diffĂ©rents et se combinent :
| Protocole | OĂč il tourne | Ce qu'il permet | Mode |
|---|---|---|---|
| NLWeb | Backend, endpoint HTTP dédié | Un agent interroge votre contenu en langage naturel et reçoit des résultats structurés | Lecture |
| WebMCP | Navigateur, dans la page | Un agent déclenche une action déjà présente dans votre interface (formulaire, panier, réservation) | Lecture + action, avec session utilisateur |
| MCP | Backend, serveur dédié | Un agent (Claude, GPT) appelle des outils métier structurés hors contexte navigateur | Lecture + action, avec authentification propre |
ConcrĂštement : NLWeb rĂ©pond à « que proposez-vous ? », WebMCP rĂ©pond à « fais-le pour moi dans cette page », MCP rĂ©pond à « fais-le pour moi depuis mon assistant, sans que j'ouvre votre site ». Un site agent-ready mature peut dĂ©ployer les trois, mais NLWeb est gĂ©nĂ©ralement le point d'entrĂ©e le plus rapide Ă mettre en production â c'est celui que nous dĂ©taillons ici.
Prérequis commun : structurer vos données en Schema.org JSON-LD
Avant d'exposer quoi que ce soit Ă un agent, vos donnĂ©es doivent exister sous une forme structurĂ©e exploitable â pas seulement dans du HTML habillĂ© de CSS. Schema.org en JSON-LD est le format pivot que NLWeb, les moteurs GEO et la plupart des agents savent lire nativement.
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Audit SEO & GEO 360°",
"description": "Audit complet de votre position sur les 4 niveaux de l'optimisation agentique : SEO, GEO, AEO, Agent-Ready.",
"provider": { "@type": "Organization", "name": "Busony", "url": "https://busony.com" },
"areaServed": "France",
"offers": {
"@type": "Offer",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
}
}C'est cette mĂȘme structure â nom, description, offre, disponibilitĂ© â qui alimente ensuite l'index NLWeb, les tools WebMCP et les outils MCP. Un seul travail de structuration, trois protocoles qui en hĂ©ritent.
Déployer un endpoint NLWeb : architecture et implémentation
Le principe : indexation vectorielle de votre catalogue
NLWeb ne renvoie pas du HTML : il renvoie des rĂ©sultats structurĂ©s classĂ©s par pertinence, Ă partir d'une question en langage libre. Pour ça, chaque service, produit ou contenu de votre site doit ĂȘtre transformĂ© en vecteur (embedding) et stockĂ© dans une base vectorielle interrogeable en quelques millisecondes.
Le pipeline typique :
1. Extraction : chaque service/produit/page devient un document structurĂ© (titre, description, catĂ©gorie, mĂ©tadonnĂ©es). 2. Embedding : ce document est transformĂ© en vecteur numĂ©rique via un modĂšle d'embedding. 3. Indexation : le vecteur est stockĂ© dans un moteur vectoriel â busony.com utilise Qdrant â avec les mĂ©tadonnĂ©es associĂ©es. 4. RequĂȘte : la question de l'agent est elle-mĂȘme transformĂ©e en vecteur, comparĂ©e Ă l'index, et les rĂ©sultats les plus proches sont renvoyĂ©s avec un score de pertinence.
L'endpoint de requĂȘte
Un endpoint NLWeb minimal expose une seule route, appelée en GET avec la question en paramÚtre :
GET /ask?query=services+pour+PME+exportatrice
Réponse (200 OK) :
{
"query": "services pour PME exportatrice",
"results": [
{ "name": "Exportik", "score": 94, "type": "Service", "url": "/fr/exportik" },
{ "name": "SEO-GEO pour PME export", "score": 91, "type": "Service", "url": "/fr/secteurs/export" },
{ "name": "Agentic AI Optimization", "score": 87, "type": "Service", "url": "/fr/ai-agents/agentic-optimization" }
]
}CĂŽtĂ© implĂ©mentation, sur une stack Next.js, ça se rĂ©sume Ă une route d'API qui reçoit la requĂȘte, l'embed, interroge le moteur vectoriel et formate la rĂ©ponse :
// app/api/ask/route.js â exemple simplifiĂ©
export async function GET(request) {
const query = new URL(request.url).searchParams.get('query');
const queryVector = await embed(query); // mĂȘme modĂšle d'embedding que l'indexation
const matches = await vectorDB.search(queryVector, { // Qdrant, Pinecone, pgvector...
limit: 10,
scoreThreshold: 0.5,
});
return Response.json({
query,
results: matches.map(m => ({
name: m.payload.name,
score: Math.round(m.score * 100),
type: m.payload.type,
url: m.payload.url,
})),
});
}Scoring de pertinence : oĂč mettre le seuil
Un score de pertinence sert Ă filtrer le bruit â inutile de renvoyer un rĂ©sultat Ă 20% de similaritĂ©, l'agent ne le retiendra pas. Sur busony.com, les rĂ©sultats affichĂ©s se situent entre 85 et 95 : un seuil rĂ©aliste pour un catalogue de taille moyenne (15 services) oĂč chaque entrĂ©e est bien diffĂ©renciĂ©e. Sur un catalogue e-commerce de plusieurs milliers de rĂ©fĂ©rences, le seuil doit souvent ĂȘtre plus permissif (60-70%) pour ne pas sur-filtrer des variantes de produits proches.
Ătude de cas : le dĂ©ploiement NLWeb de busony.com
busony.com est en production sur NLWeb depuis juin 2026 : 15 services indexĂ©s dans Qdrant, scores de pertinence 85â95, rĂ©ponses en moins de 200ms. Le dĂ©ploiement initial â indexation du catalogue de services, mise en place de l'endpoint, tests de requĂȘtes â a reprĂ©sentĂ© une journĂ©e de travail pour un premier POC fonctionnel. La maintenance ensuite consiste Ă rĂ©-indexer Ă chaque ajout ou modification de service, pour que l'index ne diverge jamais du contenu rĂ©ellement publiĂ© sur le site.
Bonnes pratiques de maintenance
- RĂ©-indexation automatique : dĂ©clenchĂ©e Ă chaque publication ou modification de contenu, pas seulement en batch nocturne â un agent qui reçoit une offre expirĂ©e ou un prix obsolĂšte nuit Ă la confiance.
- GranularitĂ© fine : indexer au niveau du service ou du produit, pas de la page entiĂšre â un agent cherche une rĂ©ponse prĂ©cise, pas un document de 2000 mots Ă rĂ©sumer lui-mĂȘme.
- MĂ©tadonnĂ©es de filtrage : catĂ©gorie, zone gĂ©ographique, disponibilitĂ© en mĂ©tadonnĂ©es permet Ă l'agent de filtrer sans requĂȘte supplĂ©mentaire.
- Monitoring des requĂȘtes entrantes : logger les questions posĂ©es par les agents rĂ©vĂšle des intentions de recherche que votre contenu ne couvre pas encore.
Exposer des actions avec WebMCP
NLWeb couvre la lecture â WebMCP couvre l'action dĂ©clenchĂ©e depuis le navigateur, dans la session de l'utilisateur (ajout au panier, rĂ©servation, soumission de formulaire), via l'API navigator.modelContext.registerTool(). C'est un protocole encore en DevTrial (Chrome 146), avec un modĂšle de sĂ©curitĂ© spĂ©cifique â same-origin, CSP, confirmation utilisateur obligatoire pour les actions sensibles. Nous avons documentĂ© son implĂ©mentation en dĂ©tail, avec exemples de code, dans notre guide WebMCP dĂ©diĂ©.
Connecter des agents via un serveur MCP
Pour qu'un agent Claude ou compatible interagisse avec vos systĂšmes sans jamais ouvrir votre site â recherche de disponibilitĂ©, prĂ©paration de devis, interrogation de votre base de connaissances â il faut un serveur MCP dĂ©diĂ©, backend, avec sa propre authentification (OAuth 2.1 ou clĂ©s API). MCP rĂ©pond Ă un besoin diffĂ©rent de WebMCP : il ne dĂ©pend pas d'une page ouverte dans un navigateur. Le positionnement de MCP face aux autres protocoles agentiques est dĂ©taillĂ© dans notre article MCP vs UDP.
Sécuriser la couche agent : checklist technique
Exposer des données et des actions à des agents autonomes change le modÚle de menace. Quelques principes à appliquer avant toute mise en production :
- Distinguer lecture, recommandation et exécution : un endpoint qui renvoie des informations ne doit jamais partager son niveau de permission avec un endpoint qui déclenche une action réelle.
- Authentification et scopes par action : chaque outil exposé (NLWeb, WebMCP, MCP) doit avoir ses propres permissions, pas un accÚs global à toute l'API.
- Validation humaine sur les actions sensibles : paiement, annulation, modification de donnĂ©es personnelles â une confirmation explicite reste nĂ©cessaire, mĂȘme si l'agent est autorisĂ© Ă initier l'action.
- Rate limiting dĂ©diĂ© aux agents : le trafic agentique a un profil diffĂ©rent du trafic humain (requĂȘtes plus frĂ©quentes, plus rĂ©guliĂšres) â un rate limiting mal calibrĂ© casse l'expĂ©rience agent ou laisse la porte ouverte Ă l'abus.
- Logs d'audit par agent et par action : en cas d'anomalie, pouvoir retracer quel agent a fait quelle requĂȘte, Ă quel horodatage, avec quel rĂ©sultat.
- Synchronisation temps rĂ©el des donnĂ©es sensibles : prix, stock, disponibilitĂ© â un agent qui transmet une information obsolĂšte Ă son utilisateur nuit Ă votre marque autant qu'Ă sa confiance dans l'agent.
Checklist de déploiement technique
- Données structurées en Schema.org JSON-LD pour chaque service ou produit
- Pipeline d'indexation (extraction â embedding â base vectorielle) documentĂ© et automatisĂ©
- Endpoint NLWeb testĂ© avec un jeu de requĂȘtes reprĂ©sentatives, scores de pertinence validĂ©s
- Ré-indexation automatique déclenchée à chaque publication de contenu
- Actions sensibles exposées via WebMCP ou MCP protégées par confirmation humaine
- Authentification et scopes définis par outil, pas par accÚs global
- Rate limiting et logs d'audit spécifiques au trafic agentique
- Monitoring des requĂȘtes entrantes pour identifier les intentions de recherche non couvertes
Conclusion
Le niveau Agent-Ready n'est pas une fonctionnalitĂ© qu'on coche une fois â c'est une infrastructure qui se maintient, se rĂ©-indexe et se sĂ©curise en continu, au mĂȘme titre qu'un site web classique. La bonne nouvelle : la brique la plus rentable Ă dĂ©ployer en premier, un endpoint NLWeb, ne demande ni refonte du site ni changement d'architecture profond â juste un pipeline d'indexation propre et un endpoint bien conçu.
Busony dĂ©ploie NLWeb, prĂ©pare WebMCP et connecte MCP pour ses clients â sur la base de ce que nous avons construit et mesurĂ© pour busony.com lui-mĂȘme.