mcp-azure-selfhosted

O MCP do Azure DevOps que realmente suporta self-hosted e nuvem

Documentação

Servidor MCP Azure DevOps Self-Hosted

Servidor MCP para instâncias Azure DevOps self-hosted (e na nuvem) com autenticação via Personal Access Token. Fornece 39 ferramentas que cobrem Work Item Tracking, Git, Test Plans, delivery plans, anexos e fluxos de produtividade do Azure DevOps.

Recursos

  • CRUD de Work Items — Criar, ler, atualizar, excluir bugs, user stories, tarefas, features, épicos e qualquer tipo personalizado
  • Gerenciamento de Estado — Alterar estados de work items (Novo → Ativo → Resolvido → Fechado)
  • Atribuição — Atribuir/reatribuir work items a membros da equipe
  • Consultas WIQL — Executar consultas Work Item Query Language para busca/filtragem avançada
  • Comentários — Adicionar e recuperar comentários em work items
  • Relacionamentos — Vincular work items (pai-filho, relacionado, duplicado, etc.)
  • Informações de Projeto e Equipe — Listar projetos, equipes, membros de equipe
  • Descoberta de Metadados — Tipos de work items, campos, caminhos de área, caminhos de iteração/sprint
  • Histórico e Auditoria — Histórico completo de alterações e snapshots de revisão
  • Notas de Versão — Gerar automaticamente notas de versão formatadas a partir de sprints/iterações
  • Git e Repositórios — Ler conteúdo de arquivos e pesquisar código em repositórios
  • Test Plans — Listar planos/suítes, criar casos de teste, registrar resultados e abrir bugs a partir de falhas
  • Delivery Plans — Inspecionar roadmaps e cronogramas entre equipes
  • Anexos — Anexar e recuperar mockups, capturas de tela e documentos
  • Produtividade — Criar work items em lote, decompor um PRD em hierarquia Feature→Stories→Tasks, detectar bugs duplicados e listar "meu trabalho"

Início Rápido

Usuários Finais (npx, sem necessidade de clone)

Use o pacote npm publicado diretamente na sua configuração MCP:

{
  "servers": {
    "azure-devops": {
      "command": "npx",
      "args": ["-y", "mcp-azure-selfhosted"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-pat-here",
        "AZURE_DEVOPS_PROJECT": "MyProject"
      }
    }
  }
}

Você pode fixar uma versão para instalações determinísticas alterando os argumentos para:

["-y", "mcp-azure-selfhosted@1.0.0"]

Desenvolvimento Local (clone e build)

# 1. Install dependencies
cd mcp-azure-selfhosted
npm install

# 2. Build
npm run build

# 3. Configure environment
cp .env.example .env
# Edit .env with your Azure DevOps URL and PAT

# 4. Run
node build/index.js

Configuração

Variáveis de Ambiente

VariávelObrigatóriaDescrição
AZURE_DEVOPS_ORG_URLSimURL da sua organização Azure DevOps
AZURE_DEVOPS_PATSimPersonal Access Token
AZURE_DEVOPS_PROJECTNãoNome padrão do projeto (pode ser sobrescrito por chamada de ferramenta)
AZURE_DEVOPS_API_VERSIONNãoVersão da API (padrão: 7.1)
NODE_TLS_REJECT_UNAUTHORIZEDNãoDefina como 0 para instâncias self-hosted com certificados SSL autoassinados ou expirados

Formatos de URL

Nuvem (Azure DevOps Services):

https://dev.azure.com/{organization}

Self-Hosted (Azure DevOps Server / TFS):

https://{server}:{port}/tfs/{collection}

Criando um PAT

  1. Vá para Azure DevOps → Configurações do Usuário → Personal Access Tokens
  2. Clique em Novo Token
  3. Defina os seguintes escopos:
    • Work Items: Leitura e Gravação
    • Projeto e Equipe: Leitura
  4. Copie o token e defina-o como AZURE_DEVOPS_PAT

Integração MCP

VS Code (Copilot / Cline)

Adicione ao seu .vscode/mcp.json ou às configurações do VS Code:

{
  "servers": {
    "azure-devops": {
      "command": "npx",
      "args": ["-y", "mcp-azure-selfhosted"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-pat-here",
        "AZURE_DEVOPS_PROJECT": "MyProject",
        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      }
    }
  }
}

Claude Desktop

Adicione ao ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "azure-devops": {
      "command": "npx",
      "args": ["-y", "mcp-azure-selfhosted"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-org",
        "AZURE_DEVOPS_PAT": "your-pat-here",
        "AZURE_DEVOPS_PROJECT": "MyProject",
        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      }
    }
  }
}

Nota: Defina NODE_TLS_REJECT_UNAUTHORIZED como "0" apenas para instâncias self-hosted com certificados SSL autoassinados ou expirados. Remova-o ao conectar ao Azure DevOps Services (nuvem).

Referência de Ferramentas

CRUD de Work Items (6 ferramentas)

FerramentaDescrição
azure_create_work_itemCriar um novo Bug, User Story, Task, Feature, Epic ou tipo personalizado
azure_get_work_itemObter um work item por ID com todos os campos
azure_get_work_itemsObter em lote até 200 work items por IDs
azure_update_work_itemAtualizar qualquer campo em um work item
azure_delete_work_itemExcluir (ou destruir permanentemente) um work item
azure_query_work_itemsExecutar consultas WIQL para buscar/filtrar work items

Estado e Atribuição (3 ferramentas)

