mcp-azure-devops

Servidor MCP para Azure DevOps — quadros/itens de trabalho, repositórios/PRs, pipelines e projetos — com controles de governança (modos de acesso, listas de permissão de projetos, projetos protegidos, controle de exclusão, confirmação tipada, simulação, auditoria).

Documentação

mcp-azure-devops

CI License: MIT npm

Um servidor Model Context Protocol para Azure DevOps. Ele permite que um cliente compatível com MCP (Claude Desktop, Claude Code, Cursor, Codex, …) trabalhe em boards, repositórios, pipelines e projetos — com uma camada de governança que mantém um agente de IA dentro de limites seguros.

O que este servidor oferece

  • Projetos e equipes — liste projetos/equipes/membros, inspecione modelos de processo.
  • Boards / itens de trabalho — consultas WIQL, obtenha itens de trabalho, crie/atualize itens de trabalho, liste iterações (sprints).
  • Repositórios / pull requests — liste repositórios e branches, liste/obtenha PRs, abra PRs.
  • Pipelines / builds — liste pipelines e builds recentes, obtenha um build, enfileire uma execução.
  • Administração / processo — liste modelos de processo, crie um projeto, exclua um projeto (protegido).
  • Governança integrada — modos de acesso, listas de permissão de projetos, projetos protegidos, bloqueio de exclusão, confirmação tipada para operações de alto impacto, simulação (dry-run) e registro de auditoria em JSON.

Modelo de governança e segurança

PreocupaçãoFlagPadrãoEfeito
O que o servidor pode fazer?AZDO_MODEread-onlyread-only → leituras; read-write → itens de trabalho, PRs, execuções de pipeline; admin → criar/excluir projeto. Ferramentas acima do modo nunca são registradas.
Quais projetos estão no escopo?AZDO_PROJECT_ALLOWLIST(todos)Operações em outros projetos são recusadas.
Quais projetos são somente leitura para sempre?AZDO_PROTECTED_PROJECTS(nenhum)Legíveis, nunca mutáveis.
Pode excluir?AZDO_ALLOW_DELETEfalsedelete_project exige isso e o modo administrador.
Confirmação tipadaAZDO_REQUIRE_CONFIRMATIONtrueOperações de alto impacto exigem que confirm seja igual ao nome do alvo — não apenas um booleano.
Simulação (dry-run)AZDO_DRY_RUNfalseFerramentas de escrita/administração validam + registram a intenção e retornam.
Trilha de auditoriaAZDO_AUDIT_LOGtrueLinha JSON no stderr por operação protegida.
Confirmação interativa(automática)Ações destrutivas e de alto impacto solicitam aprovação humana via elicitação MCP antes de executar; clientes sem elicitação usam o gate *_ALLOW_* como fallback.

Ferramentas

Leitura (read-only+): list_projects, get_project, list_teams, list_team_members, list_processes, query_work_items, get_work_item, list_iterations, list_repositories, list_branches, list_pull_requests, get_pull_request, list_pipelines, list_builds, get_build

Escrita (read-write+): create_work_item, update_work_item, create_pull_request, run_pipeline

Administração (admin): create_project, delete_project (exige AZDO_ALLOW_DELETE + confirm tipado)

Início rápido — adicione ao seu agente

Publicado no npm como @dockndevai/mcp-azure-devops. Executa via npx; exige uma organização e um PAT. Consulte docs/CLIENTS.md para cada cliente e .env.example para todas as variáveis.

Claude Code

claude mcp add azure-devops -e AZDO_ORG_URL="https://dev.azure.com/your-org" -e AZDO_PAT="your-pat" -e AZDO_MODE="read-only" -- npx -y @dockndevai/mcp-azure-devops

Claude Desktop · Cursor · Windsurf

{
  "mcpServers": {
    "azure-devops": {
      "command": "npx",
      "args": ["-y", "@dockndevai/mcp-azure-devops"],
      "env": {
        "AZDO_ORG_URL": "https://dev.azure.com/your-org",
        "AZDO_PAT": "your-pat",
        "AZDO_MODE": "read-only"
      }
    }
  }
}

Exemplos de prompts

  • "Liste pull requests ativos no repositório api do projeto Payments"
  • "Consulte itens de trabalho atribuídos a mim que ainda estão Ativos"
  • "Mostre os últimos 10 builds no projeto Web e quais falharam"
  • "Crie um Bug em Payments intitulado 'Checkout 500 na tentativa'" (exige leitura-escrita)

Executar a partir do código-fonte (desenvolvimento)

npm install
npm run build
node dist/index.js   # with the environment variables set

Desenvolvimento

npm run dev
npm test          # governance policy: modes, allowlists, delete gating, confirmation
npm run typecheck

Publicação

Envia um server.json para o registro oficial do MCP e um mcpName para validação de propriedade no npm. Consulte PUBLISHING.md.

Licença

MIT