Configurare il server MCP Azure DevOps remoto

Servizi di Azure DevOps

Il server MCP Azure DevOps remoto è una versione ospitata del Azure DevOps Server MCP che non richiede un'installazione locale. Invece di eseguire il server nel computer, è possibile connettere l'assistente di intelligenza artificiale direttamente all'endpoint Azure DevOps ospitato usando il trasporto HTTP streamable.

Scegli la modalità remota come opzione principale

Usare il server MCP remoto quando l'ambiente lo supporta. Il server remoto è l'opzione consigliata perché Azure DevOps host e lo aggiorna e non è necessario installare Node.js o gestire un processo del server locale.

Usare il server MCP locale quando il client non è in grado di eseguire l'autenticazione nel server remoto con Microsoft Entra ID. Questa limitazione si applica attualmente ai client come Claude Desktop e Codex. Cursor e Claude Code richiedono una registrazione personalizzata Microsoft Entra'app per l'autenticazione. Per istruzioni sulla configurazione locale, vedere Abilitare l'assistenza per intelligenza artificiale con il server MCP Azure DevOps.

Feature Server remoto MCP Server MCP locale
Installazione Non è richiesta alcuna installazione Richiede Node.js 20.0+ e npx
Trasporto HTTP gestibile in streaming stdio
Autenticazione Microsoft Entra ID (OAuth) Azure DevOps PAT o Microsoft Entra ID
Servizio di hosting servizio ospitato su Azure DevOps Viene eseguito localmente nel computer
Configuration Minimo mcp.json Configurazione specifica dell'ambiente

Prerequisiti

Categoria Requisiti
Azure DevOps Un'organizzazione attiva Azure DevOps supportata da un tenant di Microsoft Entra. Le organizzazioni account Microsoft autonome (MSA) non sono supportate per l'utilizzo remoto del server MCP.
Autorizzazioni Appartenenza al progetto e accesso alle risorse su cui si desidera eseguire delle interrogazioni
Ambiente Un ambiente supportato di Assistente IA (vedere Ambienti supportati)

configurazione di mcp.json

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

È anche possibile omettere il nome dell'organizzazione dall'URL. Tuttavia, se si omette il nome dell'organizzazione, è necessario specificarlo come contesto in ogni chiamata allo strumento.

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

Set di strumenti

Specificare i set di strumenti per limitare gli strumenti disponibili per il server MCP. Non deve essere combinato con X-MCP-Tools.

{
  "servers": {
    "ado-remote-mcp": {
      "url": "https://mcp.dev.azure.com/{organization}",
      "type": "http",
      "headers": {
        "X-MCP-Toolsets": "repos,wiki,wit"
      }
    }
  },
  "inputs": []
}
Valore del set di strumenti Strumenti inclusi
all (impostazione predefinita) Tutti gli strumenti
repos Strumenti per repository e pull request
advsec Strumenti avanzati per gli avvisi di sicurezza
wit Strumenti per gli elementi di lavoro e search_workitem
pipelines Strumenti per pipeline e compilazione
wiki Strumenti Wiki e search_wiki
work Strumenti di iterazione e capacità
testplan Strumenti del piano di test
elm Strumenti Enterprise Live Migration (anteprima; abilitati per impostazione predefinita)

Strumenti di sola lettura

Usare l'intestazione X-MCP-Readonly per limitare il server alle operazioni di sola lettura. Questa restrizione è utile quando si desidera impedire modifiche alle risorse Azure DevOps.

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

Combinare strumentazione e filtraggio in modalità sola lettura

{
  "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": []
}

Singoli strumenti

Usare l'intestazione X-MCP-Tools per abilitare solo strumenti specifici. Non deve essere combinato con X-MCP-Toolsets.

Specificare i nomi degli strumenti visualizzati nell'elenco degli strumenti disponibili . Per gli strumenti consolidati come wit_work_item, scegli l'operazione utilizzando il parametro action dello strumento quando lo richiami.

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

Membri del programma Insider

Durante l'esperimento e l'introduzione di nuovi strumenti e aggiornamenti a quelli esistenti, è possibile ottenere l'accesso anticipato a queste modifiche usando l'intestazione X-MCP-Insiders .

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

Strumenti disponibili

Annotazioni

Questo elenco potrebbe non riflettere sempre gli aggiornamenti degli strumenti più recenti.

