Configurer le serveur MCP Azure DevOps distant

Azure DevOps Services

Le serveur MCP distant Azure DevOps est une version hébergée du serveur MCP Azure DevOps MCP qui ne nécessite pas d'installation locale. Au lieu d’exécuter le serveur sur votre ordinateur, vous connectez directement votre assistant IA au point de terminaison hébergé par Azure DevOps à l’aide du transport HTTP streamable.

Choisissez d’abord le mode à distance

Utilisez le serveur MCP distant lorsque votre environnement le prend en charge. Le serveur distant est l’option recommandée, car Azure DevOps l’héberge et le met à jour, et vous n’avez pas besoin d’installer Node.js ni de gérer un processus serveur local.

Utilisez le serveur MCP local lorsque votre client ne peut pas s'authentifier auprès du serveur distant avec Microsoft Entra ID. Cette limitation s’applique actuellement aux clients tels que Claude Desktop et Codex. Cursor et Claude Code nécessitent un enregistrement d’application Microsoft Entra personnalisé pour s’authentifier. Pour obtenir des instructions d’installation locales, consultez Activer l’aide à l’IA avec le serveur MCP Azure DevOps.

Fonctionnalité Serveur MCP distant Serveur MCP local
Installation Aucune installation obligatoire Nécessite Node.js 20.0+ et npx
Transport HTTP diffusable en continu stdio
Authentification Microsoft Entra ID (OAuth) Azure DevOps PAT ou Microsoft Entra ID
Hébergement service hébergé Azure DevOps S’exécute localement sur votre ordinateur
Configuration mcp.json minimal Configuration spécifique à l’environnement

Prerequisites

Catégorie Exigences
Azure DevOps Une organisation Azure DevOps active associée à un tenant Microsoft Entra. Les organisations utilisant un compte Microsoft autonome (MSA) ne sont pas prises en charge pour l’utilisation à distance du serveur MCP.
Permissions Appartenance au projet et accès aux ressources que vous souhaitez interroger
Environnement Un environnement assistant IA pris en charge (voir Environnements pris en charge)

configuration de mcp.json

{
  "servers": {
    "ado-remote-mcp": {
      "url": "https://mcp.dev.azure.com/{organization}",
      "type": "http"
    }
  },
  "inputs": []
}

Vous pouvez également omettre le nom de l’organisation à partir de l’URL. Toutefois, si vous omettez le nom de l’organisation, vous devez le fournir comme contexte dans chaque appel d’outil.

{
  "servers": {
    "ado-remote-mcp": {
      "url": "https://mcp.dev.azure.com/",
      "type": "http"
    }
  },
  "inputs": []
}

Ensembles d’outils

Spécifiez des ensembles d’outils pour restreindre les outils disponibles pour le serveur MCP. Ne doit pas être combiné avec X-MCP-Tools.

{
  "servers": {
    "ado-remote-mcp": {
      "url": "https://mcp.dev.azure.com/{organization}",
      "type": "http",
      "headers": {
        "X-MCP-Toolsets": "repos,wiki,wit"
      }
    }
  },
  "inputs": []
}
Valeur de l’ensemble d’outils Outils inclus
all (par défaut) Tous les outils
repos Outils de dépôt et de pull request
advsec Outils d’alerte de sécurité avancée
wit Outils pour les éléments de travail et search_workitem
pipelines Outils de pipeline et de build
wiki Outils wiki et search_wiki
work Outils d’itération et de gestion de capacité
testplan Outils de plan de test
elm Outils Enterprise Live Migration (préversion ; activés par défaut)

Outils en mode lecture seule

Utilisez l’en-tête X-MCP-Readonly pour restreindre le serveur aux opérations en lecture seule. Cette restriction est utile lorsque vous souhaitez empêcher les modifications apportées aux ressources Azure DevOps.

{
  "servers": {
    "ado-remote-mcp": {
      "url": "https://mcp.dev.azure.com/{organization}",
      "type": "http",
      "headers": {
        "X-MCP-Readonly": "true"
      }
    }
  },
  "inputs": []
}

