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é
| Quoi | Valeur | Comment c'est mesuré |
|---|---|---|
| Fichiers de connecteurs | 195 | ls connectors/*.yaml (dont TEMPLATE.yaml, le gabarit, que le chargeur saute) |
| Entrées du catalogue métier | 108 | catalog-business.json, nombre d'entrées |
Entrées au statut available | 15 | même fichier, champ status |
Entrées au statut coming-soon | 93 | même fichier, champ status |
Services mcp-* du plan client | 43 | container_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.
| Connecteur | Outils | Lecture seule | Authentification | Statut au catalogue | Service dans le plan client | Autorisé au dispatch |
|---|---|---|---|---|---|---|
| Authentik | 442 | oui | bearer | available | non | oui |
| CalRS | 7 | sans objet | aucune (commande dans le conteneur) | available | oui | oui |
| Dolibarr | 263 | oui | clé en en-tête | coming-soon | non | non |
| Forgejo | 482 | non | bearer | coming-soon | oui, pour le poste de développement | oui |
| FreeScout | 15 | oui | clé en en-tête | coming-soon | non | non |
| Listmonk | 76 | non | basic | coming-soon | oui | oui |
| Matomo | 113 | oui | jeton en paramètre | available | oui | oui |
| n8n | 49 | non | clé en en-tête | available | oui | oui |
| Nextcloud | 167 | non | basic | available | non | oui |
| Odoo | 711 (registre) | non | XML-RPC | available | oui, 17 services | oui |
| Rocket.Chat | 338 | non | clé en en-tête et identifiant | coming-soon | non | oui |
| Typesense | 79 | non | clé en en-tête | coming-soon | oui | oui |
« 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
- Vérifiez dans le tableau ci-dessus que la colonne « Autorisé au dispatch » vaut « oui » : sinon les outils ne sont pas appelables.
- Ayez une instance du service : la vôtre, ou celle du plan client si la colonne « Service dans le plan client » vaut « oui ».
- 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. - 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
- Conception des connecteurs MCP : deux types de connecteurs, contrôle de conformité UE et cycle de vie
- Routes MCP : ouvrir une session et appeler un outil par JSON-RPC
- Routes du catalogue métier : routes du catalogue métier, lecture opérationnelle et cycle de vie prévu
- Utiliser les connecteurs MCP : fiches de connecteurs présentes et consultation du catalogue par l'API
- Tarification : nombre de connecteurs métier inclus dans chaque offre