Strumenti di base

Gli strumenti di base sono sempre disponibili, se non diversamente specificato.

Strumento Descrizione
core_list_orgs Elencare Azure DevOps organizzazioni a cui l'utente autenticato ha accesso
core_list_projects Elencare i progetti in un'organizzazione
core_list_project_teams Elencare i team in un progetto
core_list_group_members Elencare membri diretti e gruppi figlio di un gruppo di Azure DevOps

Annotazioni

Solo gli MCP Insider possono usare core_list_group_members usando l'intestazione X-MCP-Insiders.

Lavoro

Gli strumenti di lavoro vengono consolidati in dispatcher raggruppati tramite il parametro action.

Strumento Action Descrizione Sola lettura
work list_iterations Elencare tutte le iterazioni in un progetto ✅
work list_team_iterations Elencare le iterazioni assegnate a un team ✅
work get_team_settings Ottenere le impostazioni del team, tra cui iterazione predefinita, iterazione backlog e percorso dell'area predefinita ✅
work get_team_capacity Recuperare la capacità del team per un'iterazione ✅
work get_iteration_capacities Ottenere la capacità di un'iterazione per tutti i team nell'iterazione e nel progetto ✅
work_iteration_write create Creare iterazioni ❌
work_iteration_write assign Assegnare iterazioni a un team ❌
work_capacity_write update Aggiornare la capacità di un membro del team per un'iterazione specifica ❌

Repos

Gli strumenti del repository sono consolidati in dispatcher raggruppati utilizzando un parametro action.

Strumento Action Descrizione Sola lettura
repo_pull_request get Ottenere una richiesta pull in base all'ID ✅
repo_pull_request list Elencare i pull request in un repository o in un progetto ✅
repo_pull_request list_by_commits Trovare le richieste pull che contengono ID commit specifici ✅
repo_pull_request get_changes Ottieni le modifiche ai file e i diff facoltativi riga per riga di un'iterazione della pull request ✅
repo_pull_request_thread list Elencare i thread di commento in una richiesta pull ✅
repo_pull_request_thread list_comments Elencare i commenti in un thread specifico ✅
repo_repository get Ottenere un repository in base al nome o all'ID ✅
repo_repository list Elencare i repository in un progetto ✅
repo_branch get Ottenere un ramo in base al nome ✅
repo_branch list Elencare i rami del repository ✅
repo_branch list_mine Elenco dei rami su cui l'utente corrente ha eseguito il push ✅
repo_file get_content Ottenere il contenuto di testo di un file in un ramo, un tag o un commit specifico ✅
repo_file list_directory Elencare i file e le cartelle in una directory, con opzione di elenco ricorsivo ✅
repo_search_commits Ricerca di commit con filtri per testo, autore, intervallo di date e altro ancora ✅
search_code Ricerca di codice full-text ✅
repo_pull_request_write create Creare una richiesta di pull ❌
repo_pull_request_write update Aggiornare una richiesta pull, inclusa l'impostazione del completamento automatico ❌
repo_pull_request_write update_reviewers Aggiungere o rimuovere revisori delle pull request ❌
repo_pull_request_write vote Eseguire un voto su una richiesta pull ❌
repo_pull_request_thread_write create Creare un nuovo thread di commento su una pull request ❌
repo_pull_request_thread_write reply Rispondere a un commento in un thread ❌
repo_pull_request_thread_write update_status Aggiornare lo stato di un thread di commento ❌
repo_create_branch Creare un ramo ❌

Arguzia

Gli strumenti degli elementi di lavoro sono consolidati in dispatcher raggruppati tramite un parametro action.