Combiner des ensembles d’outils et un filtrage en lecture seule

{
  "servers": {
    "ado-remote-mcp": {
      "url": "https://mcp.dev.azure.com/{organization}",
      "type": "http",
      "headers": {
        "X-MCP-Toolsets": "repos,wiki,wit",
        "X-MCP-Readonly": "true"
      }
    }
  },
  "inputs": []
}

Outils individuels

Utilisez l’en-tête X-MCP-Tools pour activer uniquement des outils spécifiques. Ne doit pas être combiné avec X-MCP-Toolsets.

Spécifiez les noms d’outils qui apparaissent dans la liste des outils disponibles . Pour les outils consolidés tels que wit_work_item, choisissez l’opération à l’aide du paramètre action de l’outil au moment de l’appel.

{
  "servers": {
    "ado-remote-mcp": {
      "url": "https://mcp.dev.azure.com/{organization}",
      "type": "http",
      "headers": {
        "X-MCP-Tools": "core_list_projects, wit_work_item"
      }
    }
  },
  "inputs": []
}

Membres du programme Insider

À mesure que nous expérimentons et introduisons de nouveaux outils et mises à jour pour les éléments existants, vous pouvez accéder rapidement à ces modifications à l’aide de l’en-tête X-MCP-Insiders .

{
  "servers": {
    "ado-remote-mcp": {
      "url": "https://mcp.dev.azure.com/{organization}",
      "type": "http",
      "headers": {
        "X-MCP-Insiders": "true"
      }
    }
  },
  "inputs": []
}

Outils disponibles

Note

Cette liste peut ne pas toujours refléter les mises à jour d’outils les plus récentes.

Outils de base

Les outils de base sont toujours disponibles, sauf indication contraire.

Outil Description
core_list_orgs Répertorier les organisations Azure DevOps auxquelles l’utilisateur authentifié a accès
core_list_projects Répertorier les projets dans une organisation
core_list_project_teams Répertorier les équipes dans un projet
core_list_group_members Répertorier les membres directs et les groupes enfants d’un groupe Azure DevOps

Note

Seuls les membres du programme Insider MCP peuvent utiliser core_list_group_members en utilisant l’en-tête X-MCP-Insiders.

Travail

Les outils de travail sont consolidés dans des répartiteurs groupés à l’aide d’un paramètre action.

Outil Action Description Lecture seule
work list_iterations Répertorier toutes les itérations dans un projet ✅
work list_team_iterations Répertorier les itérations attribuées à une équipe ✅
work get_team_settings Obtenir les paramètres d’équipe, notamment l’itération par défaut, l’itération du backlog et le chemin de zone par défaut ✅
work get_team_capacity Obtenir la capacité d’équipe pour une itération ✅
work get_iteration_capacities Obtenir la capacité d’une itération pour toutes les équipes de l’itération et du projet ✅
work_iteration_write create Créer des itérations ❌
work_iteration_write assign Affecter des itérations à une équipe ❌
work_capacity_write update Mettre à jour la capacité d’équipe d’un membre de l’équipe pour une itération spécifique ❌

Repos

Les outils de référentiel sont consolidés dans des répartiteurs groupés à l’aide d’un paramètre action.

