Raccourcis clavier

Appuyez sur ← ou → pour passer d'un chapitre à l'autre

Appuyez sur S ou / pour rechercher dans la documentation

Appuyez sur ? pour afficher cette aide

Appuyez sur Échap pour masquer cette aide

Connecteurs MCP

Un connecteur est un fichier YAML du dossier connectors/ du dépôt. Il déclare un service, sa méthode d'authentification, sa licence et la liste des outils que l'agent peut appeler. Ce chapitre donne les chiffres mesurés le 2026-10-03 et renvoie vers les douze connecteurs décrits dans ce livre.

Ce qui est mesuré

QuoiValeurComment c'est mesuré
Fichiers de connecteurs195ls connectors/*.yaml (dont TEMPLATE.yaml, le gabarit, que le chargeur saute)
Entrées du catalogue métier108catalog-business.json, nombre d'entrées
Entrées au statut available15même fichier, champ status
Entrées au statut coming-soon93même fichier, champ status
Services mcp-* du plan client43container_name: mcp- dans podman-compose.vps2.yml

Les trois premiers chiffres sont aussi ceux du site public. Ils viennent de crates/forge-ui/src/config/chiffres_mesures.rs, fichier généré, daté du 2026-10-03.

Le nombre de fichiers (195) et le nombre d'entrées du catalogue (108) ne se recouvrent pas. Douze entrées du catalogue n'ont pas de fiche YAML : collabora, faster-whisper, gnuhealth, logseq, mywms, openmom, pgadmin, postgresql, property-base, timescaledb, valkey et une entrée de détection d'intrusion. À l'inverse, 99 fichiers YAML n'ont pas d'entrée au catalogue (gabarit compris).

Un connecteur du catalogue au statut coming-soon est annoncé, pas ouvert. Le statut est une donnée du catalogue, il ne dit rien de l'état du fichier YAML.

Comment un connecteur est chargé

Au démarrage, forge-api lit le dossier connectors/, remplace les variables ${VAR:-défaut} par l'environnement, puis enregistre un connecteur par fichier. Le moteur HTTP sert les fichiers à authentification HTTP. Le connecteur odoo a son propre client XML-RPC. Le connecteur calrs passe par une commande dans un conteneur (voir CalRS). Source : connectors/README.md et crates/forge-mcp/src/connector/catalogue.rs.

Dans tools/list, le nom d'un outil des connecteurs HTTP est préfixé par l'identifiant du connecteur : l'outil get_visits du fichier matomo.yaml s'appelle matomo.get_visits (moteur HTTP des connecteurs). Les chapitres suivants donnent les noms tels qu'ils sont écrits dans les fichiers, sans ce préfixe.

Chaque connecteur déclare sa conformité. Le registre le refuse si gdpr_compliant vaut false ou si data_residency n'appartient pas à la liste eu, eu-west, eu-central, france, germany, finland, netherlands, ireland, self-hosted (connectors/README.md, section « Gate EU / Gaia-X »). Cette règle porte sur ce que le fichier déclare. Elle ne prouve pas où tourne l'instance du client.

Une seconde règle décide du dispatch : seuls les identifiants de la liste ALLOWED_MCP_SERVERS (liste des serveurs autorisés du code) sont exécutés, et tools/list n'affiche que leurs outils. Mesuré le 2026-10-03 : sur les 194 fichiers hors gabarit, 98 sont dans cette liste et 96 n'y sont pas. dolibarr et freescout font partie des 96 (un test du dépôt le verrouille) : leur fiche se charge, leurs outils ne sont pas appelables tant que l'identifiant n'est pas ajouté à la liste.

Authentification

Types d'authentification présents dans les 195 fichiers, mesurés le 2026-10-03 : aucune (73), bearer (52), clé d'API en en-tête (33), basic (20), jeton de connexion (5), jeton en paramètre d'URL (4), oauth2 (3), et quelques cas particuliers. Deux fichiers (odoo, calrs) n'ont pas de bloc auth parce que leur transport n'est pas HTTP.

Les chapitres suivants nomment les variables que chaque fichier lit. Côté locataire, les valeurs sont saisies comme identifiants de la plateforme et stockées chiffrées en base. OpenBao est un mode optionnel : une organisation qui y a enregistré son AppRole voit ses secrets lus depuis OpenBao en priorité. Sans cet AppRole, OpenBao n'est jamais contacté (résolution des identifiants du code).

Les douze connecteurs décrits ici

Compte d'outils mesuré dans chaque YAML le 2026-10-03. Pour odoo, le YAML ne déclare que 6 outils ; les 711 outils nommés vivent dans le registre Rust.

ConnecteurOutilsLecture seuleAuthentificationStatut au catalogueService dans le plan clientAutorisé au dispatch
Authentik442ouibeareravailablenonoui
CalRS7sans objetaucune (commande dans le conteneur)availableouioui
Dolibarr263ouiclé en en-têtecoming-soonnonnon
Forgejo482nonbearercoming-soonoui, pour le poste de développementoui
FreeScout15ouiclé en en-têtecoming-soonnonnon
Listmonk76nonbasiccoming-soonouioui
Matomo113ouijeton en paramètreavailableouioui
n8n49nonclé en en-têteavailableouioui
Nextcloud167nonbasicavailablenonoui
Odoo711 (registre)nonXML-RPCavailableoui, 17 servicesoui
Rocket.Chat338nonclé en en-tête et identifiantcoming-soonnonoui
Typesense79nonclé en en-têtecoming-soonouioui

« Lecture seule » veut dire que tous les outils du YAML utilisent la méthode GET. « Service dans le plan client » veut dire qu'un container_name: mcp-… existe dans podman-compose.vps2.yml. Une réponse « non » ne dit pas que le service est inutilisable : le client peut apporter sa propre instance. « Autorisé au dispatch » veut dire que l'identifiant figure dans ALLOWED_MCP_SERVERS.

Les outils d'écriture sont classés par leur nom (classification de sécurité des outils, dans le code). Un nom qui porte drop, truncate, erase, purge, wipe, ou qui se termine par unlink ou destroy, n'est jamais exécuté par l'agent. Un nom qui porte delete, cancel, refund, pay, charge, transfer, remove ou revoke n'est exécuté qu'après une autorisation humaine explicite. Les outils create, update et send passent sans cette étape. Les chapitres qui suivent écrivent « supprime » pour ce que le fichier déclare ; ce que l'agent exécute seul est plus étroit.

Le catalogue métier

Le catalogue est servi par l'API sous /api/v1/mcp/catalog-business, pour un utilisateur authentifié. GET /api/v1/mcp/catalog-business renvoie les 108 entrées embarquées dans le binaire, avec un filtre optionnel par catégorie. GET /api/v1/mcp/catalog-business/{id}/registry-tools liste les outils que le registre connaît pour un connecteur. Les routes de cycle de vie (déployer, démarrer, arrêter, secrets) répondent encore 503 avec le marqueur feature_pending : l'adaptateur Podman n'est pas branché (crates/forge-api/src/routes/mcp_catalog_business.rs, commentaire de tête).

Les entrées sont rangées en 34 catégories. Par taille décroissante, au 2026-10-03 : Communication (7 entrées), puis CRM & ERP, DevOps, Monitoring et Database (5 entrées chacune).

Les connecteurs de données publiques de l'UE

Dix-huit fichiers portent un nom de secteur : agriculture, culture, cybersecurity, education, employment, energy, environment, fintech, foodsafety, governance, innovation, industry, legaltech, maritime, sme, health, spatial, quantum. Chacun interroge le portail de données ouvertes de l'UE, sans authentification, avec 28 à 30 outils. Un dix-neuvième, broadcast, est un connecteur à jeton avec 2 outils.

Utiliser un connecteur

  1. Vérifiez dans le tableau ci-dessus que la colonne « Autorisé au dispatch » vaut « oui » : sinon les outils ne sont pas appelables.
  2. Ayez une instance du service : la vôtre, ou celle du plan client si la colonne « Service dans le plan client » vaut « oui ».
  3. Enregistrez les identifiants : page Identifiants (/credentials) de l'application, fiche du connecteur. Le chapitre du connecteur donne le nom de la fiche et ses champs (CalRS n'a rien à saisir). Connecter Odoo à la passerelle MCP déroule ce parcours de bout en bout.
  4. Posez la question dans le chat, ou appelez l'outil par tools/call (Routes MCP).

Ajouter un connecteur

Le tutoriel Créer votre premier connecteur MCP décrit la forme d'un fichier YAML.

Voir aussi