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ável | Obrigatória | Descrição |
|---|
AZURE_DEVOPS_ORG_URL | Sim | URL da sua organização Azure DevOps |
AZURE_DEVOPS_PAT | Sim | Personal Access Token |
AZURE_DEVOPS_PROJECT | Não | Nome padrão do projeto (pode ser sobrescrito por chamada de ferramenta) |
AZURE_DEVOPS_API_VERSION | Não | Versão da API (padrão: 7.1) |
NODE_TLS_REJECT_UNAUTHORIZED | Não | Defina 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
- Vá para Azure DevOps → Configurações do Usuário → Personal Access Tokens
- Clique em Novo Token
- Defina os seguintes escopos:
- Work Items: Leitura e Gravação
- Projeto e Equipe: Leitura
- 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)
| Ferramenta | Descrição |
|---|
azure_create_work_item | Criar um novo Bug, User Story, Task, Feature, Epic ou tipo personalizado |
azure_get_work_item | Obter um work item por ID com todos os campos |
azure_get_work_items | Obter em lote até 200 work items por IDs |
azure_update_work_item | Atualizar qualquer campo em um work item |
azure_delete_work_item | Excluir (ou destruir permanentemente) um work item |
azure_query_work_items | Executar consultas WIQL para buscar/filtrar work items |
Estado e Atribuição (3 ferramentas)
| Ferramenta | Descrição |
|---|
azure_change_state | Alterar o estado do work item (Novo, Ativo, Resolvido, Fechado, etc.) |
azure_assign_work_item | Atribuir/reatribuir um work item a um usuário |
azure_update_fields | Atualizar em lote vários campos em uma única operação |
Comentários (2 ferramentas)
| Ferramenta | Descrição |
|---|
azure_add_comment | Adicionar um comentário a um work item |
azure_get_comments | Obter todos os comentários em um work item |
Relacionamentos (2 ferramentas)
| Ferramenta | Descrição |
|---|
azure_link_work_items | Vincular dois work items (pai-filho, relacionado, duplicado, etc.) |
azure_get_relation_types | Listar todos os tipos de relação/vínculo disponíveis |
Projetos e Equipes (4 ferramentas)
| Ferramenta | Descrição |
|---|
azure_list_projects | Listar todos os projetos na organização |
azure_get_project | Obter detalhes de um projeto específico |
azure_list_teams | Listar todas as equipes em um projeto |
azure_get_team_members | Obter membros de uma equipe específica |
Metadados (4 ferramentas)
| Ferramenta | Descrição |
|---|
azure_get_work_item_types | Listar tipos de work items disponíveis (Bug, Story, Task, etc.) |
azure_get_fields | Listar campos de work items disponíveis e seus nomes de referência |
azure_get_areas | Obter hierarquia de caminhos de área |
azure_get_iterations | Obter hierarquia de iteração/sprint |
Histórico (2 ferramentas)
| Ferramenta | Descrição |
|---|
azure_get_work_item_history | Obter histórico de alterações de campos (quem alterou o quê, quando) |
azure_get_work_item_revisions | Obter snapshots completos em cada revisão |
Notas de Versão (2 ferramentas)
| Ferramenta | Descrição |
|---|
azure_get_sprint_work_items | Obter todos os work items em um sprint/iteração |
azure_generate_release_notes | Gerar notas de versão formatadas em markdown |
Git e Repositórios (2 ferramentas)
| Ferramenta | Descrição |
|---|
azure_get_file_content | Obter o conteúdo bruto de um arquivo de um repositório Git (branch opcional) |
azure_search_code | Pesquisar código em um projeto (requer a extensão Code Search) |
Produtividade do Desenvolvedor (1 ferramenta)
| Ferramenta | Descrição |
|---|
azure_get_my_work_items | Obter work items atualmente atribuídos a você (exclui Fechado/Concluído por padrão) |
Gerenciamento de Produto e Programa (3 ferramentas)
| Ferramenta | Descrição |
|---|
azure_bulk_create_work_items | Criar vários work items em uma única chamada (ex.: importar um backlog/PRD) |
azure_get_delivery_plan | Listar delivery plans, ou obter o cronograma de entrega de um plano |
azure_generate_prd_to_stories | Criar uma hierarquia Feature → User Stories → Tasks a partir de uma decomposição estruturada |
Anexos (2 ferramentas)
| Ferramenta | Descrição |
|---|
azure_add_attachment | Anexar um arquivo (mockup/captura de tela/documento) a um work item a partir de um caminho local ou conteúdo inline |
azure_get_attachments | Listar os anexos de um work item e opcionalmente baixá-los |
Test Plans / QA (6 ferramentas)
| Ferramenta | Descrição |
|---|
azure_list_test_plans | Listar todos os test plans em um projeto |
azure_get_test_plan | Obter detalhes de um test plan específico |
azure_list_test_suites | Listar todas as test suites dentro de um test plan |
azure_create_test_case | Criar um Test Case com etapas ordenadas; opcionalmente adicionar a uma suíte |
azure_add_test_result | Registrar um resultado de aprovação/reprovação para um caso de teste (cria e conclui uma execução) |
azure_create_bug_from_test_failure | Abrir 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)
| Ferramenta | Descrição |
|---|
azure_duplicate_detection | Encontrar 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