Outil Action Description Lecture seule
repo_pull_request get Obtenir un pull request par ID ✅
repo_pull_request list Lister les pull requests dans un référentiel ou un projet ✅
repo_pull_request list_by_commits Rechercher des pull requests contenant des ID de validation spécifiques ✅
repo_pull_request get_changes Récupérer les modifications de fichiers et les différences ligne par ligne en option pour une itération d’une demande de tirage ✅
repo_pull_request_thread list Lister les threads de commentaires sur un pull request ✅
repo_pull_request_thread list_comments Répertorier les commentaires dans un thread spécifique ✅
repo_repository get Obtenir un référentiel par nom ou ID ✅
repo_repository list Répertorier les référentiels dans un projet ✅
repo_branch get Obtenir la branche par son nom ✅
repo_branch list Répertorier les branches dans un référentiel ✅
repo_branch list_mine Lister les branches que l'utilisateur actuel a poussées ✅
repo_file get_content Obtenir le contenu texte d’un fichier à partir d'une branche, d'un tag ou d'une validation spécifique. ✅
repo_file list_directory Répertorier les fichiers et dossiers d’un répertoire, avec une liste récursive facultative ✅
repo_search_commits Rechercher des validations avec filtrage par texte, auteur, plage de dates, etc. ✅
search_code Recherche de code de texte intégral ✅
repo_pull_request_write create Créer une pull request ❌
repo_pull_request_write update Mettre à jour une pull request, y compris la définition de l'autocomplétion ❌
repo_pull_request_write update_reviewers Ajouter ou retirer des réviseurs de pull request ❌
repo_pull_request_write vote Voter sur un pull request ❌
repo_pull_request_thread_write create Créer un nouveau fil de discussion sur une requête de tirage ❌
repo_pull_request_thread_write reply Répondre à un commentaire dans un thread ❌
repo_pull_request_thread_write update_status Mettre à jour l’état d’un thread de commentaire ❌
repo_create_branch Créer une branche ❌

Esprit

Les outils de travail sont consolidés dans des répartiteurs groupés à l’aide d’un paramètre action.

Outil Action Description Lecture seule
wit_work_item get Récupérer un élément de travail par identifiant ✅
wit_work_item get_batch Récupérer plusieurs éléments de travail par ID ✅
wit_work_item list_comments Répertorier les commentaires sur un élément de travail ✅
wit_work_item my Obtenir les éléments de travail pertinents pour l’utilisateur authentifié ✅
wit_work_item list_revisions Répertorier les révisions d’un élément de travail ✅
wit_work_item list_for_iteration Répertorier les éléments de travail pour une itération d’équipe ✅
wit_work_item get_type Obtenir des métadonnées pour un type d’élément de travail ✅
wit_query get Obtenir une requête par ID ou chemin d’accès ✅
wit_query get_results Exécuter une requête enregistrée ✅
wit_query search Rechercher des requêtes par nom ✅
wit_query list Répertorier les dossiers de requête racine et leurs enfants ✅
wit_query_by_wiql Exécuter une requête WIQL et retourner des éléments de travail correspondants ✅
wit_backlog list Répertorier les niveaux de backlog pour une équipe ✅
wit_backlog list_work_items Répertorier les éléments de travail dans un niveau de backlog spécifique ✅
search_workitem Recherche d’éléments de travail en texte intégral ✅
wit_work_item_write create Créer un élément de travail ❌
wit_work_item_write update Mettre à jour des champs sur un élément de travail ❌
wit_work_item_write update_batch Mettre à jour plusieurs éléments de travail dans un seul appel ❌
wit_work_item_write add_child Créer des éléments de travail enfants sous un parent ❌
wit_work_item_comment_write add Ajouter un commentaire à un élément de travail ❌
wit_work_item_comment_write update Mettre à jour un commentaire existant sur un élément de travail ❌
wit_work_item_link_write link Lier deux éléments de travail ❌
wit_work_item_link_write unlink Supprimer des liens d’un élément de travail ❌
wit_work_item_link_write link_to_pull_request Associer un élément de travail à une pull request ❌
wit_work_item_link_write add_artifact_link Ajouter un dépôt, une branche, un commit, une build ou un lien vers un artefact wiki à un élément de travail ❌
wit_work_item_attachment Télécharger une pièce jointe d’élément de travail par ID ; retourne le contenu encodé en base64 avec le nom de fichier et le type MIME ✅
wit_work_item_attachment_upload Charger le contenu du fichier (jusqu’à 20 Mo, encodé en base64) dans le magasin de pièces jointes sans l’attacher à un élément de travail ❌
wit_work_item_attachment_link Lier une pièce jointe précédemment chargée à un élément de travail ❌

Note

wit_query_by_wiql est disponible uniquement pour les MCP Insiders actuellement, à l’aide de l’en-tête X-MCP-Insiders.

Pipelines