Strumento Action Descrizione Sola lettura
wit_work_item get Recuperare un elemento di lavoro tramite ID ✅
wit_work_item get_batch Ottieni diversi elementi di lavoro in base agli ID ✅
wit_work_item list_comments Elencare i commenti in un elemento di lavoro ✅
wit_work_item my Ottenere elementi di lavoro rilevanti per l'utente autenticato ✅
wit_work_item list_revisions Elencare le revisioni di un elemento di lavoro ✅
wit_work_item list_for_iteration Elencare gli elementi di lavoro per un'iterazione del team ✅
wit_work_item get_type Ottenere i metadati per un tipo di elemento di lavoro ✅
wit_query get Recuperare una query in base all'ID o al percorso ✅
wit_query get_results Eseguire una query salvata ✅
wit_query search Eseguire ricerche in base al nome ✅
wit_query list Elenca le cartelle radice di query e le relative cartelle figlio ✅
wit_query_by_wiql Eseguire una query WIQL e restituire elementi di lavoro corrispondenti ✅
wit_backlog list Elencare i livelli di backlog per un team ✅
wit_backlog list_work_items Elencare gli elementi di lavoro in un livello di backlog specifico ✅
search_workitem Ricerca di elementi di lavoro a testo completo ✅
wit_work_item_write create Creare un nuovo elemento di lavoro ❌
wit_work_item_write update Aggiornare i campi in un elemento di lavoro ❌
wit_work_item_write update_batch Aggiornare più elementi di lavoro in una chiamata ❌
wit_work_item_write add_child Creare elementi di lavoro figlio sotto un elemento padre ❌
wit_work_item_comment_write add Aggiungere un commento a un elemento di lavoro ❌
wit_work_item_comment_write update Aggiornare un commento esistente in un elemento di lavoro ❌
wit_work_item_link_write link Collegare due elementi di lavoro ❌
wit_work_item_link_write unlink Rimuovere i collegamenti da un elemento di lavoro ❌
wit_work_item_link_write link_to_pull_request Collegare un elemento di lavoro a una richiesta pull ❌
wit_work_item_link_write add_artifact_link Aggiungi a un elemento di lavoro un collegamento di tipo repository, ramo, commit, compilazione o artefatto wiki ❌
wit_work_item_attachment Scaricare un allegato dell'elemento di lavoro in base all'ID; restituisce contenuto con codifica Base64 con nome file e tipo MIME ✅
wit_work_item_attachment_upload Caricare il contenuto del file (fino a 20 MB, con codifica Base64) nell'archivio allegati senza allegarlo a un elemento di lavoro ❌
wit_work_item_attachment_link Collegare un allegato caricato in precedenza a un elemento di lavoro ❌

Annotazioni

wit_query_by_wiql è attualmente disponibile solo per i partecipanti al programma McP Insider usando l'intestazione X-MCP-Insiders .

Pipeline

Gli strumenti della pipeline vengono consolidati in dispatcher raggruppati tramite un parametro action.

Strumento Action Descrizione Sola lettura
pipelines_build list Elencare le compilazioni con filtri facoltativi ✅
pipelines_build get_status Ottenere lo stato, i problemi e i metadati del report per una compilazione ✅
pipelines_build get_changes Ottenere commit ed elementi di lavoro associati a un build ✅
pipelines_build_log list Elencare i log disponibili per una compilazione ✅
pipelines_build_log get_content Ottenere il contenuto di testo di un log specifico in base all'ID ✅
pipelines_definition list Elencare le definizioni di pipeline con filtri facoltativi ✅
pipelines_definition list_revisions Elencare la cronologia delle revisioni per una definizione della pipeline ✅
pipelines_run get Ottieni un singolo ciclo di esecuzione della pipeline ✅
pipelines_run list Elencare le esecuzioni della pipeline ✅
pipelines_artifact list Elencare gli artefatti per un build ✅
pipelines_artifact download Scaricare un artefatto denominato della build ✅
pipelines_write run_pipeline Accoda una nuova esecuzione della pipeline ❌
pipelines_write create_pipeline Creare una nuova definizione di pipeline YAML ❌
pipelines_write update_build_stage Annullare, riprovare o eseguire una fase in una build in corso ❌

Wiki

Le operazioni di lettura wiki vengono consolidate in un unico wiki strumento. Usare il action parametro per selezionare l'operazione.

Strumento Action Descrizione Sola lettura
wiki list_wikis Elencare wiki in un progetto o un'organizzazione ✅
wiki get_wiki Recuperare un wiki tramite identificatore ✅
wiki list_pages Elencare le pagine in un wiki ✅
wiki get_page Ottenere il contenuto e i metadati della pagina ✅
search_wiki Full-text ricerca wiki ✅
wiki_upsert_page Creare o aggiornare una pagina wiki ❌

Piani di test

Gli strumenti del piano di test vengono consolidati in dispatcher raggruppati usando un action parametro .

