grupoa-mcp-azure-devops
v1.0.9
Published
Servidor MCP (Model Context Protocol) para Azure DevOps via stdio, implementado em Node.js.
Readme
grupoa-mcp-azure-devops
Servidor MCP (Model Context Protocol) para Azure DevOps via stdio, implementado em Node.js.
Expoe 55 tools cobrindo Work Items, Pull Requests, Code Review, Git, Builds, Pipelines, Projects, Teams e Wiki. Todas as chamadas usam a Azure DevOps REST API v7.0.
Requisitos
- Node.js 18+
- PAT (Personal Access Token) do Azure DevOps com permissoes adequadas
Instalacao
npm install -g grupoa-mcp-azure-devopsConfiguracao
Claude Desktop
Arquivo: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"azure-devops": {
"command": "grupoa-mcp-azure-devops",
"args": [],
"env": {
"AZURE_DEVOPS_PAT": "seu_pat_aqui",
"AZURE_DEVOPS_ORG": "sua_org",
"AZURE_DEVOPS_PROJECT": "seu_projeto"
}
}
}
}Windows com nvs (ou outro gerenciador de versao Node): o Claude Desktop e um app GUI e nao herda o PATH do seu shell interativo. O binario grupoa-mcp-azure-devops instalado pelo nvs nao e encontrado. Use o caminho completo do .cmd:
{
"mcpServers": {
"azure-devops": {
"command": "C:\\Users\\SEU_USUARIO\\AppData\\Local\\nvs\\default\\grupoa-mcp-azure-devops.cmd",
"args": [],
"env": {
"AZURE_DEVOPS_PAT": "seu_pat_aqui",
"AZURE_DEVOPS_ORG": "sua_org",
"AZURE_DEVOPS_PROJECT": "seu_projeto"
}
}
}
}Apos salvar, reinicie o Claude Desktop.
Claude Code CLI
Arquivo: %USERPROFILE%\.claude\settings.json
{
"mcpServers": {
"azure-devops": {
"command": "C:\\Users\\SEU_USUARIO\\AppData\\Local\\nvs\\default\\npx.cmd",
"args": ["-y", "grupoa-mcp-azure-devops"],
"env": {
"AZURE_DEVOPS_PAT": "seu_pat_aqui",
"AZURE_DEVOPS_ORG": "sua_org",
"AZURE_DEVOPS_PROJECT": "seu_projeto"
}
}
}
}No Claude Code CLI, usar npx com o caminho completo e mais robusto do que apontar para o binario global, pois garante que o pacote correto e encontrado independente do contexto de execucao.
Variaveis de ambiente
| Variavel | Obrigatoria | Descricao |
| --- | --- | --- |
| AZURE_DEVOPS_PAT | Sim | Personal Access Token para autenticacao Basic |
| AZURE_DEVOPS_ORG | Sim | Nome da organizacao no Azure DevOps |
| AZURE_DEVOPS_PROJECT | Sim | Nome do projeto padrao |
| AZURE_DEVOPS_URL | Nao | URL base (padrao: https://dev.azure.com) |
Passe sempre as variaveis via env na configuracao MCP como nos exemplos acima. O servidor tenta carregar .env como fallback para desenvolvimento local, mas nao dependa disso em producao.
Verificando se o servidor sobe corretamente
node src/index.jsStdout deve estar vazio. O servidor registra no stderr:
+A Azure DevOps MCP Server runningPara testar o handshake MCP completo:
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
| AZURE_DEVOPS_PAT="seu_pat" AZURE_DEVOPS_ORG="sua_org" AZURE_DEVOPS_PROJECT="seu_projeto" \
npx grupoa-mcp-azure-devops 2>/dev/nullDeve retornar "protocolVersion":"2025-11-25".
Tools disponiveis (55)
Work Items (12)
- work_items_get, work_items_get_batch, work_items_create, work_items_update
- work_items_delete, work_items_query, work_items_get_updates, work_items_get_comments
- work_items_add_comment, work_items_add_relation, work_items_remove_relation, work_items_add_attachment
Pull Requests (13)
- pull_requests_list, pull_requests_get, pull_requests_create, pull_requests_update
- pull_requests_get_threads, pull_requests_create_thread, pull_requests_update_comment
- pull_requests_update_thread_status, pull_requests_get_commits, pull_requests_get_iterations
- pull_requests_get_changes, pull_requests_add_reviewer, pull_requests_remove_reviewer
Orquestracao de Code Review (10)
- code_review_prepare_context, code_review_validate_context
- code_review_list_prompts, code_review_get_prompt, code_review_select_prompt
- code_review_get_execution_bundle, code_review_enumerate_issues
- code_review_prepare_publication_payload, code_review_publish_comments_batch
- code_review_publish_from_issues
Git (6)
- git_repositories_list, git_refs_list, git_commits_list
- git_item_get, git_branch_stats, git_diffs
Builds e Pipelines (7)
- builds_list, builds_get, builds_queue, builds_get_logs
- build_definitions_list, pipelines_list, pipelines_run
Projects e Teams (4)
- projects_list, projects_get, teams_list, teams_get_members
Wiki (3)
- wiki_list, wiki_page_get, wiki_page_create_or_update
Code Review
A forma recomendada de acionar o pipeline de code review e via linguagem natural:
faca o code review do PR 126365 usando o MCP azure-devopsO Claude orquestra as tools na ordem correta, resolve o work item vinculado automaticamente e seleciona o prompt especialista pela stack detectada.
Para especificar o work item ou forcar uma stack:
faca o code review do PR 126365, work item 256554, usando o prompt especialista de Vue/VuetifyPrompts especialistas
Os arquivos ficam em prompts/code-reviews/ e sao incluidos no pacote npm:
| Arquivo | Stack | | --- | --- | | codereview-master.md | Orquestrador (todas as stacks) | | codereview-functional-adherence.md | Aderencia funcional ao PBI/Feature | | codereview-express-nodejs-strict.md | Express / Node.js | | codereview-fastify-nodejs-strict.md | Fastify / Node.js | | codereview-vue-vuetify-nodejs-strict.md | Vue / Vuetify / Node.js | | codereview-postgresql-knex-migration-strict.md | PostgreSQL / Knex / Migrations |
Pipeline de code review (8 etapas)
code_review_get_execution_bundle— carrega contexto completo do PR e PBI- Confirmacao da execucao
- Validacao da estrutura do Feature/PBI
- Validacao da estrutura do Pull Request
- Validacao de commits e diffs
- Analise de aderencia funcional (criterios de aceite x arquivos alterados x cobertura de testes)
code_review_enumerate_issues— lista issues para aprovacao humana antes de publicarcode_review_publish_comments_batch— publica comentarios aprovados com prefixo[MCP Reviewer]
Notas tecnicas
- Transporte: stdio (
StdioServerTransport) - SDK:
@modelcontextprotocol/sdk ^1.29.0— necessario paraprotocolVersion: "2025-11-25" dotenv >= 17escreve no stdout ao carregar variaveis, o que quebra o protocolo JSON-RPC. Este pacote passa{ quiet: true }em todas as chamadasdotenv.config()para suprimir esse output.- Dois clientes HTTP internos:
projectClient(endpoints de projeto) eorgClient(endpoints de organizacao). Ambos injetamapi-version=7.0automaticamente.