Les outils de pipeline sont consolidés dans des répartiteurs groupés à l’aide d’un paramètre action.

Outil Action Description Lecture seule
pipelines_build list Répertorier les builds avec des filtres facultatifs ✅
pipelines_build get_status Obtenir l’état, les problèmes et les métadonnées de rapport pour une build ✅
pipelines_build get_changes Obtenez des validations et des éléments de travail associés à une compilation ✅
pipelines_build_log list Répertorier les journaux disponibles pour une build ✅
pipelines_build_log get_content Obtenir le contenu texte d’un journal spécifique par ID ✅
pipelines_definition list Répertorier les définitions de pipeline avec des filtres facultatifs ✅
pipelines_definition list_revisions Répertorier l’historique des révisions pour une définition de pipeline ✅
pipelines_run get Obtenir une seule exécution de pipeline ✅
pipelines_run list Répertorier les exécutions d’un pipeline ✅
pipelines_artifact list Répertorier les artefacts d’une build ✅
pipelines_artifact download Télécharger un artefact de construction nommé ✅
pipelines_write run_pipeline Mettre en file d’attente une nouvelle exécution de pipeline ❌
pipelines_write create_pipeline Créer une définition de pipeline YAML ❌
pipelines_write update_build_stage Annuler, réessayer ou exécuter une étape sur une build en cours ❌

Wiki

Les opérations de lecture wiki sont consolidées dans un seul wiki outil. Utilisez le action paramètre pour sélectionner l’opération.

Outil Action Description Lecture seule
wiki list_wikis Répertorier des wikis dans un projet ou une organisation ✅
wiki get_wiki Obtenir un wiki par identificateur ✅
wiki list_pages Répertorier les pages dans un wiki ✅
wiki get_page Obtenir le contenu et les métadonnées de la page ✅
search_wiki Recherche wiki en texte intégral ✅
wiki_upsert_page Créer ou mettre à jour une page wiki ❌

Plans de test

Les outils de plan de test sont consolidés dans des répartiteurs groupés à l’aide d’un paramètre action.

Outil Action Description Lecture seule
testplan list_plans Répertorier les plans de test dans un projet ✅
testplan list_suites Répertorier les suites de tests sous un plan de test ✅
testplan list_cases Lister les cas de test dans une suite de tests ✅
testplan_show_test_results_from_build_id Obtenir les résultats des tests à partir d’une build ✅
testplan_test_run get_results Obtenir les résultats d’une exécution de test avec des filtres facultatifs de détails et de résultats ✅
testplan_test_plan_write create Créer un plan de test ❌
testplan_test_suite_write create Créer une suite de tests ❌
testplan_test_suite_write add_test_cases Ajouter des cas de test à une suite ❌
testplan_test_case_write create Créer un cas de test ❌
testplan_test_case_write update_steps Mettre à jour les étapes de cas de test ❌
testplan_test_run_write create_run Créer une exécution de test pour l’exécution manuelle des tests ❌
testplan_test_run_write update_results Mettre à jour les résultats et les détails des résultats des tests dans une exécution ❌
testplan_test_run_write complete_run Terminer ou abandonner une exécution de test en fonction de ses résultats ❌
testplan_test_run_write update_test_point_outcome Mettre à jour ou réinitialiser les résultats pour les points de test ❌

Sécurité avancée

Les outils de sécurité avancée sont regroupés dans un répartiteur regroupé qui utilise un paramètre action.

Outil Action Description Lecture seule
advsec_alerts list Répertorier les alertes Advanced Security pour un référentiel avec des filtres facultatifs ✅
advsec_alerts get Obtenir une alerte Advanced Security à l’aide de son ID ✅

Enterprise Live Migration (préversion)

Les outils Enterprise Live Migration utilisent un action paramètre pour regrouper et distribuer des tâches. En savoir plus sur la préversion de Enterprise Live Migration.

Important

La prise en charge d’ELM dans le serveur MCP distant Azure DevOps est actuellement en préversion. Les outils sont activés par défaut.

