MCP For Azure DevOps Boards
Um servidor MCP que foca em fornecer ferramentas úteis para o Azure DevOps Boards
Documentação
MCP for Azure DevOps Boards
Um servidor Model Context Protocol (MCP) para interagir com Azure DevOps Boards e Work Items, escrito em Rust.
Recursos
-
Gerenciamento de Work Items: Criar, atualizar, obter e consultar work items.
-
Integração com Boards: Listar equipes, boards e buscar itens do board.
-
Suporte a WIQL: Executar consultas WIQL personalizadas.
-
Saída Simplificada: Saída JSON otimizada para consumo por LLMs (uso reduzido de tokens).
Instalação
Consulte a seção Configuração do MCP para saber como configurar seu cliente de IA (MCP) preferido.
macOS (Homebrew)
brew tap danielealbano/mcp-tools
brew install mcp-for-azure-devops-boards
O caminho para o binário será /opt/homebrew/bin/mcp-for-azure-devops-boards.
Windows (Scoop)
scoop bucket add mcp-tools https://github.com/danielealbano/scoop-mcp-tools
scoop install mcp-for-azure-devops-boards
O caminho para o binário será %USERPROFILE%\scoop\apps\mcp-for-azure-devops-boards\current\mcp-for-azure-devops-boards.exe.
Configuração
| Configuração | Descrição | Flag de CLI | Variável de Ambiente |
|---|---|---|---|
| Modo de Servidor | Executar como servidor HTTP em vez de stdio | --server | N/A |
| Porta | Porta para o servidor HTTP (padrão: 3000) | --port | N/A |
Nota: Se --server não for especificado, o software será executado no modo stdio.
Autenticação
Este servidor utiliza os mecanismos padrão de autenticação do Azure para consultar o Azure DevOps. Em cada requisição, ele adquire um token Bearer para a API REST do Azure DevOps (escopo 499b84ac-1321-427f-aa17-267ca6975798/.default) tentando as seguintes fontes de credenciais em ordem e usando a primeira que retornar um token:
- Ambiente (client secret) — usado apenas quando
AZURE_TENANT_ID,AZURE_CLIENT_IDeAZURE_CLIENT_SECRETestão todos definidos. Se apenas alguns estiverem definidos, é ignorado com um aviso. - Azure CLI — executa
az account get-access-tokenpara o escopo do Azure DevOps, usando sua sessão doaz login. - Azure Developer CLI — usa sua sessão do
azd auth login. - Identidade gerenciada — para implantações hospedadas no Azure. Fora do Azure, essa verificação é inacessível, portanto é limitada por um timeout de 2 segundos e depois ignorada, garantindo que a cadeia nunca trave.
Se todas as fontes falharem, o erro retornado lista a falha de cada fonte para que você possa ver exatamente o motivo (por exemplo, um erro de consentimento do Azure CLI junto com "azd not found on PATH"), em vez de apenas a última tentada.
Para desenvolvimento local, entrar com o Azure CLI (abaixo) é a opção mais simples — você deve ter executado az login com acesso à organização do Azure DevOps de destino.
Instalando o Azure CLI
Se você não tiver o Azure CLI instalado:
macOS (Homebrew):
brew install azure-cli
Windows (Scoop):
scoop install azure-cli
Windows (Chocolatey):
choco install azure-cli
Para outros métodos de instalação, consulte o guia oficial de instalação do Azure CLI.
Fazendo Login
Para autenticar, execute:
az login
Uso
Modo Stdio (Padrão)
Este é o modo padrão para clientes MCP (como Claude Desktop ou Cursor). Este modo é preferido por questões de segurança, pois garante que nenhuma credencial seja compartilhada pela rede.
path/to/mcp-for-azure-devops-boards
Modo Servidor HTTP
Você também pode executá-lo como um servidor HTTP (SSE). Observe que neste modo, o servidor escuta em 0.0.0.0 (todas as interfaces).
path/to/mcp-for-azure-devops-boards --server --port 3000
Configuração do MCP
Nota: Certifique-se de ter executado az login no seu terminal para que o processo possa capturar as credenciais.
Configuração rápida com --install
A maneira mais rápida de registrar o servidor MCP com seu cliente preferido:
mcp-for-azure-devops-boards --install <target>
Destinos válidos e onde cada um grava sua configuração:
| Destino | Arquivo de configuração | Escopo |
|---|---|---|
claude-code | ~/.claude.json | Global (home) |
claude-desktop | macOS: ~/Library/Application Support/Claude/claude_desktop_config.jsonLinux: ~/.config/Claude/claude_desktop_config.jsonWindows: %APPDATA%\Claude\claude_desktop_config.json | Global (por usuário) |
cursor | ~/.cursor/mcp.json | Global (home) |
vscode | .vscode/mcp.json | Workspace (diretório atual) |
codex | ~/.codex/config.toml | Global (home) |
gemini-cli | ~/.gemini/settings.json | Global (home) |
O comando detecta automaticamente o caminho do binário, resolve o local correto do arquivo de configuração e grava a entrada no formato esperado. A configuração existente é preservada.
Configuração manual
Claude Code
Arquivo de configuração: ~/.claude.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop): Substitua o caminho do comando por
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
Claude Desktop
Locais do arquivo de configuração:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop): Substitua o caminho do comando por
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
Cursor
Arquivo de configuração: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop): Substitua o caminho do comando por
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
VS Code
Arquivo de configuração: .vscode/mcp.json (nível do workspace)
{
"servers": {
"mcp-for-azure-devops-boards": {
"type": "stdio",
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop): Substitua o caminho do comando por
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
gemini-cli
Arquivo de configuração: ~/.gemini/settings.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows (Scoop): Substitua o caminho do comando por
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
Codex CLI
Arquivo de configuração: ~/.codex/config.toml
[mcp_servers.mcp-for-azure-devops-boards]
command = "/opt/homebrew/bin/mcp-for-azure-devops-boards"
Windows (Scoop): Substitua o caminho do comando por
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exe.
Ferramentas Disponíveis
Este software está atualmente em desenvolvimento. As ferramentas e seus parâmetros estão sujeitos a alterações.
O servidor expõe as seguintes ferramentas para clientes MCP.
A estrutura geral dos nomes das ferramentas é azdo_VERB_WHAT (por exemplo, azdo_list_teams, azdo_get_work_item).
Descoberta
azdo_list_organizations: Lista todas as organizações do Azure DevOps às quais o usuário autenticado tem acesso.- Obrigatório: Nenhum (usa as credenciais do usuário autenticado)
azdo_list_projects: Lista todos os projetos em uma organização do Azure DevOps.- Obrigatório:
organization
- Obrigatório:
Work Items
Nota: Todas as ferramentas de work item exigem os parâmetros
organizationeproject.
azdo_create_work_item: Cria um novo work item.- Obrigatório:
organization,project,work_item_type,title - Opcional:
description,assigned_to,area_path,iteration_path,state,board_column,board_row,priority,severity,story_points,effort,remaining_work,tags,activity,parent_id,start_date,target_date,acceptance_criteria,repro_steps,fields(string JSON para campos personalizados).
- Obrigatório:
azdo_update_work_item: Atualiza um work item existente.- Obrigatório:
organization,project,id - Opcional: Todos os campos disponíveis na criação.
- Obrigatório:
azdo_get_work_item: Obtém detalhes de um work item específico.- Obrigatório:
organization,project,id - Opcional:
include_latest_n_comments(número de comentários recentes a incluir, -1 para todos)
- Obrigatório:
azdo_get_work_items: Obtém vários work items pelos seus IDs.- Obrigatório:
organization,project,ids(array de IDs de work items) - Opcional:
include_latest_n_comments(número de comentários recentes a incluir, -1 para todos)
- Obrigatório:
azdo_query_work_items: Consulta work items usando filtros estruturados.- Obrigatório:
organization,project - Filtros Opcionais:
area_path,iteration_path,created_date_from/to,modified_date_from/to. - Listas de Inclusão:
include_board_column,include_board_row,include_work_item_type,include_state,include_assigned_to,include_tags. - Listas de Exclusão:
exclude_board_column,exclude_board_row,exclude_work_item_type,exclude_state,exclude_assigned_to,exclude_tags. - Opcional:
include_latest_n_comments(número de comentários recentes a incluir, -1 para todos)
- Obrigatório:
azdo_query_work_items_by_wiql: Executa uma consulta WIQL (Work Item Query Language) bruta.- Obrigatório:
organization,project,query - Opcional:
include_latest_n_comments(número de comentários recentes a incluir, -1 para todos)
- Obrigatório:
azdo_add_comment: Adiciona um comentário a um work item.- Obrigatório:
organization,project,work_item_id,text
- Obrigatório:
azdo_link_work_items: Cria um relacionamento entre dois work items.- Obrigatório:
organization,project,source_id,target_id,link_type(Parent, Child, Related, Duplicate, Dependency).
- Obrigatório:
Boards & Equipes
Nota: Todas as ferramentas de board e equipe exigem os parâmetros
organizationeproject.
azdo_list_teams: Lista todas as equipes no projeto.- Obrigatório:
organization,project
- Obrigatório:
azdo_get_team: Obtém detalhes de uma equipe específica.- Obrigatório:
organization,project,team_id
- Obrigatório:
azdo_list_team_boards: Lista boards de uma equipe específica.- Obrigatório:
organization,project,team_id
- Obrigatório:
azdo_get_team_board: Obtém detalhes de um board específico.- Obrigatório:
organization,project,team_id,board_id
- Obrigatório:
azdo_list_work_item_types: Lista todos os tipos de work item disponíveis no projeto.- Obrigatório:
organization,project
- Obrigatório:
azdo_list_tags: Lista todas as tags em uso no projeto.- Obrigatório:
organization,project
- Obrigatório:
azdo_get_team_current_iteration: Obtém a iteração/sprint ativa atual de uma equipe.- Obrigatório:
organization,project,team_id
- Obrigatório:
azdo_get_team_iterations: Obtém todas as iterações/sprints de uma equipe.- Obrigatório:
organization,project,team_id
- Obrigatório:
Contribuindo
Aceitamos contribuições!
- Faça um fork do repositório.
- Crie uma nova branch para sua funcionalidade ou correção de bug (
git checkout -b feature/amazing-feature). - Faça commit das suas alterações.
- Envie (push) para sua branch.
- Abra um Pull Request.
Compilando a partir do Código Fonte
Pré-requisitos
Passos
-
Clone o repositório:
git clone https://github.com/danielealbano/mcp-for-azure-devops-boards.git cd mcp-for-azure-devops-boards -
Compile o projeto:
cargo build --release
Ferramentas de Desenvolvimento
- Executar testes:
cargo test - Verificar estilo de código:
cargo fmt --check - Linting:
cargo clippy
Aviso Legal
Este projeto não é afiliado, endossado ou patrocinado pela Microsoft. Azure, Azure DevOps e marcas relacionadas são propriedade de seus respectivos proprietários. Este software usa as APIs padrão dos serviços da Microsoft para interagir com Azure e Microsoft Graph, entre outros serviços.
Licença
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE.md para obter detalhes.