Strumento Action Descrizione Sola lettura
testplan list_plans Elencare i piani di test in un progetto ✅
testplan list_suites Elencare i gruppi di test in un piano di test ✅
testplan list_cases Elencare i test case in un gruppo di test ✅
testplan_show_test_results_from_build_id Ottenere i risultati dei test da una compilazione ✅
testplan_test_run get_results Ottieni i risultati di una esecuzione di test con filtri facoltativi per dettagli ed esito ✅
testplan_test_plan_write create Creare un piano di test ❌
testplan_test_suite_write create Creare una suite di test ❌
testplan_test_suite_write add_test_cases Aggiungere test case a un gruppo di prodotti ❌
testplan_test_case_write create Creare un caso di test ❌
testplan_test_case_write update_steps Aggiornare i passaggi del test case ❌
testplan_test_run_write create_run Crea un'esecuzione di test per l'esecuzione manuale dei test ❌
testplan_test_run_write update_results Aggiorna gli esiti e i dettagli dei risultati dei test in un'esecuzione ❌
testplan_test_run_write complete_run Completare o interrompere un'esecuzione di test in base ai risultati ❌
testplan_test_run_write update_test_point_outcome Aggiornare o reimpostare i risultati per i punti di test ❌

Sicurezza avanzata

Gli strumenti di sicurezza avanzata vengono consolidati in un dispatcher raggruppato che usa un action parametro .

Strumento Action Descrizione Sola lettura
advsec_alerts list Elencare gli avvisi di sicurezza avanzata per un repository con filtri facoltativi ✅
advsec_alerts get Ottenere un avviso di sicurezza avanzata in base all'ID ✅

Enterprise Live Migration (anteprima)

Gli strumenti Enterprise Live Migration usano un action parametro per raggruppare e inviare attività. Altre informazioni sull'anteprima di Enterprise Live Migration.

Importante

Il supporto ELM nel server MCP Azure DevOps remoto è attualmente in anteprima. Gli strumenti sono abilitati per impostazione predefinita.

Strumento Action Descrizione Sola lettura
enterprise_live_migration list Elenca le migrazioni per l'organizzazione; filtro facoltativo per progetto e il flag includeAllMigrations ✅
enterprise_live_migration get Ottenere lo stato della migrazione per un repository ✅
enterprise_live_migration get_cutover_review Recuperare gli elementi con esito negativo o bloccati prima del cutover ✅
enterprise_live_migration get_device_flow_config Ottieni la configurazione del flusso del dispositivo dell'app GitHub ✅
enterprise_live_migration list_pipelines Elenco delle pipeline e stato del ricablaggio ✅
enterprise_live_migration_write create Creare una nuova migrazione ❌
enterprise_live_migration_write pause Sospendere una migrazione attiva ❌
enterprise_live_migration_write resume Riprendere una migrazione sospesa ❌
enterprise_live_migration_write cutover_set Pianificare una data di cutover ❌
enterprise_live_migration_write cutover_cancel Annulla un passaggio programmato ❌
enterprise_live_migration_write approve_cutover Accetta gli errori e procedi con il cutover ❌
enterprise_live_migration_write abandon Eliminare definitivamente una migrazione ❌
enterprise_live_migration_pipelines_write submit Inviare pipeline per il ricablaggio ❌
enterprise_live_migration_pipelines_write update Aggiornare la configurazione di riwiring della pipeline ❌
enterprise_live_migration_pipelines_write delete Eliminare tutti i cloni della pipeline per una migrazione del terminale ❌

Per rendere disponibili solo gli strumenti Enterprise Live Migration, usare l'intestazione X-MCP-Toolsets con il elm valore :

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

Ambienti supportati

Il server MCP Azure DevOps remoto richiede il tuo account utente e la tua organizzazione Azure DevOps per connettersi a Microsoft Entra ID.

Non tutti i client MCP supportano l'autenticazione di Microsoft Entra per impostazione predefinita. Alcuni ambienti richiedono passaggi aggiuntivi per registrare l'applicazione client.

Gli ambienti supportati per l'endpoint remoto, quando è disponibile l'autenticazione di Microsoft Entra, includono:

  • Visual Studio con GitHub Copilot
  • Visual Studio
  • Microsoft Foundry
  • Microsoft Copilot Studio
  • interfaccia della riga di comando (CLI) di GitHub Copilot
  • GitHub app Copilot
  • app desktop di Cursor, agenti cloud di Cursor o Claude Code con una registrazione di app personalizzata di Microsoft Entra