Outil Action Description Lecture seule
enterprise_live_migration list Lister les migrations pour l’organisation, avec filtre de projet facultatif et paramètre includeAllMigrations ✅
enterprise_live_migration get Obtenir l’état de migration d’un référentiel ✅
enterprise_live_migration get_cutover_review Récupérer les éléments en échec ou bloqués avant le basculement ✅
enterprise_live_migration get_device_flow_config Récupérer la configuration du flux d’appareil de l’application GitHub ✅
enterprise_live_migration list_pipelines Lister les pipelines et l’état du recâblage ✅
enterprise_live_migration_write create Créer une nouvelle migration ❌
enterprise_live_migration_write pause Suspendre une migration active ❌
enterprise_live_migration_write resume Reprendre une migration suspendue ❌
enterprise_live_migration_write cutover_set Planifier une date de basculement ❌
enterprise_live_migration_write cutover_cancel Annuler un basculement planifié ❌
enterprise_live_migration_write approve_cutover Accepter les échecs et procéder au basculement ❌
enterprise_live_migration_write abandon Supprimer définitivement une migration ❌
enterprise_live_migration_pipelines_write submit Soumettre des pipelines pour le recâblage ❌
enterprise_live_migration_pipelines_write update Mettre à jour la configuration de rewiring du pipeline ❌
enterprise_live_migration_pipelines_write delete Supprimer tous les clones de pipeline pour une migration de terminal ❌

Pour rendre uniquement les outils Enterprise Live Migration disponibles, utilisez l’en-tête X-MCP-Toolsets avec la elm valeur :

{
  "servers": {
    "ado-remote-mcp": {
      "url": "https://mcp.dev.azure.com/{organization}",
      "type": "http",
      "headers": {
        "X-MCP-Toolsets": "elm"
      }
    }
  },
  "inputs": []
}

Environnements pris en charge

Le serveur MCP à distance Azure DevOps nécessite que votre compte d’utilisateur et votre organisation Azure DevOps se connectent à Microsoft Entra ID.

Tous les clients MCP ne prennent pas en charge l’authentification Microsoft Entra par défaut. Certains environnements nécessitent des étapes supplémentaires pour inscrire l’application cliente.

Les environnements pris en charge pour le point de terminaison distant, lorsque l’authentification Microsoft Entra est disponible, incluent :

  • Visual Studio avec GitHub Copilot
  • Visual Studio
  • Microsoft Foundry
  • Microsoft Copilot Studio
  • GitHub Copilot CLI
  • GitHub application Copilot
  • l’application de bureau Cursor, les agents cloud de Cursor ou Claude Code avec un enregistrement d’application Microsoft Entra personnalisé

Important

Claude Desktop et Codex ne prennent actuellement pas en charge le flux d'authentification Microsoft Entra requis par le serveur MCP Azure DevOps distant. Utilisez le serveur MCP local avec ces clients.

Visual Studio Code

Pour configurer le serveur MCP distant dans Visual Studio Code :

  1. Ajoutez un fichier .vscode/mcp.json à votre référentiel avec la configuration mcp.json indiquée précédemment.
  2. Enregistrez le fichier.
  3. Ouvrez GitHub Copilot dans VS Code.
  4. Lorsque vous y êtes invité, authentifiez-vous à l’aide de votre compte Microsoft Entra et sélectionnez votre compte.

Une fois l’authentification terminée, une liste d’outils disponibles s’affiche.

Visual Studio (2022 et versions ultérieures)

Configurez le serveur MCP distant dans Visual Studio en ajoutant l’URL du serveur à vos paramètres MCP. Pour plus d’informations, consultez Utiliser des serveurs MCP dans Visual Studio.

Choisir des étendues OAuth pour les clients personnalisés

Lorsque vous inscrivez un client MCP personnalisé, accordez uniquement les autorisations déléguées requises pour les opérations de Azure DevOps effectuées par le client. Les étendues OAuth déterminent quelles Azure DevOps ressources et opérations auxquelles le client peut accéder. L’activation d’un outil ou ensemble d’outils MCP n’accorde pas d’autorisations supplémentaires.

