Skip to main content

Extension de l'agent de codage GitHub Copilot avec le protocole de contexte de modèle (MCP)

Découvrez comment utiliser le protocole MCP (Model Context Protocol) pour étendre les fonctionnalités de Copilot, agent de codage.

Configuration requise

Avant de configurer un serveur MCP pour Copilot, agent de codage, lisez Model Context Protocol (MCP) et GitHub Agent de codage Copilot pour vous assurer de comprendre les concepts relatifs aux serveurs MCP et à Copilot, agent de codage.

Présentation

En tant qu’administrateur de référentiel, vous pouvez configurer les serveurs MCP pour les utiliser dans votre référentiel. Pour ce faire, vous devez utiliser une configuration au format JSON qui spécifie les détails des serveurs MCP que vous souhaitez utiliser. Vous entrez la configuration JSON directement dans les paramètres du référentiel sur GitHub.com.

Les administrateurs d’organisation et d’entreprise peuvent également configurer des serveurs MCP dans le cadre de agents personnalisés à l’aide du frontmatter YAML. Pour plus d’informations, consultez « Configuration des agents personnalisés ».

Avertissement

Une fois que vous avez configuré un serveur MCP, Copilot pourra utiliser les outils fournis par le serveur de manière autonome, sans avoir besoin de vous demander votre approbation préalable.

Remarque

  • Copilot, agent de codage prend uniquement en charge les outils fournis par les serveurs MCP. Il ne prend pas en charge les ressources ni les prompts.
  • Copilot, agent de codage ne prend actuellement pas en charge les serveurs MCP distants qui tirent parti d’OAuth pour l’authentification et l’autorisation.

Ajout d’une configuration MCP à votre référentiel

Les administrateurs de référentiels peuvent configurer des serveurs MCP en procédant comme suit :

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre référentiel, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.

  3. Dans la section « Code & automation » de la barre latérale, cliquez sur Copilot, puis sur Agent de codage.

  4. Ajoutez votre configuration dans la section Configuration MCP.

    Les sections suivantes de cet article expliquent comment écrire la configuration JSON que vous devez insérer ici.

  5. Cliquez sur Enregistrer.

    Votre configuration sera validée afin de garantir une syntaxe correcte.

  6. Si votre serveur MCP nécessite une variable, une clé ou un secret, ajoutez une variable ou un secret à votre environnement Copilot. Seules les variables et les secrets dont les noms sont précédés COPILOT_MCP_ seront disponibles pour votre configuration MCP. Consultez Configuration d’un environnement Copilot pour Copilot, agent de codage.

Écriture d’une configuration JSON pour les serveurs MCP

Vous configurez les serveurs MCP à l’aide d’un format JSON spécial. Le fichier JSON doit contenir un objet mcpServers, où la clé correspond au nom du serveur MCP (par exemple, sentry) et la valeur est un objet contenant la configuration de ce serveur MCP.

JSON
{
  "mcpServers": {
    "MCP SERVER 1": {
      "command": "VALUE",
      "args": [ VALUES ],
      ...
    },
    "MCP SERVER 2": {
      "command": "VALUE",
      "args": [ VALUES ],
      ...
    },
    ...
  }
}

L’objet de configuration peut contenir les clés suivantes :

          **Clés requises pour les serveurs MCP locaux et distants**

* tools (string[]) : les outils du serveur MCP à activer. Vous trouverez peut-être une liste d’outils dans la documentation du serveur ou dans son code. Nous vous recommandons vivement d’ajouter à la liste d’autorisation certains outils en lecture seule, car l’agent sera en mesure d’utiliser ces outils de manière autonome et ne vous demandera pas d’approbation préalable. Vous pouvez également activer tous les outils en incluant * dans le tableau. * type (string) : Copilot, agent de codage accepte "local", "stdio", "http"ou "sse".

          **Clés locales spécifiques de MCP**

* command (string) : requis. La commande à exécuter pour démarrer le serveur MCP. * args (string[]) : requis. Les arguments à transmettre à la command. * env (object) : facultatif. Les variables d’environnement à transmettre au serveur. Cet objet doit mapper le nom de la variable d’environnement qui doit être exposée à votre serveur MCP à l’un des éléments suivants :

  • Référence de substitution à un secret ou à une variable dans votre environnement Copilot, comme $COPILOT_MCP_API_KEY ou ${COPILOT_MCP_API_KEY}. Les noms référencés doivent commencer par COPILOT_MCP_.

  • Une chaîne de caractères littérale.

          **Clés distantes spécifiques de MCP**
    
  •         `url` (`string`) : requis. L’URL du serveur MCP.
    
  •         `headers` (`object`) : facultatif. Les en-têtes à joindre aux requêtes adressées au serveur. Cet objet doit mapper le nom des clés d’en-tête à l’un des éléments suivants :
    
    • Une référence de substitution à un secret ou à une variable dans votre environnement Copilot, telle que $COPILOT_MCP_API_KEY ou ${COPILOT_MCP_API_KEY}. Les noms référencés doivent commencer par COPILOT_MCP_.
    • Une chaîne de caractères littérale.

