Aller au contenu principal

Serveurs MCP

L'écran Serveurs MCP vous permet d'enregistrer les serveurs Model Context Protocol que les agents peuvent appeler, de lister leurs outils, de les désactiver, les activer ou les supprimer, et d'envoyer une requête JSON-RPC 2.0 par la passerelle MCP. Chemin dans le portail : /capabilities/mcp. Les développeurs enregistrent et testent les serveurs ; les administrateurs du tenant et les responsables sécurité décident de leur statut. L'écran est dessiné par portal/src/screens/capabilities.tsx.

Ce que montre l'écran​

  • Tableau Serveurs MCP, lu par GET /v1/mcp/servers (les serveurs visibles par la requête, en un appel). Colonnes : Nom, Transport, URL, Outils autorisés, Statut, Créé. Voir le détail affiche la ligne. Vide : Aucun serveur MCP, aide Enregistrez un serveur pour exposer ses outils aux agents., bouton Nouveau serveur MCP.
  • Nouveau serveur MCP ouvre un panneau latéral avec Nom (obligatoire, lettres minuscules, chiffres, ., _, -), URL (obligatoire, exemple https://<mcp-host>/mcp), Transport (obligatoire : streamable_http ou sse), Outils autorisés (séparés par des virgules ; vide, tous les outils sont autorisés, *), Propriétaire, Authentification (JSON, défaut {"type": "none"} ; types none, bearer, api_key, query_param, connector, avec un credential_ref de la forme openbao://... ou env://...).
  • Testeur Passerelle MCP : Identifiant du serveur (obligatoire), Méthode (obligatoire : "initialize", "tools/list", "tools/call", "resources/list", "resources/read", "prompts/list"), Paramètres (JSON), le bouton Exécuter et une zone Résultat.
remarque

Les serveurs MCP sont uniquement internes. Le Control Plane accepte un serveur hébergé par le Navin Manager, une instance du MCP Runtime ou un hôte nommé dans EAI_MCP_INTERNAL_HOSTS, le vérifie à l'enregistrement et à chaque appel, et refuse une adresse publique avec mcp_online_forbidden.

Actions​

Bouton ou actionCe qu'il faitAppel d'APIRôles
Actualiser (icône)Recharge la liste.GET /v1/mcp/serversTout membre du tenant
Nouveau serveur MCPEnregistre le serveur dans le projet courant.POST /v1/mcp/serverstenant_admin, developer, application_owner
Menu Voir le détailAffiche la ligne dans un panneau latéral.AucunTout membre du tenant
Menu OutilsEnvoie "tools/list" au serveur et affiche les outils qui passent la liste d'autorisation.GET /v1/mcp/servers/{server_id}/toolsRelation can_invoke sur le serveur
Menu Désactiver (serveur non désactivé)Formulaire avec une Raison obligatoire ; désactive le serveur tout de suite et l'audite.POST /v1/mcp/servers/{server_id}/statustenant_admin, security_officer et relation editor
Menu Activer (serveur désactivé)Demande active : ouvre une approbation de promotion ; le serveur devient actif une fois approuvé.POST /v1/mcp/servers/{server_id}/statustenant_admin, security_officer et relation editor
Menu SupprimerOuvre Confirmer une action destructive ; saisissez le nom du serveur, puis Confirmer.GET /v1/lineage/graph, puis DELETE /v1/mcp/servers/{server_id}tenant_admin et relation owner
Exécuter (Passerelle MCP)Envoie la requête JSON-RPC par la passerelle et affiche la réponse.POST /v1/mcp/gateway/{server_id}tenant_admin, developer, agent et relation can_invoke
Réessayer (état d'erreur)Relance la lecture qui a échoué.Même appelMêmes rôles

Le testeur enveloppe le formulaire dans un message JSON-RPC 2.0 ; pour un "tools/call", Paramètres contient le nom de l'outil et ses arguments :

{"jsonrpc": "2.0", "id": 1767225600000, "method": "tools/call", "params": {"name": "search", "arguments": {"query": "supplier contract"}}}

La passerelle refuse un "tools/call" sur un outil hors de Outils autorisés, exige la portée tools:invoke et applique la DLP aux arguments.

Rôles​

Le portail ne masque aucun bouton. Dans services/control-plane/src/eai/domains/mcp/routes.py : la création demande WRITE_ROLES (tenant_admin, developer, application_owner) ; le changement de statut demande tenant_admin ou security_officer ; la suppression demande tenant_admin ; la passerelle demande OPS_ROLES (tenant_admin, developer, agent). Les routes contrôlent aussi la relation sur le serveur (editor, owner, can_invoke), et une requête faite dans un projet ne voit que les serveurs de ce projet. platform_admin passe tous les contrôles de rôle.

Tâches courantes​

Enregistrer un serveur MCP interne​

  1. Le créer. Les agents n'atteignent le serveur que par la passerelle. Cliquez sur Nouveau serveur MCP, remplissez Nom, URL et Transport, listez les Outils autorisés, renseignez Authentification, puis cliquez sur Créer. Résultat attendu : le message Créé et une nouvelle ligne. En cas d'échec : mcp_online_forbidden (403) signifie que l'URL résout vers une adresse publique ; hébergez le serveur en interne.
  2. Lister ses outils. La liste prouve que la passerelle atteint le serveur. Dans le menu de ligne, cliquez sur Outils. Résultat attendu : un panneau latéral avec les outils qui passent la liste d'autorisation. En cas d'échec : upstream_error (502) porte l'erreur du serveur ; vérifiez l'URL et l'authentification.

Appeler un outil par la passerelle​

  1. Remplir le testeur. Le testeur envoie un vrai appel, audité comme celui d'un agent. Dans Passerelle MCP, saisissez l'Identifiant du serveur, choisissez "tools/call" dans Méthode et écrivez Paramètres avec name et arguments. Résultat attendu : le formulaire est complet. En cas d'échec : JSON invalide sous Paramètres signifie que le JSON est mal formé.
  2. L'exécuter. Cliquez sur Exécuter. Résultat attendu : la réponse JSON-RPC dans Résultat. En cas d'échec : un membre error dans la réponse indique que l'outil n'est pas dans la liste d'autorisation, ou que la portée tools:invoke manque.

Désactiver un serveur pendant un incident​

  1. Le désactiver. La désactivation s'applique tout de suite, sans approbation. Dans le menu de ligne, cliquez sur Désactiver, saisissez la Raison, puis cliquez sur Désactiver. Résultat attendu : le message Terminé et le statut Désactivé. En cas d'échec : forbidden signifie que vous n'êtes ni tenant_admin ni security_officer.
  2. Le réactiver plus tard. Le retour à l'état actif est une promotion. Cliquez sur Activer. Résultat attendu : le message Terminé et une demande promotion dans la Boîte d'approbation ; le serveur devient actif quand une autre personne l'approuve. En cas d'échec : lisez l'erreur de l'approbation dans la boîte.

Dépannage​

SymptômeCauseCorrection
mcp_online_forbidden (403)L'URL résout vers une adresse publique.Hébergez le serveur sur le Navin Manager, le MCP Runtime ou un hôte interne de EAI_MCP_INTERNAL_HOSTS.
mcp_server_not_found (404)L'identifiant est faux ou le serveur a été supprimé.Copiez l'identifiant depuis le tableau (Voir le détail).
mcp_project_forbidden (403) ou mcp_server_project_mismatchLa requête est faite dans un autre projet que celui du serveur.Passez dans le projet du serveur.
mcp_principal_not_allowed (403)Vous ne faites pas partie des utilisateurs et agents autorisés sur le serveur.Demandez l'accès au propriétaire du serveur.
upstream_error (502) sur OutilsLe serveur MCP a répondu une erreur.Vérifiez l'URL, le transport et l'authentification.
Réponse avec method ... is not allowed through the gatewayLa méthode ne fait pas partie de celles que relaie la passerelle.Utilisez une méthode de la liste Méthode.
validation_error (422) sur CréerLe nom contient des majuscules ou des espaces, ou credential_ref ne commence pas par openbao:// ou env://.Corrigez le champ nommé dans l'erreur.

Pages liées​