Suivez le principe du privilège minimum :

  • N’accordez des portées de lecture que lorsque le client utilise uniquement des outils MCP en mode lecture seule.
  • N’accordez des autorisations en écriture ou en gestion que lorsque le client doit effectuer les opérations d’écriture correspondantes.
  • Passez en revue les étendues héritées pour éviter d’accorder des autorisations redondantes.

Pour connaître les étendues disponibles et leurs relations, consultez les étendues OAuth.

Les étendues OAuth ne remplacent pas les autorisations de l’utilisateur connecté. Une opération MCP réussit uniquement lorsque l'étendue de l'application et les autorisations Azure DevOps de l'utilisateur l'autorisent.

Cursor

Cursor nécessite un enregistrement d’application Microsoft Entra personnalisé pour accéder au serveur MCP Azure DevOps distant.

Enregistrer l’application pour la version de bureau de Cursor

  1. Vérifiez que l’application d’entreprise Azure DevOps MCP est bien provisionnée dans votre locataire. Si vous ne la trouvez pas, consultez Impossible de trouver l’application d’entreprise MCP Azure DevOps dans le locataire.
  2. Dans le centre d’administration Microsoft Entra, accédez à inscriptions d'applications, puis créez une inscription d’application.
  3. Dans l’inscription de l’application, sélectionnez Authentification (Aperçu)>Ajouter un URI de redirection>.
  4. Entrez http://localhost:8787/callback l’URI de redirection, puis enregistrez vos modifications.
  5. Dans la page Authentification (préversion), sélectionnez l’onglet Paramètres , puis activez Autoriser les flux clients publics.
  6. Dans la page Autorisations de l’API , sélectionnez Ajouter une API d’autorisation>que mon organisation utilise.
  7. Recherchez Azure DevOps MCP ou l’ID d’application2a72489c-aab2-4b65-b93a-a91edccf33b8, puis sélectionnez l’application.
  8. Sélectionnez les autorisations déléguées requises par votre client, en suivant les instructions d’étendue OAuth, puis sélectionnez Ajouter des autorisations.
  9. Sélectionner Accorder le consentement administrateur. Selon votre rôle, un administrateur de locataire peut avoir besoin d’effectuer cette étape.

Copiez l’ID d’application (client) depuis l’enregistrement de l’application. Vous avez besoin de cette valeur pour configurer Cursor.

Configurer l’application de bureau Cursor

  1. Dans Curseur, ouvrez Paramètres>Tools &MCP.

  2. Sélectionnez Nouveau serveur MCP.

  3. Ajoutez la configuration suivante, en remplaçant {client-id} par l’ID d’application (client) que vous avez copié :

    {
      "mcpServers": {
        "ado": {
          "url": "https://mcp.dev.azure.com",
          "type": "http",
          "auth": {
            "CLIENT_ID": "{client-id}"
          }
        }
      }
    }
    
  4. Enregistrez la configuration, puis revenez à Paramètres>Tools &MCP.

  5. Recherchez le serveur ado , puis sélectionnez Authentifier.

Configurer les agents Cursor Cloud

Les agents Cursor Cloud nécessitent un URI de redirection web et un secret client, en plus de l’inscription d’application Microsoft Entra personnalisée.

  1. Dans le centre d’administration Microsoft Entra, ouvrez l’inscription de l’application que vous avez créée pour Cursor.

  2. Sélectionnez Authentification (Aperçu)>Ajouter une URI de redirection>Web.

  3. Entrez https://www.cursor.com/agents/mcp/oauth/callback l’URI de redirection, puis enregistrez vos modifications.

  4. Sélectionnez Certificats et secrets>Secrets client>Nouveau secret client.

  5. Entrez une description, sélectionnez une période d’expiration, puis sélectionnez Ajouter.

  6. Copiez la valeur du secret client. La valeur n’apparaît qu’une seule fois.

  7. Dans Cursor, ouvrez la configuration du serveur MCP agents cloud, puis ajoutez ou modifiez le serveur MCP personnalisé.

  8. Définissez l’URL du serveur sur https://mcp.dev.azure.com.

  9. Entrez l’ID d’application (client) de votre inscription d’application dans l’ID client et la valeur de clé secrète client dans la clé secrète client.

    Vous pouvez également modifier la configuration JSON et remplacer les espaces réservés par les valeurs d’inscription de votre application :

    {
      "mcpServers": {
        "ado": {
          "url": "https://mcp.dev.azure.com",
          "type": "http",
          "auth": {
            "CLIENT_ID": "{client-id}",
            "CLIENT_SECRET": "{client-secret}"
          }
        }
      }
    }
    
  10. Enregistrez la configuration, puis sélectionnez Se connecter dansCursor Cloud Agents pour terminer l’authentification Microsoft Entra.

