Skip to main content

Configuration d’une liste d’autorisation pour un serveur MCP de votre entreprise

Définissez les serveurs MCP que vos utilisateurs peuvent et ne peuvent pas utiliser sans avoir besoin d’un registre privé.

Qui peut utiliser cette fonctionnalité ?

Enterprise owners

Copilot Enterprise or Copilot Business

À propos des listes d’autorisation

Vous pouvez définir une liste d’autorisation et une liste de blocage pour contrôler quels serveurs MCP les utilisateurs de votre entreprise peuvent exécuter dans les clients Copilot. Ces listes sont définies dans le managed-settings.json de votre entreprise, que vous pouvez stocker sur GitHub.

Pour plus d’informations, consultez « Utilisation du serveur MCP dans votre entreprise ».

Prerequisites

  • Pour que les serveurs MCP s’exécutent, les serveurs MCP dans Copilot la stratégie doivent être activés pour votre entreprise ou pour les organisations où les serveurs MCP doivent être autorisés.
  • Si vous limitez actuellement les serveurs MCP à un registre personnalisé, nous vous recommandons de désactiver cette restriction pour éviter les conflits avec votre nouvelle liste verte et de conserver une seule source de vérité. Définissez la stratégie Restreindre l’accès MCP aux serveurs de Registre pour autoriser tout et désactivez éventuellement la valeur de l’URL du Registre MCP.

Vous trouverez ces paramètres dans la section MCP de vos Copilot stratégies. Consultez « Gestion des stratégies et fonctionnalités pour GitHub Copilot dans votre entreprise ».

Définir une liste d’autorisation ou une liste de refus

  1. Créez un managed-settings.json fichier pour votre entreprise. La plupart des entreprises stockent ce fichier dans un .github-private référentiel. Vous pouvez également l’installer directement sur les machines des utilisateurs à l’aide de la gestion des appareils mobiles. Consultez « Configuration des paramètres gérés par l’entreprise ».

  2. Modifiez le fichier pour définir une liste verte et une liste de refus pour les serveurs MCP. Vous pouvez correspondre par nom, URL du serveur ou commandes spécifiques. Pour plus d’informations sur la syntaxe, consultez allowedMcpServers et deniedMcpServers dans « Paramètres gérés par l’entreprise ».

    L’exemple suivant autorise les serveurs correspondant à n’importe laquelle des trois entrées de la liste d’autorisation. Le serveur du système de fichiers configuré pour accéder au système de fichiers racine est toujours bloqué, même s’il correspond également à une entrée de la liste d’autorisation.

    JSON
    {
      "allowedMcpServers": [
        { "serverUrl": "https://api.githubcopilot.com/*" },
        { "serverCommand": ["npx", "@playwright/mcp@latest"] },
        { "serverCommand": ["cmd", "/c", "uvx", "markitdown-mcp"] }
      ],
      "deniedMcpServers": [
        {
          "serverCommand": [
            "npx",
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "/"
          ]
        }
      ]
    }
    

Règles d’évaluation

Copilot les clients évaluent les serveurs MCP dans cet ordre :

  1. Autorisez toujours les serveurs par défaut intégrés, tels que le serveur MCP intégré GitHub .
  2. Bloquez le serveur s’il correspond à une entrée dans deniedMcpServers.
  3. Si allowedMcpServers est présent, bloquez le serveur s’il ne correspond à aucune entrée.
  4. Bloquez le serveur si son URL ou sa commande contient une variable non résolue, telle que ${VARIABLE} ou $VARIABLE, car le client ne peut pas vérifier le serveur.

Si un client reçoit les paramètres de plusieurs managed-settings.json méthodes de déploiement, tous les paramètres s’appliquent. Une règle de refus provenant de n’importe quelle source bloque le serveur, et un serveur doit correspondre à une entrée de la liste d’autorisation à chaque couche qui en définit une.

Si une liste d’autorisation ou une liste de refus est mal formée (par exemple, contient un JSON non valide), le client traite la règle comme une allowedMcpServers liste vide. Cela bloque tous les serveurs, à l’exception des serveurs par défaut intégrés.

Si le client ne peut pas déterminer un niveau de stratégie en raison d’une erreur de récupération ou de détection de l’appareil, il conserve la stratégie précédemment appliquée. La stratégie efficace peut devenir plus restrictive, mais pas moins restrictive.