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, Claude Code et Codex. Le curseur nécessite une inscription d’application Microsoft Entra personnalisée 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 pull request
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

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 de détails et de résultats facultatifs
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
  • Curseur avec une inscription d’application Microsoft Entra personnalisée

Important

Claude Desktop, Claude Code et Codex ne prennent pas actuellement 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.

Cursor

Cursor nécessite un enregistrement d’application Microsoft Entra personnalisé 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 le trouvez pas, voir 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 application, 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 le curseur

  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.

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)

Et d’autres clients comme Claude Desktop, Claude Code ou Codex ?

Claude Desktop, Claude Code 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.