Importante

Claude Desktop e Codex attualmente non supportano il flusso di autenticazione Microsoft Entra richiesto dal server MCP Azure DevOps remoto. Usare il server MCP locale con questi client.

Visual Studio Code

Per configurare il server MCP remoto in Visual Studio Code:

  1. Aggiungi un .vscode/mcp.json file al repository con la configurazione mcp.json illustrata in precedenza.
  2. Salva il file.
  3. Apri GitHub Copilot in VS Code.
  4. Quando richiesto, effettuare l'autenticazione utilizzando l'account Microsoft Entra e selezionare l'account.

Al termine dell'autenticazione, viene visualizzato un elenco degli strumenti disponibili.

Visual Studio (2022 e versioni successive)

Configurare il server MCP remoto in Visual Studio aggiungendo l'URL del server alle impostazioni mcp. Per altre informazioni, vedere Use MCP servers in Visual Studio.

Scegliere gli ambiti OAuth per i client personalizzati

Quando si registra un client MCP personalizzato, concedere solo le autorizzazioni delegate necessarie per le operazioni di Azure DevOps eseguite dal client. Gli ambiti OAuth determinano quali Azure DevOps risorse e operazioni a cui il client può accedere. L'abilitazione di uno strumento o un set di strumenti MCP non concede autorizzazioni aggiuntive.

Seguire il principio dei privilegi minimi:

  • Concedere ambiti di lettura quando il client usa solo strumenti MCP di sola lettura.
  • Concedere ambiti di scrittura o gestione solo quando il client necessita delle operazioni di scrittura corrispondenti.
  • Esaminare gli ambiti ereditati per evitare di concedere autorizzazioni ridondanti.

Per gli ambiti disponibili e le relative relazioni, vedere Ambiti OAuth.

Gli scope OAuth non prevalgono sulle autorizzazioni dell'utente che ha effettuato l'accesso. Un'operazione MCP ha esito positivo solo quando sia l'ambito dell'applicazione che le autorizzazioni di Azure DevOps dell'utente lo consentono.

Cursor

Cursor richiede una registrazione personalizzata di un'app Microsoft Entra per accedere al server MCP remoto di Azure DevOps.

Registra l'applicazione Cursor per desktop

  1. Verifica che l'applicazione aziendale Azure DevOps MCP sia stata sottoposta a provisioning nel tenant. Se non riesci a trovarla, consulta Non riesci a trovare l'applicazione aziendale Azure DevOps MCP nel tenant.
  2. Nel Interfaccia di amministrazione di Microsoft Entra passare a Registrazioni app e quindi creare una registrazione dell'app.
  3. Nella registrazione dell'app selezionare Autenticazione (anteprima)>Aggiungi URI> di reindirizzamentoApplicazioni per dispositivi mobili e desktop.
  4. Immettere http://localhost:8787/callback come URI di reindirizzamento e quindi salvare le modifiche.
  5. Nella pagina Autenticazione (anteprima) selezionare la scheda Impostazioni e quindi abilitare Consenti flussi client pubblici.
  6. Nella pagina Autorizzazioni API selezionare Aggiungi un'API di autorizzazione>usata dall'organizzazione.
  7. Cercare Azure DevOps MCP o l'ID 2a72489c-aab2-4b65-b93a-a91edccf33b8applicazione e quindi selezionare l'applicazione.
  8. Selezionare le autorizzazioni delegate richieste dal client, seguendo le indicazioni sull'ambito OAuth e quindi selezionare Aggiungi autorizzazioni.
  9. Seleziona Concedi consenso amministratore. A seconda del ruolo, potrebbe essere necessario completare questo passaggio da parte di un amministratore tenant.

Copiare l'ID applicazione (client) dalla registrazione dell'app. Questo valore è necessario per configurare Cursor.

Configurare il desktop cursore

  1. In Cursor, apri Impostazioni>Strumenti & MCP.

  2. Selezionare Nuovo server MCP.

  3. Aggiungere la configurazione seguente, sostituendo {client-id} con l'ID applicazione (client) copiato:

    {
      "mcpServers": {
        "ado": {
          "url": "https://mcp.dev.azure.com",
          "type": "http",
          "auth": {
            "CLIENT_ID": "{client-id}"
          }
        }
      }
    }
    
  4. Salva la configurazione, quindi torna a Impostazioni>Strumenti & MCP.

  5. Individuare il server ado e quindi selezionare Autentica.

