Bibliothèque Navin
L'écran Bibliothèque Navin vous permet de parcourir les skills, plugins, commandes, agents, préréglages MCP et canaux de la bibliothèque Navin livrée avec la plateforme, de les activer pour un projet, d'installer des serveurs MCP et des canaux avec des références de secrets, de démarrer des instances MCP isolées et de gérer les règles que reçoit chaque exécution du projet. Chemin dans le portail : /studio/navin-library. Il sert aux développeurs, aux responsables d'application et aux administrateurs du tenant.
Ce que montre l'écran
En haut : Projet (les projets de GET /v1/projects, choisi par défaut quand il n'y en a qu'un), le badge Bibliothèque x.y.z et un compteur par type (GET /v1/navin-library). Sans aucun projet, l'écran affiche Aucun projet pour l'instant. Les onglets Activé dans le projet, Instances MCP et Règles affichent Choisissez d'abord un projet tant qu'aucun projet n'est choisi. L'onglet choisi est conservé dans l'adresse.
Catalogue
- Les boutons de type avec leurs compteurs : Skills, Plugins, Commandes, Agents, Préréglages MCP, Canaux.
- Rechercher (nom ou description) et, pour les skills, plugins et préréglages MCP, Catégorie (Toutes les catégories ou une catégorie).
- Un tableau (
GET /v1/navin-library/{kind}) avec Nom, Description, Catégorie, Version et un menu de ligne : Activer dans le projet (ou Déjà actif) pour les skills, plugins, commandes et agents ; Installer pour les préréglages MCP et les canaux. - Un clic sur une ligne ouvre un panneau latéral (
GET /v1/navin-library/{kind}/{name}) : description, catégorie, version, empreinte, le bouton Activer dans le projet ou Installer, puis SKILL.md et Fichiers pour une skill, README.md et plugin.json pour un plugin, Contenu pour une commande ou un agent, Contrat complet pour un préréglage MCP ou un canal.
Activé dans le projet
Lu depuis GET /v1/projects/{project_id}/navin-library :
- Les compteurs par type et la version de la bibliothèque utilisée.
- Activations : Nom, Statut, Type, Apporté par le plugin, Version, Ressource, Date, avec l'action de ligne Retirer.
- Serveurs MCP du projet : Nom, Statut, Préréglage, URL, avec l'action de ligne Accès, et le bouton Synchroniser les serveurs hébergés par le Navin Manager.
- Canaux du projet : Nom, Statut, Type, Préréglage, Référence de l'agent.
MCP
Les cartes des préréglages MCP avec leur nom, leur transport, leur description, leur catégorie, leur hébergement (Hébergé par le Navin Manager, Application de bureau, Service en ligne : adresse interne obligatoire), le badge Non installable au besoin, et Configurer. Configurer ouvre le formulaire Installer nom : Nom du serveur (par défaut <nom>-<projet>), URL du point d'accès (facultative) ou URL du point d'accès (obligatoire) pour un préréglage stdio ou en ligne, Transport (Valeur du préréglage, streamable_http, sse), Outils autorisés (séparés par des virgules), puis les champs du préréglage ; un champ secret porte le badge Référence et n'accepte qu'une référence openbao:// ou env://.
Instances MCP
Lu depuis GET /v1/projects/{project_id}/mcp/instances, rafraîchi toutes les 3 secondes tant qu'une instance est en préparation ou en cours d'arrêt :
- Un avertissement Le Runtime MCP n'est pas activé sur la plateforme quand le runtime est désactivé.
- Modèles : la source du catalogue (catalogue de l'entreprise sur SeaweedFS avec sa version, ou modèles de départ de la plateforme), puis une carte par modèle avec Autorisé ou Non autorisé par la politique, la description, l'image, le transport, les identifiants (Sans identifiants, Référence de secret personnelle, Identifiants de base de données dynamiques) et Activer.
- Instances : le filtre Filtrer par état (Tous les états, En préparation, Prête, En veille, En échec, En cours d'arrêt, Terminée) et un tableau Modèle, Nom, Statut, Créée, Dernière activité, Expiration, Raison de fin, avec les actions de ligne Journal, Démarrer, Arrêter, Détruire. Un clic sur une ligne ouvre le journal.
- Politique du projet : Modèles autorisés (aucun coché signifie tous les modèles), Hôtes autorisés (noms d'hôtes ou motifs
*.domaine), Rôles de base de données autorisés, Durée d'inactivité (secondes) (60 à 86400, 900 par défaut), Durée de vie maximale (secondes) (300 à 86400, 28800 par défaut), Instances par utilisateur (1 à 20, 3 par défaut), Instances par projet (1 à 200, 20 par défaut), et Enregistrer la politique. - Le panneau Activer nom : Nom de l'instance, Durée d'inactivité (secondes) dans les bornes de la politique, les paramètres du modèle (hôte, liste d'hôtes, nom, rôle de base de données, entier, choix), Référence de secret pour un modèle à secret personnel, Agents autorisés, Outils autorisés (vide signifie tous les outils), Annuler et Activer.
- Le panneau Journal de nom : badge d'état, état des identifiants, erreur, raison de fin ou de veille, Modèle, Génération, Propriétaire, Ressource, URL, Agents autorisés, Outils autorisés, Expiration, et Événements (nom de l'événement, date, acteur, génération, identifiant de trace, détails).
Canaux
Un tableau des canaux de la bibliothèque : Nom, Champs, Diffusion en continu, Site officiel, avec l'action de ligne Configurer. Configurer ouvre Installer le canal nom : Nom du canal, Référence de l'agent (par exemple agent:support-bot), les champs du contrat du canal (texte, entier, oui ou non, liste, choix, référence de secret) et Exigences (une alternative de chaque) sous forme de badges.
Règles
- Règles du projet (
GET /v1/projects/{project_id}/rules) : Nom, Mode, Source, Chemin, Globs, Octets, Date, avec Modifier et Supprimer, et le bouton Nouvelle règle. - Éditeur de règle : Nom, Mode (Permanente, Conditionnelle), Source (
navin,cursor,cursor_legacy,cline,windsurf,copilot), Description, Globs, Contenu, Enregistrer la règle. - Importer depuis un dépôt : les sources de règles reconnues par la bibliothèque, les sélecteurs Fichiers et Dossier, le chemin relatif de chaque fichier choisi (modifiable), Importer et Vider, puis les listes Importées et Ignorés (pas un fichier de règles, vide, trop volumineux).
- Aperçu du prompt (
GET /v1/projects/{project_id}/rules/prompt) : compteurs Permanente et Conditionnelle, empreinte, la section du prompt, et Actualiser.
Actions
| Bouton ou action | Ce qu'il fait | Appel API | Rôles |
|---|---|---|---|
| Projet | Choisit le projet sur lequel travaillent les onglets. | GET /v1/projects | Tout utilisateur connecté |
| Bouton de type, Rechercher, Catégorie | Liste les éléments d'un type avec les filtres. | GET /v1/navin-library/{kind} | Tout utilisateur connecté du tenant |
| Clic sur une ligne du catalogue | Ouvre le panneau de l'élément. | GET /v1/navin-library/{kind}/{name} | Tout utilisateur connecté du tenant |
| Activer dans le projet (menu de ligne ou panneau) | Active une skill, un plugin (avec ses skills, commandes et agents), une commande ou un agent. | POST /v1/projects/{project_id}/navin-library/activations | LIBRARY_WRITERS, relation éditeur sur le projet |
| Installer (ligne d'un préréglage MCP ou d'un canal) | Ouvre l'onglet MCP ou Canaux sur l'élément. | Aucun | Tout le monde |
| Retirer puis Confirmer | Retire une activation ; un plugin emporte ce qu'il a apporté. | DELETE /v1/projects/{project_id}/navin-library/activations/{activation_id} | LIBRARY_WRITERS, relation éditeur sur le projet |
| Synchroniser les serveurs hébergés par le Navin Manager | Crée, met à jour ou désactive les serveurs du projet hébergés par le Navin Manager. | POST /v1/mcp/hosted/sync | tenant_admin |
| Accès puis Enregistrer l'accès | Fixe les utilisateurs et agents autorisés à appeler le serveur via la passerelle MCP (liste vide : tous les membres du projet). | PUT /v1/mcp/servers/{server_id}/access | LIBRARY_WRITERS |
| Configurer (carte MCP) puis Installer | Installe le préréglage MCP comme serveur du projet. | POST /v1/projects/{project_id}/navin-library/mcp-presets/{name}/install | LIBRARY_WRITERS, relation éditeur sur le projet |
| Activer (carte de modèle) puis Activer | Démarre une instance MCP isolée qui vous appartient dans le projet. | POST /v1/projects/{project_id}/mcp/instances | INSTANCE_WRITERS, relation éditeur sur le projet |
| Filtrer par état | Liste les instances dans un état. | GET /v1/projects/{project_id}/mcp/instances | Relation lecteur sur le projet |
| Journal ou clic sur une ligne | Ouvre l'état et les événements de l'instance. | GET /v1/projects/{project_id}/mcp/instances/{instance_id} | Relation lecteur, propriétaire ou administrateur du tenant |
| Démarrer | Redémarre une instance en veille ou en échec (nouvelle génération et nouveaux identifiants). | POST /v1/projects/{project_id}/mcp/instances/{instance_id}/start | Propriétaire de l'instance ou administrateur du tenant |
| Arrêter | Arrête tout de suite une instance active : elle passe en veille et son prochain appel la recrée. | POST /v1/projects/{project_id}/mcp/instances/{instance_id}/stop | Propriétaire de l'instance ou administrateur du tenant |
| Détruire puis Confirmer | Révoque les identifiants, supprime l'instance et ses ressources ; le journal est conservé. | DELETE /v1/projects/{project_id}/mcp/instances/{instance_id} | Propriétaire de l'instance ou administrateur du tenant |
| Enregistrer la politique | Enregistre la politique du Runtime MCP du projet. | PUT /v1/projects/{project_id}/mcp/policy | tenant_admin |
| Configurer (ligne de canal) puis Installer | Crée un canal du projet depuis le contrat du canal. | POST /v1/projects/{project_id}/navin-library/channels/{name}/install | LIBRARY_WRITERS, relation éditeur sur le projet |
| Nouvelle règle | Vide l'éditeur de règle. | Aucun | Tout le monde |
| Modifier ou clic sur une ligne | Charge la règle dans l'éditeur. | Aucun | Tout le monde |
| Enregistrer la règle | Crée ou remplace la règle de ce nom. | PUT /v1/projects/{project_id}/rules/{name} | LIBRARY_WRITERS, relation éditeur sur le projet |
| Supprimer puis Confirmer | Supprime la règle. | DELETE /v1/projects/{project_id}/rules/{name} | LIBRARY_WRITERS, relation éditeur sur le projet |
| Fichiers, Dossier, Vider | Choisit ou vide les fichiers à importer. | Aucun | Tout le monde |
| Importer | Importe les fichiers de règles choisis (200 fichiers au plus). | POST /v1/projects/{project_id}/rules/import | LIBRARY_WRITERS, relation éditeur sur le projet |
| Actualiser | Relit l'aperçu du prompt. | GET /v1/projects/{project_id}/rules/prompt | Relation lecteur sur le projet |
| Annuler, Fermer | Ferme une boîte de dialogue ou un formulaire sans enregistrer. | Aucun | Tout le monde |
Rôles
LIBRARY_WRITERS(platform_admin,tenant_admin,developer,application_owner, dansportal/src/screens/navin-library.tsx) active l'activation, le retrait, l'installation, l'accès, l'enregistrement et l'import de règles ; les autres utilisateurs voient Lecture seule : activer et installer demandent le rôle administrateur du tenant, développeur ou responsable d'application. Le Control Plane contrôleWRITE_ROLES(tenant_admin,developer,application_owner, dansservices/control-plane/src/eai/domains/agents/kit.py) et la relation éditeur sur le projet (services/control-plane/src/eai/domains/navin_library/routes.py) ;platform_adminpasse tous les contrôles de rôle.INSTANCE_WRITERS(platform_admin,tenant_admin,developer) active Activer sur un modèle. Le serveur demandeWRITE_ROLESet la relation éditeur sur le projet (services/control-plane/src/eai/domains/mcp_runtime/routes.py).- Journal, Démarrer, Arrêter et Détruire demandent la relation lecteur sur le projet ; un utilisateur voit et agit sur ses propres instances, un administrateur du tenant sur toutes les instances du projet.
- Enregistrer la politique et Synchroniser les serveurs hébergés par le Navin Manager ne sont actifs que pour
tenant_admin, et le serveur demandetenant_admin. - Lire le catalogue demande seulement un utilisateur connecté du tenant ; lire le projet, les instances et les règles demande la relation lecteur sur le projet.
Tâches courantes
Activer une skill pour un projet
- Choisir le projet. Les activations appartiennent à un projet. Sélectionnez-le dans Projet. Résultat attendu : les onglets ne sont plus vides. En cas d'échec : Aucun projet pour l'instant signifie qu'il faut d'abord créer un projet.
- Trouver la skill. Ouvrez Catalogue, cliquez sur Skills et tapez dans Rechercher. Résultat attendu : les lignes correspondantes. En cas d'échec : modifiez la recherche ou la catégorie.
- La lire. Cliquez sur la ligne pour lire SKILL.md et Fichiers. Résultat attendu : le panneau latéral. En cas d'échec : cliquez sur Réessayer dans le panneau.
- Activer. Cliquez sur Activer dans le projet. Résultat attendu : le message Activé : 1 élément(s) et le bouton Déjà actif. En cas d'échec : un bouton inactif signifie un rôle manquant ou aucun projet.
Installer un serveur MCP depuis un préréglage
- Ouvrir le préréglage. Ouvrez MCP et cliquez sur Configurer sur la carte. Résultat attendu : le formulaire Installer nom. En cas d'échec : Non installable signifie que le préréglage ne peut pas être installé.
- Indiquer le point d'accès. Un préréglage stdio tourne sur un hôte géré par le Navin Manager et un serveur en ligne est interdit : indiquez l'adresse HTTP interne. Renseignez URL du point d'accès. Résultat attendu : aucun message rouge. En cas d'échec : l'URL doit commencer par
http://ouhttps://. - Remplir les champs. Placez le secret dans OpenBao et saisissez sa référence, par exemple
openbao://secret/data/mcp/<nom>#token. Résultat attendu : aucun problème listé. En cas d'échec : un champ secret n'accepte qu'une référenceopenbao://ouenv://. - Installer. Cliquez sur Installer. Résultat attendu : Serveur MCP installé et le serveur dans Activé dans le projet. En cas d'échec : voir Dépannage.
- Restreindre l'accès. Dans Activé dans le projet, utilisez Accès sur le serveur, listez les principaux et cliquez sur Enregistrer l'accès. Résultat attendu : Accès enregistré. En cas d'échec : l'accès au serveur d'une instance MCP est géré par l'instance.
Démarrer une instance MCP isolée
- Vérifier la politique. Le modèle doit être autorisé. Ouvrez Instances MCP et lisez le badge de la carte. Résultat attendu : Autorisé. En cas d'échec : un administrateur du tenant coche le modèle dans Modèles autorisés et clique sur Enregistrer la politique.
- Activer. Cliquez sur Activer, remplissez les paramètres, la Référence de secret si elle est demandée et Agents autorisés. Résultat attendu : aucun problème listé. En cas d'échec : un hôte hors de Hôtes autorisés est refusé.
- Démarrer. Cliquez sur Activer dans le panneau. Résultat attendu : Instance en préparation, puis le statut Prête. En cas d'échec : ouvrez Journal et lisez la raison de l'échec.
- Détruire à la fin. Cliquez sur Détruire puis Confirmer. Résultat attendu : Instance détruite, le journal conservé. En cas d'échec : une instance déjà en cours d'arrêt ne peut pas être détruite de nouveau.
Importer les règles d'un dépôt
- Choisir les fichiers. Cliquez sur Dossier et sélectionnez le dépôt. Résultat attendu : une ligne par fichier avec son chemin relatif. En cas d'échec : plus de 200 fichiers affichent Au plus 200 fichiers par import.
- Vérifier les chemins. Le chemin détermine la lecture d'un fichier (par exemple
.cursor/rules/style.mdc). Corrigez les chemins si besoin. Résultat attendu : des chemins corrects. En cas d'échec : cliquez sur Vider et recommencez. - Importer. Cliquez sur Importer. Résultat attendu : Importé : n règle(s) et les listes Importées et Ignorés. En cas d'échec : un fichier ignoré n'est pas un fichier de règles, est vide ou trop volumineux.
- Lire le prompt. Cliquez sur Actualiser dans Aperçu du prompt. Résultat attendu : la section que reçoit chaque exécution du projet. En cas d'échec : Prompt vide signifie qu'aucune règle n'est enregistrée.
Ne saisissez jamais la valeur d'un secret dans un champ de préréglage, de modèle ou de canal. Seules les références openbao:// ou env:// sont acceptées ; le serveur refuse toute autre valeur.
Dépannage
| Symptôme | Cause | Correction |
|---|---|---|
| Choisissez d'abord un projet | Aucun projet n'est choisi. | Sélectionnez-en un dans Projet. |
Erreur navin_library_unavailable (503) | La bibliothèque livrée ne peut pas être lue. | Vérifiez l'installation du Control Plane. |
Erreur navin_skill_name_taken (409) | Une skill du même nom existe déjà dans le tenant. | Retirez ou renommez la skill existante. |
Erreur mcp_preset_not_installable (409) | Le préréglage ne peut pas être installé. | Choisissez un autre préréglage. |
Erreur mcp_preset_needs_endpoint (409) | Un préréglage stdio demande le point d'accès HTTP qui l'expose. | Renseignez URL du point d'accès (obligatoire). |
Erreur mcp_preset_secret_ref_required ou channel_secret_ref_required (422) | Un champ secret contient une valeur au lieu d'une référence. | Saisissez une référence openbao:// ou env://. |
Erreur channel_field_missing (422) | Une exigence du canal n'est pas remplie. | Remplissez une alternative de chaque exigence orange. |
Erreur mcp_instance_access_managed (409) sur Enregistrer l'accès | Le serveur appartient à une instance MCP. | Renseignez plutôt Agents autorisés sur l'instance. |
Erreur mcp_project_forbidden (403) à la synchronisation | Le projet demandé diffère du projet de la requête. | Lancez la synchronisation depuis le bon projet. |
Le Runtime MCP n'est pas activé sur la plateforme ou mcp_runtime_disabled (409) | Le runtime est désactivé. | L'opérateur renseigne EAI_MCP_RUNTIME_ENABLED et installe le ToolHive Operator. |
Erreur mcp_template_not_allowed ou mcp_host_not_allowed (403) | La politique du projet interdit le modèle ou l'hôte. | Demandez à l'administrateur du tenant de modifier la politique. |
Erreur mcp_instance_quota (409) | Le quota d'instances par utilisateur ou par projet est atteint. | Détruisez une instance ou augmentez le quota dans la politique. |
Erreur mcp_instance_exists (409) | Une instance de ce nom existe déjà. | Choisissez un autre Nom de l'instance. |
Erreur mcp_credential_required (422) | Le modèle demande une référence de secret personnelle. | Renseignez Référence de secret. |
Erreur mcp_instance_busy (409) | Une opération est encore en cours sur l'instance. | Attendez la fin de l'opération, puis recommencez. |
Erreur rule_scope_required (422) | Une règle conditionnelle n'a ni globs ni description. | Ajoutez des globs ou une description. |
Erreur forbidden (403) avec required_roles | Un rôle manque. | Demandez le rôle developer ou application_owner. |