Notez que tous les champs string et string[], à l'exception de tools & type, prennent en charge la substitution avec une variable ou un secret que vous avez configuré dans votre environnement Copilot.

Substitution de variable

Les modèles de syntaxe suivants sont pris en charge pour référencer des variables d’environnement configurées dans votre environnement Copilot :

SyntaxeExemple
$VAR$COPILOT_MCP_API_KEY
${VAR}${COPILOT_MCP_API_KEY}
${VAR:-default}${COPILOT_MCP_API_KEY:-fallback_value}

Exemples de configurations

Les exemples ci-dessous montrent les configurations de serveur MCP pour différents fournisseurs.

  •         [Sentry](#example-sentry)
    
  •         [Notion](#example-notion)
    
  •         [Azure](#example-azure)
    
  •         [Cloudflare](#example-cloudflare)
    
  •         [Azure DevOps](#example-azure-devops)
    
  •         [Atlassian](#example-atlassian)
    

Exemple : Sentry

Le serveur MCP Sentry donne à Copilot un accès authentifié aux exceptions enregistrées dans Sentry.

JavaScript
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
  "mcpServers": {
    "sentry": {
      "type": "local",
      "command": "npx",
      // We can use the $SENTRY_HOST environment variable which is passed to
      // the server because of the `env` value below.
      "args": ["@sentry/mcp-server@latest", "--host=$SENTRY_HOST"],
      "tools": ["get_issue_details", "get_issue_summary"],
      "env": {
        // We can specify an environment variable value as a string...
        "SENTRY_HOST": "https://contoso.sentry.io",
        // or refer to a variable or secret in your Copilot environment
        // with a name starting with `COPILOT_MCP_`
        "SENTRY_ACCESS_TOKEN": "$COPILOT_MCP_SENTRY_ACCESS_TOKEN"
      }
    }
  }
}

Exemple : Notion

Le serveur MCP Notion donne à Copilot un accès authentifié aux notes et autres contenus de Notion.

JavaScript
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
  "mcpServers": {
    "notionApi": {
      "type": "local",
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        // We can use the $NOTION_API_KEY environment variable which is passed to
        // the server because of the `env` value below.
        "OPENAPI_MCP_HEADERS={\"Authorization\": \"Bearer $NOTION_API_KEY\", \"Notion-Version\": \"2022-06-28\"}",
       "mcp/notion"
      ],
      "env": {
        // The value of the `COPILOT_MCP_NOTION_API_KEY` secret will be passed to the
        // server command as an environment variable called `NOTION_API_KEY`
        "NOTION_API_KEY": "$COPILOT_MCP_NOTION_API_KEY"
      },
      "tools": ["*"]
    }
  }
}

Exemple : Azure

Le dépôt Microsoft MCP inclut le serveur Azure MCP, ce qui permet à Copilot de comprendre vos fichiers et ressources spécifiques aux Azure et aux ressources Azure au sein de votre abonnement lors de modifications de code.

Pour configurer automatiquement votre référentiel avec un fichier copilot-setup-steps.yml pour s'authentifier auprès de Azure, ainsi que des secrets pour l'authentification, clonez le référentiel localement, puis exécutez la commande Azure Developer CLI de azd coding-agent config à la racine du référentiel.

Une fois que vous avez exécuté la commande et fusionné le pull request créé, vous pouvez ajouter la configuration MCP à votre dépôt.

JSON
 {
   "mcpServers": {
     "Azure": {
      "type": "local",
      "command": "npx",
      "args": [
        "-y",
        "@azure/mcp@latest",
        "server",
        "start"
       ],
      "tools": ["*"]
     }
   }
 }

Exemple : Cloudflare

Le serveur Cloudflare MCP crée des connexions entre vos services Cloudflare, y compris le traitement de la documentation et l’analyse des données.

JSON
{
  "mcpServers": {
    "cloudflare": {
      "type": "sse",
      "url": "https://docs.mcp.cloudflare.com/sse",
      "tools": ["*"]
    }
  }
}

Exemple : Azure DevOps

Le serveur MCP Azure DevOps crée une connexion transparente entre Copilot et vos services Azure DevOps, y compris les éléments de travail, les pipelines ou la documentation.

Pour utiliser le serveur MCP Azure DevOps avec Copilot, agent de codage, vous devez mettre à jour le fichier copilot-setup-steps.yml du référentiel pour inclure une étape de flux de travail de connexion Azure.

  1. Configurez OIDC dans une application Microsoft Entra, en faisant confiance à GitHub. Consultez Utilisez l’action de connexion Azure avec OpenID Connect.

  2. Configurez l'accès à l'organisation et aux projets Azure DevOps pour l'identité de l'application. Consultez Ajouter des utilisateurs de l’organisation et gérer l’accès.

  3. Ajoutez un fichier de flux de travail Actions .github/workflows/copilot-setup-steps.yml dans votre référentiel si vous n’en avez pas déjà un.

  4. Ajoutez une étape de connexion Azure au travail de workflow copilot-setup-steps.

    YAML
    # Ce workflow utilise des actions qui ne sont pas certifiées par GitHub.
    # Elles sont fournies par un tiers et régies par
    # des conditions d’utilisation du service, une politique de confidentialité et un support distincts.
    # documentation en ligne.
    on:
      workflow_dispatch:
    permissions:
      id-token: write
      contents: read
    jobs:
      copilot-setup-steps:
        runs-on: ubuntu-latest
        permissions:
          id-token: write
          contents: read
        environment: copilot
        steps:
          - name: Azure login
            uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5
            with:
              client-id: ${{ secrets.AZURE_CLIENT_ID }}
              tenant-id: ${{ secrets.AZURE_TENANT_ID }}
              allow-no-subscriptions: true
    

    Cette configuration garantit que l’action azure/login est exécutée lorsque Copilot, agent de codage s’exécute.

  5. Dans l’environnement Copilot de votre référentiel, ajoutez les secrets pour vos AZURE_CLIENT_ID et AZURE_TENANT_ID.

  6. Configurez le serveur MCP Azure DevOps en ajoutant un objet ado à votre configuration MCP avec des outils définis que vous souhaitez Copilot, agent de codage à utiliser.

JSON
{
  "mcpServers": {
    "ado": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "@azure-devops/mcp", "<your-azure-devops-organization>", "-a", "azcli"],
      "tools": ["wit_get_work_item", "wit_get_work_items_batch_by_ids", ...]
    }
  }
}

Exemple : Atlassian

Le serveur Atlassian MCP fournit Copilot un accès authentifié à vos applications Atlassian, notamment Jira, Compass et Confluence.

Pour plus d’informations sur l’authentification auprès du serveur Atlassian MCP à l’aide d’une clé API, consultez Configuration de l’authentification via un jeton d’API dans la documentation Atlassian.

JavaScript
// If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
{
  "mcpServers": {
    "atlassian-rovo-mcp": {
      "command": "npx",
      "type": "local",
      "tools": ["*"],
      "args": [
        "mcp-remote@latest",
        "https://mcp.atlassian.com/v1/mcp",
        // We can use the $ATLASSIAN_API_KEY environment variable which is passed
        // to the server because of the `env` value below.
        "--header",
        "Authorization: Basic $ATLASSIAN_API_KEY"
      ],
      "env": {
        // The value of the `COPILOT_MCP_ATLASSIAN_API_KEY` secret will be passed
        // to the server command as an environment variable
        // called `ATLASSIAN_API_KEY`.
        "ATLASSIAN_API_KEY": "$COPILOT_MCP_ATLASSIAN_API_KEY"
      }
    }
  }
}

Réutilisation de votre configuration MCP à partir de Visual Studio Code

Si vous avez déjà configuré des serveurs MCP dans VS Code, vous pouvez exploiter une configuration similaire pour Copilot, agent de codage.

Selon la configuration de VS Code, vous pouvez trouver vos paramètres MCP dans le fichier .vscode/mcp.json de votre référentiel ou dans le fichier privé settings.json de votre machine.

Pour adapter la configuration pour Copilot, agent de codage, vous devrez :

  1. Ajouter une clé tools pour chaque serveur MCP, en spécifiant les outils qui seront disponibles pour Copilot.
  2. Si vous avez configuré inputs, passez à l’utilisation directe de env.
  3. Si vous avez configuré un envFile, passez à l’utilisation directe de env.
  4. Mettez à jour toutes les références à inputs dans votre configuration args afin qu’elles renvoient à la place aux variables d’environnement de env.

Pour plus d’informations sur MCP dans VS Code, consultez la documentation VS Code.

Configuration d’un environnement Copilot pour Copilot, agent de codage

Certains serveurs MCP nécessitent des clés ou des secrets. Pour exploiter ces serveurs dans Copilot, agent de codage, vous pouvez ajouter des secrets à un environnement pour Copilot. Cela garantit que les secrets sont correctement reconnus et transmis au serveur MCP concerné que vous avez configuré.

Vous devez être administrateur du référentiel pour configurer un environnement Copilot pour votre référentiel.

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre référentiel, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.

  3. Dans la barre latérale gauche, cliquez sur Environnements.

  4. Cliquez sur Nouvel environnement.

  5. Appelez le nouvel environnement copilot et cliquez sur Configurer l’environnement.

  6. Sous « Secrets d’environnement », cliquez sur Ajouter un secret d’environnement.

  7. Attribuez au secret un nom commençant par COPILOT_MCP_, ajoutez la valeur du secret, puis cliquez sur Ajouter un secret.

Validation de votre configuration MCP

Une fois que vous avez configuré votre MCP, vous devez le tester afin de vous assurer qu’il est correctement configuré.

  1. Créez un ticket dans le référentiel, puis assignez-le à Copilot.
  2. Attendez quelques secondes, et Copilot laissera une réaction 👀 sur le ticket.
  3. Patientez encore quelques secondes, et Copilot créera une demande de tirage (pull request) qui apparaîtra dans la chronologie du ticket.
  4. Cliquez sur le pull request créé dans la chronologie et attendez qu’un événement de la chronologie « Copilot a commencé le travail » s’affiche.
  5. Cliquez sur Afficher la session pour ouvrir les journaux de Copilot, agent de codage.
  6. Cliquez sur le bouton représentant des points de suspension (...) en haut à droite de la fenêtre d’affichage des journaux, puis cliquez sur Copilot dans la barre latérale.
  7. Cliquez sur l’étape Démarrer les serveurs MCP pour développer les journaux.
  8. Si vos serveurs MCP ont été démarrés avec succès, vous verrez leurs outils répertoriés au bas des journaux.

Si vos serveurs MCP nécessitent des dépendances qui ne sont pas installées par défaut sur l’exécuteur GitHub Actions, telles que uv et pipx, ou qui nécessitent des étapes de configuration spéciales, vous devrez peut-être créer un fichier de workflow copilot-setup-steps.yml pour les installer. Pour plus d’informations, consultez « Personnalisation de l’environnement de développement pour GitHub Agent de codage Copilot ».

Personnalisation du serveur MCP intégré à GitHub

Le serveur MCP de GitHub est activé par défaut et se connecte à GitHub à l’aide d’un jeton d’étendue spécifique qui dispose uniquement d’un accès en lecture seule au référentiel actuel.

Si vous souhaitez autoriser Copilot à accéder aux données en dehors du référentiel actuel, vous pouvez lui attribuer un personal access token avec un accès plus large.

  1. Créez un personal access token avec les autorisations appropriées. Nous vous recommandons d’utiliser un fine-grained personal access token, qui vous permet de limiter l’accès du jeton aux autorisations en lecture seule sur des référentiels spécifiques. Pour plus d’informations sur personal access tokens, consultez Gestion de vos jetons d’accès personnels.

  2. Sur GitHub, accédez à la page principale du référentiel.

  3. Sous le nom de votre référentiel, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.

  4. Dans la section « Code & automation » de la barre latérale, cliquez sur Copilot, puis sur Agent de codage.

  5. Ajoutez votre configuration dans la section Configuration MCP. Par exemple, vous pouvez ajouter les éléments suivants :

    JavaScript
     // If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON.
     {
       "mcpServers": {
         "github-mcp-server": {
           "type": "http",
           // Remove "/readonly" to enable wider access to all tools.
           // Then, use the "X-MCP-Toolsets" header to specify which toolsets you'd like to include.
           // Use the "tools" field to select individual tools from the toolsets.
           "url": "https://api.githubcopilot.com/mcp/readonly",
           "tools": ["*"],
           "headers": {
             "X-MCP-Toolsets": "repos,issues,users,pull_requests,code_security,secret_protection,actions,web_search"
           }
         }
       }
     }
    

    Pour plus d’informations sur les ensembles d’outils, consultez le fichier README dans la documentation GitHub Serveur MCP distant.

  6. Cliquez sur Enregistrer.

  7. Dans la barre latérale gauche, cliquez sur Environnements.

  8. Cliquez sur l’environnement copilot.

  9. Sous « Secrets d’environnement », cliquez sur Ajouter un secret d’environnement.

  10. Appelez le secret COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKEN, entrez votre personal access token dans le champ « Valeur », puis cliquez sur Ajouter un secret.

Pour plus d’informations sur l’utilisation du serveur MCP GitHub dans d’autres environnements, consultez Utilisation du serveur MCP GitHub.

Étapes suivantes

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers)
    
  •         [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/create-custom-agents)
    
  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-the-development-environment-for-copilot-coding-agent)
    
  •         [AUTOTITLE](/copilot/customizing-copilot/extending-copilot-chat-with-mcp)