Configurare gli agenti cloud di Cursor

Gli agenti cloud cursore richiedono un URI di reindirizzamento Web e un segreto client oltre alla registrazione personalizzata dell'app Microsoft Entra.

  1. Nella Interfaccia di amministrazione di Microsoft Entra aprire la registrazione dell'app creata per Cursor.

  2. Selezionare Autenticazione (anteprima)>Aggiungi URI di reindirizzamento>Web.

  3. Immettere https://www.cursor.com/agents/mcp/oauth/callback come URI di reindirizzamento e quindi salvare le modifiche.

  4. Selezionare Certificati e segreti>Segreti client>Nuovo segreto client.

  5. Immettere una descrizione, selezionare un periodo di scadenza e quindi selezionare Aggiungi.

  6. Copia il valore del segreto del client. Il valore viene visualizzato una sola volta.

  7. In Cursore aprire la configurazione del server MCP degli agenti cloud e quindi aggiungere o modificare il server MCP personalizzato.

  8. Impostare l'URL del server su https://mcp.dev.azure.com.

  9. Immettere l'ID applicazione (client) della registrazione dell'app in Client ID e il valore del segreto del client in Client Secret.

    In alternativa, modificare la configurazione JSON e sostituire i segnaposto con i valori di registrazione dell'app:

    {
      "mcpServers": {
        "ado": {
          "url": "https://mcp.dev.azure.com",
          "type": "http",
          "auth": {
            "CLIENT_ID": "{client-id}",
            "CLIENT_SECRET": "{client-secret}"
          }
        }
      }
    }
    
  10. Salvare la configurazione e quindi selezionare Accedi da Cursor Cloud Agents per completare l'autenticazione Microsoft Entra.

Importante

Tratta il segreto del client come una password. Non eseguirne il commit nel controllo del codice sorgente. Prima che scada, creare un nuovo segreto e aggiornare la configurazione di Cursor Cloud Agents.

Se Microsoft Entra restituisce l'errore AADSTS50011, verificare che l'URI di reindirizzamento Web corrisponda esattamente a https://www.cursor.com/agents/mcp/oauth/callback. Se lo scambio di token ha esito negativo con errore AADSTS7000218, verificare che il valore corrente del segreto del client sia configurato in Cursor Cloud Agents.

Claude Code

Claude Code richiede una registrazione dell'app Microsoft Entra personalizzata per accedere al server MCP Azure DevOps remoto.

Registrare l'applicazione

  1. Verifica che l'applicazione aziendale Azure DevOps MCP sia stata sottoposta a provisioning nel tenant. Se non riesci a trovarla, consulta Non riesci a trovare l'applicazione aziendale Azure DevOps MCP nel tenant.
  2. Nel Interfaccia di amministrazione di Microsoft Entra passare a Registrazioni app e quindi creare una registrazione dell'app.
  3. Nella registrazione dell'app selezionare Autenticazione (anteprima)>Aggiungi URI> di reindirizzamentoApplicazioni per dispositivi mobili e desktop.
  4. Immettere http://localhost:3118/callback come URI di reindirizzamento e quindi salvare le modifiche.
  5. Nella pagina Autenticazione (anteprima) selezionare la scheda Impostazioni e quindi abilitare Consenti flussi client pubblici.
  6. Nella pagina Autorizzazioni API selezionare Aggiungi un'API di autorizzazione>usata dall'organizzazione.
  7. Cercare Azure DevOps MCP o l'ID 2a72489c-aab2-4b65-b93a-a91edccf33b8applicazione e quindi selezionare l'applicazione.
  8. Selezionare le autorizzazioni delegate richieste dal client, seguendo le indicazioni sull'ambito OAuth e quindi selezionare Aggiungi autorizzazioni.
  9. Seleziona Concedi consenso amministratore. A seconda del ruolo, potrebbe essere necessario completare questo passaggio da parte di un amministratore tenant.

Copiare l'ID applicazione (client) dalla registrazione dell'app. Questo valore è necessario per configurare Claude Code.

