Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Serviços do Azure DevOps
O servidor MCP de Azure DevOps remoto é uma versão hospedada do servidor MCP Azure DevOps que não requer uma instalação local. Em vez de executar o servidor em seu computador, você conecta seu assistente de IA diretamente ao ponto de extremidade hospedado no Azure DevOps usando transporte HTTP em streaming.
Escolha o controle remoto primeiro
Use o servidor MCP remoto quando o ambiente der suporte a ele. O servidor remoto é a opção recomendada porque o Azure DevOps o hospeda e o atualiza, e você não precisa instalar o Node.js nem gerenciar um processo de servidor local.
Use o servidor MCP local quando o cliente não puder se autenticar no servidor remoto com Microsoft Entra ID. Atualmente, essa limitação se aplica a clientes como Claude Desktop e Codex. O Cursor e o Claude Code exigem um registro de aplicativo Microsoft Entra personalizado para autenticação. Para obter instruções de configuração local, consulte Habilitar a assistência de IA com o servidor MCP Azure DevOps.
| Característica | Servidor MCP remoto | Servidor MCP local |
|---|---|---|
| Instalação | Não é necessária instalação | Requer Node.js 20.0+ e npx |
| Transporte | HTTP transmissível | stdio |
| Autenticação | ID do Microsoft Entra (OAuth) | Azure DevOps PAT ou Microsoft Entra ID |
| Hosting | Serviço Azure DevOps hospedado | É executado localmente em seu computador |
| Configuração | Mínimo mcp.json |
Configuração específica do ambiente |
Pré-requisitos
| Categoria | Requisitos |
|---|---|
| Azure DevOps | Uma organização do Azure DevOps ativa apoiada por um locatário do Microsoft Entra. Organizações com conta Microsoft (MSA) independente não são compatíveis com o uso remoto do Servidor MCP. |
| Permissões | Associação ao projeto e acesso aos recursos que você deseja consultar |
| Ambiente | Um ambiente de assistente de IA com suporte (consulte ambientes com suporte) |
configuração de mcp.json
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http"
}
},
"inputs": []
}
Você também pode omitir o nome da organização da URL. No entanto, se você omitir o nome da organização, deverá fornecê-lo como contexto em cada chamada de ferramenta.
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/",
"type": "http"
}
},
"inputs": []
}
Conjuntos de ferramentas
Especifique os conjuntos de ferramentas para restringir as ferramentas disponíveis para o servidor MCP. Não deve ser combinado com X-MCP-Tools.
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Toolsets": "repos,wiki,wit"
}
}
},
"inputs": []
}
| Valor do conjunto de ferramentas | Ferramentas incluídas |
|---|---|
all
(padrão) |
Todas as ferramentas |
repos |
Ferramentas de repositório e de pull request |
advsec |
Ferramentas de alerta de Segurança Avançada |
wit |
Ferramentas de itens de trabalho e search_workitem |
pipelines |
Ferramentas de pipeline e de compilação |
wiki |
Ferramentas Wiki e search_wiki |
work |
Iterações e ferramentas de capacidade |
testplan |
Ferramentas de plano de testes |
elm |
Ferramentas de Migração Dinâmica da Empresa (versão prévia; habilitadas por padrão) |
Ferramentas somente leitura
Use o X-MCP-Readonly cabeçalho para restringir o servidor a operações somente leitura. Essa restrição é útil quando você deseja impedir modificações em recursos Azure DevOps.
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Readonly": "true"
}
}
},
"inputs": []
}
Combinar conjuntos de ferramentas e filtragem somente para leitura
{
"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": []
}
Ferramentas individuais
Use o X-MCP-Tools cabeçalho para habilitar apenas ferramentas específicas. Não deve ser combinado com X-MCP-Toolsets.
Especifique os nomes de ferramentas que aparecem na lista de ferramentas disponíveis . Para ferramentas consolidadas, como wit_work_item, escolha a operação usando o parâmetro action da ferramenta ao chamá-la.
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Tools": "core_list_projects, wit_work_item"
}
}
},
"inputs": []
}
Funcionários internos
À medida que experimentamos e introduzimos novas ferramentas e atualizações para as existentes, você pode obter acesso antecipado a essas alterações usando o X-MCP-Insiders cabeçalho.
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Insiders": "true"
}
}
},
"inputs": []
}
Ferramentas disponíveis
Observação
Essa lista pode nem sempre refletir as atualizações de ferramentas mais recentes.
Ferramentas principais
As ferramentas principais estão sempre disponíveis, a menos que anotadas de outra forma.
| Tool | Descrição |
|---|---|
core_list_orgs |
Listar Azure DevOps organizações às quais o usuário autenticado tem acesso |
core_list_projects |
Listar projetos em uma organização |
core_list_project_teams |
Listar equipes em um projeto |
core_list_group_members |
Listar membros diretos e grupos filho de um grupo Azure DevOps |
Observação
Somente os Participantes do Programa McP Insider podem usar core_list_group_members usando o X-MCP-Insiders cabeçalho.
Trabalho
As ferramentas de trabalho são consolidadas em dispatchers agrupados usando um parâmetro action.
| Tool | Ação | Descrição | Somente leitura |
|---|---|---|---|
work |
list_iterations |
Listar todas as iterações em um projeto | ✅ |
work |
list_team_iterations |
Listar iterações atribuídas a uma equipe | ✅ |
work |
get_team_settings |
Obter configurações da equipe, incluindo iteração padrão, iteração do backlog e caminho da área padrão | ✅ |
work |
get_team_capacity |
Obter a capacidade da equipe para uma iteração | ✅ |
work |
get_iteration_capacities |
Obter capacidade de uma iteração para todas as equipes na iteração e no projeto | ✅ |
work_iteration_write |
create |
Criar iterações | ❌ |
work_iteration_write |
assign |
Atribuir iterações a uma equipe | ❌ |
work_capacity_write |
update |
Atualizar a capacidade de um membro da equipe em uma iteração específica | ❌ |
Repos
As ferramentas do repositório são consolidadas em dispatchers agrupados usando um parâmetro action.
| Tool | Ação | Descrição | Somente leitura |
|---|---|---|---|
repo_pull_request |
get |
Obter uma solicitação de pull por ID | ✅ |
repo_pull_request |
list |
Listar solicitações pull em um repositório ou projeto | ✅ |
repo_pull_request |
list_by_commits |
Localizar solicitações de pull que contêm IDs de confirmação específicas | ✅ |
repo_pull_request |
get_changes |
Obter alterações em arquivos e diffs opcionais linha por linha para uma iteração de pull request | ✅ |
repo_pull_request_thread |
list |
Informar tópicos de comentários em uma solicitação de pull | ✅ |
repo_pull_request_thread |
list_comments |
Listar comentários em um thread específico | ✅ |
repo_repository |
get |
Obter um repositório por nome ou ID | ✅ |
repo_repository |
list |
Listar repositórios em um projeto | ✅ |
repo_branch |
get |
Obter um branch por nome | ✅ |
repo_branch |
list |
Listar branches em um repositório | ✅ |
repo_branch |
list_mine |
Informar ramificações para as quais o usuário atual enviou alterações | ✅ |
repo_file |
get_content |
Obter o conteúdo de texto de um arquivo em uma branch, tag ou commit específico | ✅ |
repo_file |
list_directory |
Listar arquivos e pastas em um diretório, com listagem recursiva opcional | ✅ |
repo_search_commits |
Pesquise commits utilizando filtros como texto, autor, intervalo de datas, entre outros | ✅ | |
search_code |
Pesquisa de código de texto completo | ✅ | |
repo_pull_request_write |
create |
Criar uma solicitação de pull | ❌ |
repo_pull_request_write |
update |
Atualizar uma solicitação de pull, incluindo a configuração do autocompletar | ❌ |
repo_pull_request_write |
update_reviewers |
Adicionar ou remover revisores de um pull request | ❌ |
repo_pull_request_write |
vote |
Votar em uma solicitação de pull | ❌ |
repo_pull_request_thread_write |
create |
Criar um novo thread de comentário em uma solicitação de pull | ❌ |
repo_pull_request_thread_write |
reply |
Responder a um comentário em um thread | ❌ |
repo_pull_request_thread_write |
update_status |
Atualizar o status de um thread de comentário | ❌ |
repo_create_branch |
Criar um branch | ❌ |
Wit
As ferramentas de itens de trabalho são consolidadas em dispatchers agrupados usando um parâmetro action.
| Tool | Ação | Descrição | Somente leitura |
|---|---|---|---|
wit_work_item |
get |
Obter um item de trabalho por ID | ✅ |
wit_work_item |
get_batch |
Obter vários itens de trabalho por IDs | ✅ |
wit_work_item |
list_comments |
Listar comentários em um item de trabalho | ✅ |
wit_work_item |
my |
Obter itens de trabalho relevantes para o usuário autenticado | ✅ |
wit_work_item |
list_revisions |
Listar revisões de um item de trabalho | ✅ |
wit_work_item |
list_for_iteration |
Listar itens de trabalho para uma iteração de equipe | ✅ |
wit_work_item |
get_type |
Obter metadados para um tipo de item de trabalho | ✅ |
wit_query |
get |
Obter uma consulta por ID ou caminho | ✅ |
wit_query |
get_results |
Executar uma consulta salva | ✅ |
wit_query |
search |
Pesquisar consultas por nome | ✅ |
wit_query |
list |
Listar as pastas raiz de consulta e suas pastas filho | ✅ |
wit_query_by_wiql |
Executar uma consulta WIQL e retornar itens de trabalho correspondentes | ✅ | |
wit_backlog |
list |
Listar os níveis de lista de pendências de uma equipe | ✅ |
wit_backlog |
list_work_items |
Listar itens de trabalho em um nível de lista de pendências específico | ✅ |
search_workitem |
Pesquisa de texto completo em item de trabalho | ✅ | |
wit_work_item_write |
create |
Criar um novo item de trabalho | ❌ |
wit_work_item_write |
update |
Atualizar campos em um item de trabalho | ❌ |
wit_work_item_write |
update_batch |
Atualizar vários itens de trabalho em uma chamada | ❌ |
wit_work_item_write |
add_child |
Criar itens de trabalho filhos sob um item pai | ❌ |
wit_work_item_comment_write |
add |
Adicionar um comentário a um item de trabalho | ❌ |
wit_work_item_comment_write |
update |
Atualizar um comentário existente em um item de trabalho | ❌ |
wit_work_item_link_write |
link |
Vincular dois itens de trabalho | ❌ |
wit_work_item_link_write |
unlink |
Remover links de um item de trabalho | ❌ |
wit_work_item_link_write |
link_to_pull_request |
Vincular um item de trabalho a uma solicitação de pull | ❌ |
wit_work_item_link_write |
add_artifact_link |
Adicionar um link para um repositório, ramificação, confirmação, build ou link de artefato de wiki a um item de trabalho | ❌ |
wit_work_item_attachment |
Baixe um anexo de item de trabalho por ID; retorna conteúdo codificado em base64 com nome de arquivo e tipo MIME | ✅ | |
wit_work_item_attachment_upload |
Carregar o conteúdo do arquivo (até 20 MB, codificado em Base64) no repositório de anexos sem anexá-lo a um item de trabalho | ❌ | |
wit_work_item_attachment_link |
Vincular um anexo carregado anteriormente a um item de trabalho | ❌ |
Observação
wit_query_by_wiql atualmente está disponível apenas para insiders do MCP usando o X-MCP-Insiders cabeçalho.
Pipelines
As ferramentas do pipeline são consolidadas em dispatchers agrupados usando um parâmetro action.
| Tool | Ação | Descrição | Somente leitura |
|---|---|---|---|
pipelines_build |
list |
Listar builds com filtros opcionais | ✅ |
pipelines_build |
get_status |
Obter status, problemas e metadados de relatório para uma compilação | ✅ |
pipelines_build |
get_changes |
Obter confirmações e itens de trabalho associados a uma compilação | ✅ |
pipelines_build_log |
list |
Listar logs disponíveis para uma compilação | ✅ |
pipelines_build_log |
get_content |
Obter o conteúdo de texto de um log específico por ID | ✅ |
pipelines_definition |
list |
Listar definições de pipeline com filtros opcionais | ✅ |
pipelines_definition |
list_revisions |
Listar o histórico de revisão de uma definição de pipeline | ✅ |
pipelines_run |
get |
Obter uma única execução de pipeline | ✅ |
pipelines_run |
list |
Listar execuções para um pipeline | ✅ |
pipelines_artifact |
list |
Listar artefatos para uma compilação | ✅ |
pipelines_artifact |
download |
Baixar um artefato de build nomeado | ✅ |
pipelines_write |
run_pipeline |
Enfileirar uma nova execução de pipeline | ❌ |
pipelines_write |
create_pipeline |
Criar uma nova definição de pipeline YAML | ❌ |
pipelines_write |
update_build_stage |
Cancelar, repetir ou executar um estágio em uma compilação em andamento | ❌ |
Wiki
As operações de leitura da wiki são consolidadas em uma única ferramenta wiki. Use o action parâmetro para selecionar a operação.
| Tool | Ação | Descrição | Somente leitura |
|---|---|---|---|
wiki |
list_wikis |
Listar wikis em um projeto ou organização | ✅ |
wiki |
get_wiki |
Obter um wiki por identificador | ✅ |
wiki |
list_pages |
Listar páginas em um wiki | ✅ |
wiki |
get_page |
Obter conteúdo e metadados da página | ✅ |
search_wiki |
Pesquisa wiki de texto completo | ✅ | |
wiki_upsert_page |
Criar ou atualizar uma página wiki | ❌ |
Planos de teste
As ferramentas do plano de teste são consolidadas em dispatchers agrupados usando um parâmetro action.
| Tool | Ação | Descrição | Somente leitura |
|---|---|---|---|
testplan |
list_plans |
Listar planos de teste em um projeto | ✅ |
testplan |
list_suites |
Listar pacotes de teste em um plano de teste | ✅ |
testplan |
list_cases |
Listar casos de teste em uma suíte de testes | ✅ |
testplan_show_test_results_from_build_id |
Obter resultados de teste de uma compilação | ✅ | |
testplan_test_run |
get_results |
Obter resultados para uma execução de teste com filtros opcionais de detalhe e de resultado | ✅ |
testplan_test_plan_write |
create |
Crie um plano de teste | ❌ |
testplan_test_suite_write |
create |
Criar um conjunto de testes | ❌ |
testplan_test_suite_write |
add_test_cases |
Adicionar casos de teste a um pacote | ❌ |
testplan_test_case_write |
create |
Criar um caso de teste | ❌ |
testplan_test_case_write |
update_steps |
Atualizar etapas dos casos de teste | ❌ |
testplan_test_run_write |
create_run |
Criar uma execução de teste para execução manual | ❌ |
testplan_test_run_write |
update_results |
Atualizar resultados e detalhes dos resultados de teste em uma execução | ❌ |
testplan_test_run_write |
complete_run |
Concluir ou anular uma execução de teste com base em seus resultados | ❌ |
testplan_test_run_write |
update_test_point_outcome |
Atualizar ou redefinir resultados para pontos de teste | ❌ |
Segurança avançada
As ferramentas de Segurança Avançada são consolidadas em um dispatcher agrupado que usa um action parâmetro.
| Tool | Ação | Descrição | Somente leitura |
|---|---|---|---|
advsec_alerts |
list |
Listar alertas de Segurança Avançada para um repositório com filtros opcionais | ✅ |
advsec_alerts |
get |
Obter um alerta de Segurança Avançada por ID | ✅ |
Enterprise Live Migration (versão prévia)
As ferramentas de Migração Dinâmica da Empresa usam um action parâmetro para agrupar e expedir tarefas.
Saiba mais sobre a versão prévia da Migração Ao Vivo Da Empresa.
Importante
O suporte ao ELM no servidor MCP do Azure DevOps remoto está atualmente em versão prévia. As ferramentas são habilitadas por padrão.
| Tool | Ação | Descrição | Somente leitura |
|---|---|---|---|
enterprise_live_migration |
list |
Listar migrações para a organização; com filtro de projeto opcional e sinalizador includeAllMigrations | ✅ |
enterprise_live_migration |
get |
Obter o status de migração para um repositório | ✅ |
enterprise_live_migration |
get_cutover_review |
Obter itens com falha ou bloqueados antes da transição | ✅ |
enterprise_live_migration |
get_device_flow_config |
Obter configuração de fluxo de dispositivo do aplicativo GitHub | ✅ |
enterprise_live_migration |
list_pipelines |
Listar pipelines e status da reconfiguração | ✅ |
enterprise_live_migration_write |
create |
Criar uma nova migração | ❌ |
enterprise_live_migration_write |
pause |
Pausar uma migração ativa | ❌ |
enterprise_live_migration_write |
resume |
Retomar uma migração pausada | ❌ |
enterprise_live_migration_write |
cutover_set |
Agendar uma data de transição | ❌ |
enterprise_live_migration_write |
cutover_cancel |
Cancelar uma transição agendada | ❌ |
enterprise_live_migration_write |
approve_cutover |
Aceitar as falhas e prosseguir com a transição | ❌ |
enterprise_live_migration_write |
abandon |
Excluir permanentemente uma migração | ❌ |
enterprise_live_migration_pipelines_write |
submit |
Enviar pipelines para reconfiguração | ❌ |
enterprise_live_migration_pipelines_write |
update |
Atualizar configuração de reconfiguração do pipeline | ❌ |
enterprise_live_migration_pipelines_write |
delete |
Excluir todos os clones do pipeline relacionados a uma migração de terminal | ❌ |
Para tornar disponíveis apenas as ferramentas de Migração ao Vivo Enterprise, use o cabeçalho X-MCP-Toolsets com o valor elm:
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Toolsets": "elm"
}
}
},
"inputs": []
}
Ambientes com suporte
O servidor MCP de Azure DevOps remoto exige que sua conta de usuário e organização do Azure DevOps se conectem ao Microsoft Entra ID.
Nem todos os clientes MCP dão suporte à autenticação Microsoft Entra por padrão. Alguns ambientes exigem etapas extras para registrar o aplicativo cliente.
Os ambientes compatíveis com o endpoint remoto, quando a autenticação do Microsoft Entra está disponível, incluem:
- Visual Studio com GitHub Copilot
- Visual Studio
- Microsoft Foundry
- Microsoft Copilot Studio
- CLI do GitHub Copilot
- aplicativo GitHub Copilot
- aplicativo Cursor para desktop, agentes de nuvem do Cursor ou Claude Code com um registro de aplicativo personalizado do Microsoft Entra
Importante
No momento, Claude Desktop e Codex não dão suporte ao fluxo de autenticação Microsoft Entra exigido pelo servidor MCP do Azure DevOps remoto. Use o servidor MCP local com esses clientes.
Visual Studio Code
Para configurar o servidor MCP remoto no Visual Studio Code:
- Adicione um arquivo
.vscode/mcp.jsonao repositório com a configuração de mcp.json mostrada anteriormente. - Salve o arquivo.
- Abra GitHub Copilot no VS Code.
- Quando solicitado, autentique-se usando sua conta Microsoft Entra e selecione sua conta.
Após a conclusão da autenticação, uma lista de ferramentas disponíveis será exibida.
Visual Studio (2022 e posterior)
Configure o servidor MCP remoto em Visual Studio adicionando a URL do servidor às configurações do MCP. Para obter mais informações, consulte Use servidores MCP no Visual Studio.
Escolher escopos OAuth para clientes personalizados
Ao registrar um cliente MCP personalizado, conceda apenas as permissões delegadas necessárias para as operações de Azure DevOps que o cliente executa. Os escopos do OAuth determinam quais Azure DevOps recursos e operações que o cliente pode acessar. Habilitar uma ferramenta mcp ou conjunto de ferramentas não concede permissões adicionais.
Siga o princípio do privilégio mínimo:
- Conceda escopos de leitura quando o cliente usar somente ferramentas MCP somente de leitura.
- Conceda escopos de escrita ou de gerenciamento somente quando o cliente precisar das operações de escrita correspondentes.
- Examine os escopos herdados para evitar a concessão de permissões redundantes.
Para os escopos disponíveis e suas relações, consulte os escopos do OAuth.
Os escopos OAuth não substituem as permissões do usuário conectado. Uma operação MCP só é bem-sucedida quando o escopo do aplicativo e as permissões de Azure DevOps do usuário permitem isso.
Cursor
O Cursor requer um registro de aplicativo personalizado do Microsoft Entra para acessar o servidor MCP remoto do Azure DevOps.
Registrar o aplicativo para a área de trabalho do Cursor
- Confirme se o Azure DevOps aplicativo empresarial MCP está provisionado em seu locatário. Se você não conseguir encontrá-lo, consulte Não é possível localizar o aplicativo empresarial mcp Azure DevOps no locatário.
- No centro de administração do Microsoft Entra, vá para Registros de aplicativo e crie um registro de aplicativo.
- No registro do aplicativo, selecione Autenticação (Prévia)>Adicionar URI de redirecionamento>Aplicativos móveis e de desktop.
- Insira
http://localhost:8787/callbackcomo o URI de redirecionamento e salve as alterações. - Na página Autenticação (Versão Prévia), selecione a guia Configurações e habilite Permitir fluxos de cliente públicos.
- Na página Permissões de API, selecione Adicionar uma permissão>APIs que minha organização usa.
- Pesquise Azure DevOps MCP ou a ID
2a72489c-aab2-4b65-b93a-a91edccf33b8do aplicativo e selecione o aplicativo. - Selecione as permissões delegadas necessárias ao cliente, seguindo as diretrizes de escopo do OAuth e, em seguida, selecione Adicionar permissões.
- Selecione Conceder consentimento do administrador. Dependendo de sua função, um administrador de locatários pode precisar concluir esta etapa.
Copie a ID do aplicativo (cliente) do registro do aplicativo. Você precisa desse valor para configurar o Cursor.
Configurar a área de trabalho do Cursor
No Cursor, abra Configurações>Ferramentas & MCP.
Selecione Novo Servidor MCP.
Adicione a seguinte configuração, substituindo
{client-id}pela ID do aplicativo (cliente) copiada:{ "mcpServers": { "ado": { "url": "https://mcp.dev.azure.com", "type": "http", "auth": { "CLIENT_ID": "{client-id}" } } } }Salve a configuração e retorne às Ferramentas de Configurações>&MCP.
Localize o servidor ado e selecione Autenticar.
Configurar agentes do Cursor Cloud
Os Agentes de Nuvem do Cursor exigem um URI de redirecionamento da Web e um segredo do cliente, além do registro personalizado do aplicativo Microsoft Entra.
No centro de administração do Microsoft Entra, abra o registro de aplicativo que você criou para o Cursor.
Selecione Autenticação (Prévia)>Adicionar URI de redirecionamento>Web.
Insira
https://www.cursor.com/agents/mcp/oauth/callbackcomo o URI de redirecionamento e salve as alterações.Selecione Certificados e segredos>Segredos do cliente>Novo segredo do cliente.
Insira uma descrição, selecione um período de expiração e, em seguida, selecione Adicionar.
Copie o valor do segredo do cliente. O valor aparece apenas uma vez.
No Cursor, abra a configuração do servidor MCP dos Agentes de Nuvem e adicione ou edite o servidor MCP personalizado.
Defina a URL do servidor como
https://mcp.dev.azure.com.Insira a ID do aplicativo (cliente) do registro do aplicativo na ID do Cliente e o valor do segredo do cliente no Segredo do Cliente.
Como alternativa, edite a configuração JSON e substitua os placeholders pelos valores de registro do seu aplicativo:
{ "mcpServers": { "ado": { "url": "https://mcp.dev.azure.com", "type": "http", "auth": { "CLIENT_ID": "{client-id}", "CLIENT_SECRET": "{client-secret}" } } } }Salve a configuração e selecione Entrar em Cursor Cloud Agents para concluir a autenticação do Microsoft Entra.
Importante
Trate o segredo do cliente como uma senha. Não confirme isso no controle do código-fonte. Antes de expirar, crie um segredo de substituição e atualize a configuração dos Agentes de Nuvem do Cursor.
Se o Microsoft Entra retornar o erro AADSTS50011, verifique se o URI de redirecionamento da web corresponde exatamente a https://www.cursor.com/agents/mcp/oauth/callback. Se a troca de tokens falhar com o erro AADSTS7000218, verifique se o valor do segredo do cliente atual está configurado nos Agentes de Nuvem do Cursor.
Código Claude
O Claude Code requer um registro de aplicativo Microsoft Entra personalizado para acessar o servidor MCP do Azure DevOps remoto.
Registrar o aplicativo
- Confirme se o Azure DevOps aplicativo empresarial MCP está provisionado em seu locatário. Se você não conseguir encontrá-lo, consulte Não é possível localizar o aplicativo empresarial mcp Azure DevOps no locatário.
- No centro de administração do Microsoft Entra, vá para Registros de aplicativo e crie um registro de aplicativo.
- No registro do aplicativo, selecione Autenticação (Prévia)>Adicionar URI de redirecionamento>Aplicativos móveis e de desktop.
- Insira
http://localhost:3118/callbackcomo o URI de redirecionamento e salve as alterações. - Na página Autenticação (Versão Prévia), selecione a guia Configurações e habilite Permitir fluxos de cliente públicos.
- Na página Permissões de API, selecione Adicionar uma permissão>APIs que minha organização usa.
- Pesquise Azure DevOps MCP ou a ID
2a72489c-aab2-4b65-b93a-a91edccf33b8do aplicativo e selecione o aplicativo. - Selecione as permissões delegadas necessárias ao cliente, seguindo as diretrizes de escopo do OAuth e, em seguida, selecione Adicionar permissões.
- Selecione Conceder consentimento do administrador. Dependendo de sua função, um administrador de locatários pode precisar concluir esta etapa.
Copie a ID do aplicativo (cliente) do registro do aplicativo. Você precisa desse valor para configurar o Claude Code.
Configurar o Código Claude
Execute o seguinte comando, substituindo
{client-id}pela ID do aplicativo (cliente) copiada e{organization}pelo nome da organização Azure DevOps:claude mcp add --transport http ado https://mcp.dev.azure.com/{organization} \ --client-id {client-id} --callback-port 3118Como alternativa, crie um
.mcp.jsonarquivo na raiz do repositório com a seguinte configuração:{ "mcpServers": { "ado": { "type": "http", "url": "https://mcp.dev.azure.com/{organization}", "oauth": { "clientId": "{client-id}", "callbackPort": 3118 } } } }Inicie o Claude Code executando
claude.Execute
/mcpe siga o fluxo de entrada no navegador para autenticar com sua conta Microsoft Entra.
Para obter mais informações sobre essas opções, consulte Conectar o Claude Code às ferramentas por meio do MCP.
Verificar conexão
Após a instalação, verifique se o servidor MCP remoto está funcionando fazendo uma pergunta ao assistente de IA sobre seus dados de Azure DevOps.
Exemplos:
- "Liste os projetos na minha organização Azure DevOps."
- "Mostrar meus itens de trabalho atribuídos."
- "Quais solicitações de pull exigem minha revisão?"
Se o assistente de IA retornar resultados de sua organização Azure DevOps, o servidor MCP remoto será configurado corretamente.
Usar a IA para validar e solucionar problemas de configuração remota do MCP
Os prompts de exemplo a seguir para o Copilot Chat ajudam você a escolher a abordagem de MCP correta, configurar e validar a configuração remota, melhorar os prompts de uso diário e resolver falhas quando necessário. Copie e cole estes prompts no Copilot Chat e substitua os marcadores pelos dados reais da sua organização, do cliente e dos erros.
| Tarefa | Prompt de exemplo |
|---|---|
| Escolher remoto versus 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. |
| Criar uma configuração de privilégio mínimo | Generate a remote mcp.json configuration for organization <contoso> that uses only the needed toolsets and read-only mode. |
Validar a mcp.json configuração |
Review this remote Azure DevOps MCP server configuration and tell me whether anything is missing or incorrect for Visual Studio Code. |
| Verificar suposições de autenticação | Help me verify whether this remote MCP setup can authenticate with Microsoft Entra ID for organization <contoso>. |
| Melhorar os prompts de consulta para o trabalho diário | 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. |
| Diagnosticar conexão recusada | 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. |
| Diagnosticar ausência de dados | The remote MCP server connects, but queries return no data. Help me determine whether this is a permissions issue or missing project context. |
| Cabeçalhos de filtro da ferramenta de depuração | Check my X-MCP-Toolsets and X-MCP-Tools header configuration and explain why expected tools are not appearing. |
Copilot é alimentado pela IA, portanto, surpresas e erros são possíveis. Para mais informações, consulte as perguntas frequentes sobre o uso geral do Copilot.
Solução de problemas
| Issue | Resolução |
|---|---|
| Falha na autenticação | Verifique suas credenciais de Microsoft Entra e confirme se você tem acesso à organização Azure DevOps. |
| Servidor não encontrado | Verifique o formato da URL do servidor: https://mcp.dev.azure.com/{organization}. |
| Conexão recusada | Confirme se a sua rede permite conexões HTTPS de saída para mcp.dev.azure.com. Se você estiver em um proxy ou firewall corporativo, peça ao seu administrador para adicionar o endpoint à lista de permissões e tente novamente sem usar VPN para isolar problemas no caminho de rede. |
| Nenhum dado retornado | Confirme se você tem permissões apropriadas para o projeto ou os recursos que estão sendo consultados. |
| As ferramentas ELM não estão disponíveis | As ferramentas ELM são habilitadas por padrão. Se você restringir os conjuntos de ferramentas disponíveis, confirme se o cabeçalho X-MCP-Toolsets inclua elm. Em seguida, reconecte o servidor MCP e verifique se sua identidade tem as permissões de Azure DevOps necessárias. Para conhecer os pré-requisitos, consulte a visão geral das migrações ao vivo empresariais. |
Para obter suporte, você pode criar um problema no repositório do SERVIDOR MCP local . Use o modelo de problema Remoto.
perguntas frequentes
E quanto a outros clientes, como Claude Desktop ou Codex?
Claude Desktop e Codex exigem o registro dinâmico de uma ID do cliente OAuth em Microsoft Entra ID antes que eles possam usar o servidor MCP remoto. Microsoft Entra ID atualmente não dá suporte ao fluxo de registro dinâmico do cliente que esses clientes exigem. Use o servidor MCP local com esses clientes.
Conteúdo relacionado
- visão geral do servidor MCP Azure DevOps
- Repositório GitHub do Azure DevOps MCP Server