Important

Traitez le secret client comme s’il s’agissait d’un mot de passe. Ne le validez pas dans le contrôle de code source. Avant son expiration, créez un secret de remplacement et mettez à jour la configuration de Cursor Cloud Agents.

Si Microsoft Entra retourne une erreurAADSTS50011, vérifiez que l’URI de redirection web correspond https://www.cursor.com/agents/mcp/oauth/callbackexactement . Si l’échange de jetons échoue avec l’erreur AADSTS7000218, vérifiez que la valeur actuelle du secret client est configurée dans Cursor Cloud Agents.

Claude Code

Claude Code nécessite une inscription d’application Microsoft Entra personnalisée pour accéder au serveur MCP Azure DevOps distant.

Enregistrement de l’application

  1. Vérifiez que l’application d’entreprise Azure DevOps MCP est bien provisionnée dans votre locataire. Si vous ne la trouvez pas, consultez Impossible de trouver l’application d’entreprise MCP Azure DevOps dans le locataire.
  2. Dans le centre d’administration Microsoft Entra, accédez à inscriptions d'applications, puis créez une inscription d’application.
  3. Dans l’inscription de l’application, sélectionnez Authentification (Aperçu)>Ajouter un URI de redirection>.
  4. Entrez http://localhost:3118/callback l’URI de redirection, puis enregistrez vos modifications.
  5. Dans la page Authentification (préversion), sélectionnez l’onglet Paramètres , puis activez Autoriser les flux clients publics.
  6. Dans la page Autorisations de l’API , sélectionnez Ajouter une API d’autorisation>que mon organisation utilise.
  7. Recherchez Azure DevOps MCP ou l’ID d’application2a72489c-aab2-4b65-b93a-a91edccf33b8, puis sélectionnez l’application.
  8. Sélectionnez les autorisations déléguées requises par votre client, en suivant les instructions d’étendue OAuth, puis sélectionnez Ajouter des autorisations.
  9. Sélectionner Accorder le consentement administrateur. Selon votre rôle, un administrateur de locataire peut avoir besoin d’effectuer cette étape.

Copiez l’ID d’application (client) depuis l’enregistrement de l’application. Vous avez besoin de cette valeur pour configurer Claude Code.

Configurer Claude Code

  1. Exécutez la commande suivante, en remplaçant {client-id} par l’ID d’application (client) que vous avez copié et {organization} par le nom de votre organisation Azure DevOps :

    claude mcp add --transport http ado https://mcp.dev.azure.com/{organization} \
      --client-id {client-id} --callback-port 3118
    

    Vous pouvez également créer un .mcp.json fichier à la racine de votre référentiel avec la configuration suivante :

    {
      "mcpServers": {
        "ado": {
          "type": "http",
          "url": "https://mcp.dev.azure.com/{organization}",
          "oauth": {
            "clientId": "{client-id}",
            "callbackPort": 3118
          }
        }
      }
    }
    
  2. Démarrez Claude Code en exécutant claude.

  3. Exécutez /mcp, puis suivez la procédure de connexion dans le navigateur pour vous authentifier avec votre compte Microsoft Entra.

Pour plus d’informations sur ces options, consultez Connecter Claude Code à des outils via MCP.

Vérifier la connexion

Après l’installation, vérifiez que le serveur MCP distant fonctionne en posant à votre assistant IA une question sur vos données Azure DevOps.