FerramentaDescrição
azure_change_stateAlterar o estado do work item (Novo, Ativo, Resolvido, Fechado, etc.)
azure_assign_work_itemAtribuir/reatribuir um work item a um usuário
azure_update_fieldsAtualizar em lote vários campos em uma única operação

Comentários (2 ferramentas)

FerramentaDescrição
azure_add_commentAdicionar um comentário a um work item
azure_get_commentsObter todos os comentários em um work item

Relacionamentos (2 ferramentas)

FerramentaDescrição
azure_link_work_itemsVincular dois work items (pai-filho, relacionado, duplicado, etc.)
azure_get_relation_typesListar todos os tipos de relação/vínculo disponíveis

Projetos e Equipes (4 ferramentas)

FerramentaDescrição
azure_list_projectsListar todos os projetos na organização
azure_get_projectObter detalhes de um projeto específico
azure_list_teamsListar todas as equipes em um projeto
azure_get_team_membersObter membros de uma equipe específica

Metadados (4 ferramentas)

FerramentaDescrição
azure_get_work_item_typesListar tipos de work items disponíveis (Bug, Story, Task, etc.)
azure_get_fieldsListar campos de work items disponíveis e seus nomes de referência
azure_get_areasObter hierarquia de caminhos de área
azure_get_iterationsObter hierarquia de iteração/sprint

Histórico (2 ferramentas)

FerramentaDescrição
azure_get_work_item_historyObter histórico de alterações de campos (quem alterou o quê, quando)
azure_get_work_item_revisionsObter snapshots completos em cada revisão

Notas de Versão (2 ferramentas)

FerramentaDescrição
azure_get_sprint_work_itemsObter todos os work items em um sprint/iteração
azure_generate_release_notesGerar notas de versão formatadas em markdown

Git e Repositórios (2 ferramentas)

FerramentaDescrição
azure_get_file_contentObter o conteúdo bruto de um arquivo de um repositório Git (branch opcional)
azure_search_codePesquisar código em um projeto (requer a extensão Code Search)

Produtividade do Desenvolvedor (1 ferramenta)

FerramentaDescrição
azure_get_my_work_itemsObter work items atualmente atribuídos a você (exclui Fechado/Concluído por padrão)

Gerenciamento de Produto e Programa (3 ferramentas)

FerramentaDescrição
azure_bulk_create_work_itemsCriar vários work items em uma única chamada (ex.: importar um backlog/PRD)
azure_get_delivery_planListar delivery plans, ou obter o cronograma de entrega de um plano
azure_generate_prd_to_storiesCriar uma hierarquia Feature → User Stories → Tasks a partir de uma decomposição estruturada

Anexos (2 ferramentas)

FerramentaDescrição
azure_add_attachmentAnexar um arquivo (mockup/captura de tela/documento) a um work item a partir de um caminho local ou conteúdo inline
azure_get_attachmentsListar os anexos de um work item e opcionalmente baixá-los

Test Plans / QA (6 ferramentas)

FerramentaDescrição
azure_list_test_plansListar todos os test plans em um projeto
azure_get_test_planObter detalhes de um test plan específico
azure_list_test_suitesListar todas as test suites dentro de um test plan
azure_create_test_caseCriar um Test Case com etapas ordenadas; opcionalmente adicionar a uma suíte
azure_add_test_resultRegistrar um resultado de aprovação/reprovação para um caso de teste (cria e conclui uma execução)
azure_create_bug_from_test_failureAbrir automaticamente um Bug a partir de um teste reprovado com detalhes de reprodução, vinculado ao caso de teste

Detecção de Duplicados (1 ferramenta)

FerramentaDescrição
azure_duplicate_detectionEncontrar work items provavelmente duplicados por similaridade de título antes de criar um novo

Nota: azure_search_code requer a extensão Code Search na organização/coleção, e as ferramentas de Test Plans requerem licenciamento de Test Plans.

Exemplos

Criar um Bug

Tool: azure_create_work_item
Arguments:
  type: "Bug"
  title: "Login page crashes on mobile"
  description: "The login page throws a JS error on iOS Safari"
  priority: 1
  severity: "2 - High"
  assignedTo: "John Doe"
  tags: "frontend; mobile; urgent"
  reproSteps: "<ol><li>Open app on iOS Safari</li><li>Navigate to login</li><li>Page crashes</li></ol>"

Consultar Bugs Ativos

Tool: azure_query_work_items
Arguments:
  wiql: "SELECT [System.Id], [System.Title], [System.State] FROM workitems WHERE [System.WorkItemType] = 'Bug' AND [System.State] = 'Active' ORDER BY [Microsoft.VSTS.Common.Priority]"

Gerar Notas de Versão

Tool: azure_generate_release_notes
Arguments:
  version: "2.1.0"
  iterationPath: "MyProject\\Sprint 23"
  includeDescription: true

Vincular Pai-Filho

Tool: azure_link_work_items
Arguments:
  sourceId: 100
  targetId: 101
  linkType: "System.LinkTypes.Hierarchy-Forward"
  comment: "Feature contains this story"

Desenvolvimento

# Watch mode (auto-rebuild on changes)
npm run watch

# Dev mode (tsx, direct TS execution)
npm run dev

Publicação no npm (Mantenedores)

# 1. Ensure package version is updated in package.json
npm version patch

# 2. Push commit and tag
git push origin main --follow-tags

A publicação é automatizada via GitHub Actions em tags que correspondem a v*.

Segredo de repositório obrigatório:

  • NPM_TOKEN (token de automação npm com acesso de publicação)

Licença

MIT