Configurare Claude Code

  1. Eseguire il comando seguente, sostituendo {client-id} con l'ID applicazione (client) copiato e {organization} con il nome dell'organizzazione Azure DevOps:

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

    In alternativa, creare un .mcp.json file nella radice del repository con la configurazione seguente:

    {
      "mcpServers": {
        "ado": {
          "type": "http",
          "url": "https://mcp.dev.azure.com/{organization}",
          "oauth": {
            "clientId": "{client-id}",
            "callbackPort": 3118
          }
        }
      }
    }
    
  2. Avviare Claude Code eseguendo claude.

  3. Eseguire /mcpe quindi seguire il flusso di accesso del browser per eseguire l'autenticazione con l'account Microsoft Entra.

Per altre informazioni su queste opzioni, vedere Connettere Claude Code agli strumenti tramite MCP.

Verificare la connessione

Dopo l'installazione, verificare che il server MCP remoto funzioni ponendo all'assistente di intelligenza artificiale una domanda sui dati Azure DevOps.

Esempi:

  • "Elencare i progetti nell'organizzazione Azure DevOps."
  • "Mostra gli elementi di lavoro assegnati".
  • Quali pull request richiedono la mia revisione?

Se l'assistente per intelligenza artificiale restituisce i risultati dell'organizzazione Azure DevOps, il server MCP remoto è configurato correttamente.

Usare l'intelligenza artificiale per convalidare e risolvere i problemi di configurazione mcp remoti

I seguenti prompt di esempio per Copilot Chat aiutano a scegliere l'approccio MCP corretto, a configurare e convalidare la configurazione remota, a migliorare i prompt per l'uso quotidiano e a risolvere i problemi quando necessario. Copia e incolla questi prompt in Copilot Chat e sostituisci i segnaposto con i dettagli effettivi della tua organizzazione, del tuo cliente e degli errori.

Task Richiesta di esempio
Scegliere remote e 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.
Creare una configurazione con privilegi minimi Generate a remote mcp.json configuration for organization <contoso> that uses only the needed toolsets and read-only mode.
Convalidare la mcp.json configurazione Review this remote Azure DevOps MCP server configuration and tell me whether anything is missing or incorrect for Visual Studio Code.
Verificare i presupposti di autenticazione Help me verify whether this remote MCP setup can authenticate with Microsoft Entra ID for organization <contoso>.
Migliorare i prompt di query nel lavoro quotidiano 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.
Diagnosticare la connessione rifiutata 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.
Diagnosticare i dati mancanti The remote MCP server connects, but queries return no data. Help me determine whether this is a permissions issue or missing project context.
Intestazioni di filtro degli strumenti di debug Check my X-MCP-Toolsets and X-MCP-Tools header configuration and explain why expected tools are not appearing.

Copilot è alimentato dall'IA, quindi sono possibili sorprese ed errori. Per ulteriori informazioni, consultare le FAQ generali sull'utilizzo di Copilot.

Risoluzione dei problemi

Issue Risoluzione
L'autenticazione non riesce Verificare le credenziali di Microsoft Entra e verificare di avere accesso all'organizzazione Azure DevOps.
Server non trovato Controllare il formato dell'URL del server: https://mcp.dev.azure.com/{organization}.
Connessione rifiutata Verificare che la rete consenta HTTPS in uscita a mcp.dev.azure.com. Se si usa un proxy aziendale o un firewall, chiedere all'amministratore di elencare l'endpoint e riprovare senza VPN per isolare i problemi del percorso di rete.
Nessun dato restituito Verificare di disporre delle autorizzazioni appropriate per il progetto o le risorse interrogate.
Gli strumenti ELM non sono disponibili Gli strumenti ELM sono abilitati per impostazione predefinita. Se si limitano i set di strumenti disponibili, verificare che l'intestazione X-MCP-Toolsets includa elm. Riconnetti quindi MCP Server e verifica che la tua identità disponga delle autorizzazioni Azure DevOps necessarie. Per i prerequisiti, consulta la panoramica di Enterprise Live Migrations.

Per il supporto, è possibile creare un problema nel repository del server MCP locale . Assicurarsi di usare il modello di segnalazione remoto.

Domande frequenti

Che ne dici di altri client come Claude Desktop o Codex?

Claude Desktop e Codex richiedono la registrazione dinamica di un ID client OAuth in Microsoft Entra ID prima di poter usare il server MCP remoto. Microsoft Entra ID attualmente non supporta il flusso di registrazione client dinamico richiesto da questi client. Usare il server MCP locale con questi client.