Exemples :

  • « Répertorier les projets dans mon organisation Azure DevOps. »
  • « Afficher mes tâches assignées. »
  • « Quelles pull requests nécessitent ma révision ? »

Si l’Assistant IA retourne les résultats de votre organisation Azure DevOps, le serveur MCP distant est configuré correctement.

Utiliser l’IA pour valider et résoudre les problèmes d’installation de MCP à distance

Les exemples d’invites ci-dessous pour Copilot Chat vous aident à choisir la bonne approche MCP, à configurer et valider la configuration à distance, à améliorer vos invites pour l’usage quotidien et à résoudre les problèmes en cas de besoin. Copiez et collez ces prompts dans Copilot Chat, puis remplacez les espaces réservés par les informations réelles concernant votre organisation, votre client et l’erreur.

Tâche Exemple d’invite
Choisir entre distant et local For my environment and client tools, help me decide whether to use the remote Azure DevOps MCP Server or the local server, and explain the tradeoffs.
Créer une configuration avec privilèges minimum Generate a remote mcp.json configuration for organization <contoso> that uses only the needed toolsets and read-only mode.
Valider la configuration mcp.json Review this remote Azure DevOps MCP server configuration and tell me whether anything is missing or incorrect for Visual Studio Code.
Vérifier les hypothèses d’authentification Help me verify whether this remote MCP setup can authenticate with Microsoft Entra ID for organization <contoso>.
Améliorer les instructions de requête au quotidien Give me better prompt wording to reliably fetch fresh Azure DevOps data from remote MCP for project <project-name>, including how to avoid stale results.
Diagnostiquer la connexion refusée I'm getting Connection Refused when connecting to https://mcp.dev.azure.com/<organization>. Give me step-by-step network, proxy, and firewall checks to fix it.
Diagnostiquer les données manquantes The remote MCP server connects, but queries return no data. Help me determine whether this is a permissions issue or missing project context.
En-têtes de filtrage de l’outil de débogage Check my X-MCP-Toolsets and X-MCP-Tools header configuration and explain why expected tools are not appearing.

Copilot est alimenté par l’IA, donc les surprises et les erreurs sont possibles. Pour plus d’informations, consultez les FAQ sur l’utilisation générale de Copilot.

Résolution des problèmes

Issue Résolution
Échec de l’authentification Vérifiez vos informations d’identification Microsoft Entra et vérifiez que vous avez accès à l’organisation Azure DevOps.
Serveur introuvable Vérifiez le format d’URL du serveur : https://mcp.dev.azure.com/{organization}.
Connexion refusée Vérifiez que votre réseau autorise le protocole HTTPS sortant vers mcp.dev.azure.com. Si vous êtes sur un proxy d’entreprise ou un pare-feu, demandez à votre administrateur d’autoriser le point de terminaison et réessayez sans VPN pour isoler les problèmes de chemin d’accès réseau.
Aucune donnée retournée Vérifiez que vous disposez des autorisations appropriées pour le projet ou les ressources interrogées.
Les outils ELM ne sont pas disponibles Les outils ELM sont activés par défaut. Si vous limitez les ensembles d’outils disponibles, vérifiez que l’en-tête X-MCP-Toolsets inclut elm. Reconnectez ensuite le serveur MCP et vérifiez que votre identité dispose des autorisations requises Azure DevOps. Pour connaître les prérequis, consultez la vue d’ensemble des migrations dynamiques d’entreprise.

Pour la prise en charge, vous pouvez soumettre un problème dans le dépôt MCP du serveur local. Veillez à utiliser le modèle de problème distant.

Questions fréquentes (FAQ)

Qu’en est-il d’autres clients comme Claude Desktop ou Codex ?

Claude Desktop et Codex nécessitent l’inscription dynamique d’un ID client OAuth dans Microsoft Entra ID avant de pouvoir utiliser le serveur MCP distant. Microsoft Entra ID ne prend actuellement pas en charge le flux d'inscription dynamique du client requis par ces clients. Utilisez le serveur MCP local avec ces clients.