Azure DevOps MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Azure DevOps MCP Servershow current sprint tasks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Azure DevOps MCP Server
Servidor MCP que permite que agentes de IA interajam naturalmente com o Azure DevOps
Instalação • Recursos • Configuração • Exemplos • Permissões
📖 O Que É Este Projeto?
Este é um servidor MCP (Model Context Protocol) que conecta agentes de IA (como Claude, ChatGPT via Cursor) ao Azure DevOps, permitindo que você converse em linguagem natural para:
✅ Consultar e criar Work Items (Tasks, Bugs, User Stories)
✅ Executar queries WIQL personalizadas
✅ Gerenciar Sprints (Iterations) e Boards
✅ Criar e revisar Pull Requests
✅ Gerenciar Teams e Repositories
✅ Editar Wiki Pages
Em vez de:
Abrir browser → Login Azure DevOps → Boards → New Work Item → Preencher formulário...Você faz:
User: "Crie uma task para implementar autenticação JWT com prioridade alta"
Agent: ✅ Task #456 criada com sucesso!Related MCP server: Azure DevOps MCP Server
🏗️ Arquitetura
┌─────────────────────────────────────────────────────────────────┐
│ CURSOR / AI AGENT │
│ (Claude, ChatGPT, etc) │
└────────────────────────────┬────────────────────────────────────┘
│
│ Model Context Protocol (MCP)
│
┌────────────────────────────▼────────────────────────────────────┐
│ MCP SERVER (este projeto) │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ MCP Layer │ │
│ │ ├─ 12 Resources (read-only data sources) │ │
│ │ └─ 27 Tools (executable actions) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Business Logic Layer │ │
│ │ ├─ Work Items API ├─ Pull Requests API │ │
│ │ ├─ WIQL API ├─ Teams API │ │
│ │ ├─ Boards API ├─ Repositories API │ │
│ │ ├─ Iterations API └─ Wikis API │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Core Infrastructure │ │
│ │ ├─ Retry Policy (exponential backoff) │ │
│ │ ├─ Circuit Breaker (failure protection) │ │
│ │ ├─ Rate Limiter (token bucket) │ │
│ │ ├─ Logger (with credential redaction) │ │
│ │ └─ Telemetry (performance metrics) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Providers Layer │ │
│ │ ├─ HTTP Provider (axios + REST API) │ │
│ │ └─ SDK Provider (azure-devops-node-api) │ │
│ └──────────────────────────────────────────────────────────┘ │
└────────────────────────────┬────────────────────────────────────┘
│
│ HTTPS + Personal Access Token (PAT)
│
┌────────────────────────────▼────────────────────────────────────┐
│ AZURE DEVOPS REST API │
│ https://dev.azure.com/{organization}/{project} │
└──────────────────────────────────────────────────────────────────┘📁 Estrutura de Pastas
mcp-azure-devops/
├── src/ # Código-fonte TypeScript
│ ├── index.ts # Entry point (inicialização do servidor)
│ ├── server.ts # Configuração do MCP Server
│ │
│ ├── mcp/ # MCP Layer
│ │ ├── resources/ # 12 Resources (data sources)
│ │ │ └── index.ts # Handlers de resources
│ │ ├── tools/ # 27 Tools (actions)
│ │ │ └── index.ts # Handlers de tools
│ │ └── schemas/ # JSON Schemas de validação
│ │ └── index.ts # Schemas dos tools
│ │
│ └── wrapper/ # Backend Wrapper
│ ├── index.ts # Client principal
│ │
│ ├── config/ # Configuração
│ │ ├── env.ts # Leitura de variáveis de ambiente
│ │ └── index.ts # Config object (frozen)
│ │
│ ├── core/ # Core Infrastructure
│ │ ├── auth.ts # Authentication Manager
│ │ ├── resilience.ts # Retry Policy + Circuit Breaker
│ │ └── rules.ts # Rate Limiter + Validation
│ │
│ ├── logging/ # Logging & Telemetry
│ │ ├── logger.ts # Logger (pino + redaction)
│ │ └── telemetry.ts # Performance metrics
│ │
│ ├── providers/ # Providers Layer
│ │ ├── base.provider.ts # Interface abstrata
│ │ ├── http.provider.ts # HTTP Client (axios)
│ │ ├── sdk.provider.ts # SDK Client (oficial)
│ │ └── index.ts # Factory
│ │
│ ├── api/ # Business Logic APIs
│ │ ├── work-items.ts # Work Items CRUD + WIQL
│ │ ├── wiql.ts # WIQL Queries
│ │ ├── boards.ts # Boards Management
│ │ ├── iterations.ts # Iterations/Sprints
│ │ ├── pull-requests.ts # Pull Requests
│ │ ├── repositories.ts # Git Repositories
│ │ ├── teams.ts # Teams Management
│ │ └── wiki.ts # Wiki Pages
│ │
│ └── types/ # TypeScript Types
│ ├── index.ts # Exports
│ ├── work-items.ts # Work Item types
│ ├── boards.ts # Board types
│ ├── iterations.ts # Iteration types
│ ├── pull-requests.ts # PR types
│ ├── teams.ts # Team types
│ ├── wiki.ts # Wiki types
│ └── providers.ts # Provider types
│
├── dist/ # JavaScript compilado (gerado)
├── tests/ # Testes
│ ├── integration/ # Testes de integração
│ └── mcp/ # Testes MCP
│
├── docs/ # Documentação adicional
│
├── package.json # Dependências e scripts
├── tsconfig.json # Configuração TypeScript
├── .gitignore # Arquivos ignorados
├── cursor-mcp-config-example.json # Exemplo de config
├── README.md # Este arquivo
├── QUICKSTART.md # Guia rápido
├── ARCHITECTURE.md # Arquitetura detalhada
└── LICENSE # Licença MIT🚀 Instalação
Pré-requisitos
Node.js >= 18.0.0
npm >= 9.0.0
Conta no Azure DevOps
Personal Access Token (PAT) com permissões apropriadas
Cursor (ou outro cliente MCP)
Passo 1: Clone o Repositório
git clone https://github.com/seu-usuario/mcp-azure-devops.git
cd mcp-azure-devopsPasso 2: Instale as Dependências
npm installDependências principais:
@modelcontextprotocol/sdk- SDK oficial do MCPazure-devops-node-api- SDK oficial do Azure DevOpsaxios- HTTP clientpino- Logger profissionaldotenv- Gerenciamento de variáveis de ambiente
Passo 3: Compile o Projeto
npm run buildIsso irá:
Compilar TypeScript → JavaScript
Gerar pasta
dist/com código compiladoGerar source maps e type definitions
Passo 4: Verifique a Instalação
ls dist/
# Deve mostrar: index.js, server.js, mcp/, wrapper/, etc⚙️ Configuração
Passo 1: Crie um Personal Access Token (PAT)
Acesse Azure DevOps:
https://dev.azure.com/{sua-org}Clique em User Settings (ícone de usuário) → Personal Access Tokens
Clique em New Token
Configure:
Name:
MCP Server TokenOrganization: Sua organização
Expiration: 90 dias (ou custom)
Scopes: Ver seção Permissões
Clique em Create e copie o token (não será mostrado novamente!)
Passo 2: Configure o Cursor
Edite o arquivo de configuração do Cursor:
macOS/Linux: ~/.cursor/mcp.json
Windows: %USERPROFILE%\.cursor\mcp.json
{
"mcpServers": {
"azure-devops": {
"command": "node",
"args": [
"/caminho/completo/para/mcp-azure-devops/dist/index.js"
],
"env": {
"AZURE_DEVOPS_PAT": "seu_personal_access_token_aqui",
"AZURE_DEVOPS_ORG": "sua_organizacao",
"AZURE_DEVOPS_PROJECT": "seu_projeto",
"LOG_LEVEL": "info",
"NODE_ENV": "production"
}
}
}
}⚠️ IMPORTANTE:
Substitua
/caminho/completo/para/pelo path absoluto do projetoSubstitua
seu_personal_access_token_aquipelo PAT geradoSubstitua
sua_organizacaopelo nome da sua org no Azure DevOpsSubstitua
seu_projetopelo nome do projeto
📌 Exemplo:
{
"mcpServers": {
"azure-devops": {
"command": "node",
"args": [
"/home/usuario/projetos/mcp-azure-devops/dist/index.js"
],
"env": {
"AZURE_DEVOPS_PAT": "abc123xyz789...",
"AZURE_DEVOPS_ORG": "minha-empresa",
"AZURE_DEVOPS_PROJECT": "Projeto-Principal"
}
}
}
}Passo 3: Reinicie o Cursor
Feche completamente o Cursor e reabra.
Passo 4: Teste a Conexão
No Cursor, pergunte ao agente:
"Quais são minhas tasks pendentes no Azure DevOps?"Se tudo estiver correto, o agente irá acessar o resource azure://work-items/my-tasks e listar suas tasks!
📦 Recursos (Resources)
Resources são fontes de dados read-only que o agente pode consultar. Funcionam como "páginas web" que o agente acessa para obter informações.
URI | Descrição | Retorna | Limite |
| Tasks atribuídas ao usuário atual | Work Items onde | 50 itens |
| Todos os bugs abertos do projeto | Work Items onde | 100 itens |
| Todos os work items (recentes) | Todos os Work Items ordenados por data de modificação | 200 itens |
| Health do servidor e informações do projeto | Status de conexão, circuit breaker, rate limit, provider ativo | - |
| Lista de boards do projeto | Todos os boards com ID, nome e URL | - |
| Configuração de um board específico | Colunas, settings, visibilidade de backlog | - |
| Todas as iterations (sprints) | Iterations passadas, atual e futuras | - |
| Sprint atual com work items | Iteration atual + lista de work items da sprint | - |
| Capacity planning de uma iteration | Capacidade por usuário, atividade e time | - |
| Pull Requests ativos | PRs com status | - |
| Teams do projeto | Todos os teams com ID, nome, descrição | - |
| Wikis do projeto | Todas as wikis com ID, nome, tipo (project/code) | - |
💡 Como o agente usa:
User: "Quais são os bugs críticos abertos?"
Agent:
1. Acessa resource: azure://work-items/bugs
2. Filtra por prioridade crítica
3. Retorna: "🔥 Encontrei 3 bugs críticos: #123, #456, #789"🛠️ Tools (Ações Executáveis)
Tools são ações que modificam dados no Azure DevOps. O agente as executa quando você pede para criar, atualizar ou deletar algo.
📋 Work Items (7 tools)
Tool | Descrição | Permissão Necessária | Alertas |
| Cria um novo work item (Task, Bug, User Story, etc) | ✅ Work Items: Read & Write | ⚠️ Cria no projeto configurado. Tipo deve existir no process template. |
| Atualiza campos de um work item existente | ✅ Work Items: Read & Write | ⚠️ Estados devem ser válidos para o workflow. |
| Deleta um work item (move para Recycle Bin) | ✅ Work Items: Read & Write | 🔴 CRÍTICO: Ação irreversível (pode recuperar da lixeira em 30 dias). |
| Busca um work item por ID | ✅ Work Items: Read | - |
| Executa query WIQL customizada | ✅ Work Items: Read | ⚠️ Limite de 20.000 resultados por query. Sintaxe WIQL deve ser válida. |
| Busca tasks do usuário atual | ✅ Work Items: Read | - |
| Busca bugs com prioridade crítica | ✅ Work Items: Read | - |
Exemplo de uso:
// Criação de task
User: "Crie uma task 'Implementar login JWT' com prioridade alta"
Agent: Chama azure_create_work_item({
type: "Task",
title: "Implementar login JWT",
priority: 1
})
Result: ✅ Task #456 criada!📊 Boards (3 tools)
Tool | Descrição | Permissão Necessária | Alertas |
| Lista todos os boards do projeto | ✅ Work Items: Read | - |
| Obtém configuração de um board | ✅ Work Items: Read | - |
| Atualiza configuração de board | ✅ Work Items: Read & Write + Project & Team: Read, Write & Manage | ⚠️ Requer permissão de Project Admin. Alterações afetam todo o team. |
🏃 Iterations / Sprints (5 tools)
Tool | Descrição | Permissão Necessária | Alertas |
| Lista todas as iterations (sprints) | ✅ Work Items: Read | - |
| Cria uma nova iteration/sprint | ✅ Work Items: Read & Write + Project & Team: Read, Write & Manage | ⚠️ Requer permissão de Team Admin. Datas devem ser futuras. |
| Obtém sprint atual com work items | ✅ Work Items: Read | - |
| Deleta uma iteration | ✅ Work Items: Read & Write + Project & Team: Read, Write & Manage | 🔴 CRÍTICO: Work items não são deletados, apenas desassociados da sprint. |
| Obtém capacity planning de uma sprint | ✅ Work Items: Read | - |
🔀 Pull Requests (2 tools)
Tool | Descrição | Permissão Necessária | Alertas |
| Lista PRs de um repositório | ✅ Code: Read | - |
| Cria um novo Pull Request | ✅ Code: Read & Write | ⚠️ Source branch e target branch devem existir. Title é obrigatório. |
👥 Teams (3 tools)
Tool | Descrição | Permissão Necessária | Alertas |
| Lista todos os teams do projeto | ✅ Project & Team: Read | - |
| Obtém detalhes de um team | ✅ Project & Team: Read | - |
| Cria um novo team | ✅ Project & Team: Read, Write & Manage | ⚠️ Requer permissão de Project Admin. Nome deve ser único. |
📚 Repositories (2 tools)
Tool | Descrição | Permissão Necessária | Alertas |
| Lista todos os repositórios do projeto | ✅ Code: Read | - |
| Obtém detalhes de um repositório | ✅ Code: Read | - |
📖 Wikis (7 tools)
Tool | Descrição | Permissão Necessária | Alertas |
| Lista todas as wikis do projeto | ✅ Wiki: Read | - |
| Obtém detalhes de uma wiki | ✅ Wiki: Read | - |
| Cria uma nova wiki | ✅ Wiki: Read & Write | ⚠️ Nome deve ser único. Tipo pode ser |
| Lista páginas de uma wiki | ✅ Wiki: Read | - |
| Obtém conteúdo de uma página | ✅ Wiki: Read | - |
| Cria uma nova página na wiki | ✅ Wiki: Read & Write | ⚠️ Path deve ser único. Conteúdo em Markdown. |
| Atualiza uma página existente | ✅ Wiki: Read & Write | ⚠️ Requer |
🔐 Permissões do Azure DevOps
Permissões Mínimas (Read-Only)
Para apenas consultar dados (resources):
✅ Work Items: Read
✅ Code: Read
✅ Wiki: Read
✅ Project & Team: ReadComo configurar:
Azure DevOps → User Settings → Personal Access Tokens
New Token → Custom defined
Selecione apenas: Work Items (Read), Code (Read), Wiki (Read)
Permissões Recomendadas (Produtividade)
Para criar e modificar dados (tools):
✅ Work Items: Read & Write
✅ Code: Read & Write
✅ Wiki: Read & Write
✅ Project & Team: ReadPermissões Avançadas (Administração)
Para gerenciar boards, sprints e teams:
✅ Work Items: Read & Write
✅ Code: Read & Write
✅ Wiki: Read & Write
✅ Project & Team: Read, Write & Manage⚠️ ATENÇÃO: Permissões de Manage devem ser dadas apenas para usuários confiáveis, pois permitem:
Criar/deletar teams
Modificar configuração de boards
Criar/deletar sprints
Alterar estrutura do projeto
Verificando Permissões
Teste cada permissão:
# Read-only test
User: "Liste meus work items"
→ Se funcionar: ✅ Work Items Read OK
# Write test
User: "Crie uma task de teste"
→ Se funcionar: ✅ Work Items Write OK
→ Se erro 403: ❌ Falta permissão de Write
# Admin test
User: "Crie um novo sprint"
→ Se funcionar: ✅ Project & Team Manage OK
→ Se erro 403: ❌ Falta permissão de Manage💡 Exemplos de Uso
1. Consultando Work Items
User: "Quais são minhas tasks pendentes?"
Agent: [Acessa azure://work-items/my-tasks]
📋 Você tem 3 tasks pendentes:
1. #456 - Implementar autenticação JWT (To Do) - Prioridade: 1
2. #457 - Corrigir parser de markdown (In Progress) - Prioridade: 2
3. #789 - Refatorar componente de login (To Do) - Prioridade: 32. Criando Work Items
User: "Crie uma task para implementar cache Redis com prioridade alta"
Agent: [Chama azure_create_work_item]
✅ Task criada com sucesso!
📋 ID: #890
📝 Título: Implementar cache Redis
⏰ Estado: To Do
⚡ Prioridade: 1 (Alta)
🔗 URL: https://dev.azure.com/sua-org/projeto/_workitems/edit/8903. Atualizando Work Items
User: "Marque a task #456 como Done"
Agent: [Chama azure_update_work_item]
✅ Task #456 atualizada!
📋 ID: #456
📝 Título: Implementar autenticação JWT
⏰ Estado: To Do → Done ✅4. Queries WIQL Customizadas
User: "Me mostre todos os bugs criados nos últimos 7 dias com prioridade crítica"
Agent: [Chama azure_query_work_items]
🔍 Query WIQL:
SELECT [System.Id], [System.Title], [System.State]
FROM WorkItems
WHERE [System.WorkItemType] = 'Bug'
AND [Microsoft.VSTS.Common.Priority] = 1
AND [System.CreatedDate] >= @Today - 7
🔥 Encontrados 2 bugs críticos:
1. #891 - Login falha no iOS 17 (New)
2. #892 - Crash ao abrir perfil (New)5. Gerenciando Sprints
User: "Crie um sprint de 2 semanas começando segunda-feira"
Agent: [Chama azure_create_iteration]
✅ Sprint criado com sucesso!
📅 Nome: Sprint 15
📆 Início: 2025-11-10
📆 Fim: 2025-11-24
🔗 URL: https://dev.azure.com/sua-org/projeto/_sprints/...6. Pull Requests
User: "Crie um PR da branch feature/login para main com título 'Implementa autenticação JWT'"
Agent: [Chama azure_create_pull_request]
✅ Pull Request criado!
🔀 ID: #42
📝 Título: Implementa autenticação JWT
🌿 Source: feature/login → main
👤 Autor: Você
🔗 URL: https://dev.azure.com/sua-org/projeto/_git/repo/pullrequest/427. Wiki Management
User: "Crie uma página 'Getting Started' na wiki do projeto"
Agent: [Chama azure_create_wiki_page]
✅ Página criada!
📖 Wiki: Project Wiki
📄 Path: /Getting-Started
🔗 URL: https://dev.azure.com/sua-org/projeto/_wiki/wikis/...🔍 Troubleshooting
Server não aparece no Cursor
Sintomas:
Cursor não mostra o servidor MCP na lista
Agente não consegue acessar resources
Soluções:
Verifique que o path no
mcp.jsonestá correto (caminho absoluto)Confirme que executou
npm run build(pastadist/existe)Verifique sintaxe JSON do arquivo
mcp.jsonReinicie o Cursor completamente (feche todas as janelas)
Verifique logs do Cursor:
Help → Show Logs
Erro 401 - Unauthorized
Sintomas:
Error: Request failed with status code 401Causas:
PAT inválido ou expirado
PAT não configurado corretamente
Soluções:
Verifique que o PAT está correto no
mcp.jsonGere um novo PAT no Azure DevOps
Confirme que o PAT não expirou
Teste o PAT manualmente:
curl -u :SEU_PAT https://dev.azure.com/sua-org/_apis/projectsErro 403 - Forbidden
Sintomas:
Error: Request failed with status code 403Causas:
PAT sem permissões suficientes
Usuário sem acesso ao projeto
Soluções:
Verifique permissões do PAT (ver seção Permissões)
Confirme que seu usuário tem acesso ao projeto no Azure DevOps
Para ações de Write: PAT precisa de Read & Write
Para ações de Manage: PAT precisa de Read, Write & Manage
Work Item não é criado
Sintomas:
Error: Work item type 'Task' not foundCausas:
Tipo de work item não existe no process template do projeto
Soluções:
Verifique os tipos disponíveis no seu projeto:
Azure DevOps → Project Settings → Process
Process templates comuns:
Agile: Task, Bug, User Story, Epic, Feature
Scrum: Task, Bug, Product Backlog Item, Epic, Feature
CMMI: Task, Bug, Requirement, Epic, Feature
Basic: Issue, Task, Epic
Use o tipo correto para o seu project template
Query WIQL falha
Sintomas:
Error: Invalid WIQL query syntaxCausas:
Sintaxe WIQL inválida
Campo não existe no projeto
Operador inválido
Soluções:
Valide a sintaxe WIQL:
-- ✅ Correto
SELECT [System.Id], [System.Title]
FROM WorkItems
WHERE [System.State] = 'Active'
-- ❌ Errado (falta FROM)
SELECT [System.Id], [System.Title]
WHERE [System.State] = 'Active'Teste a query no Azure DevOps:
Boards → Queries → New Query → Editor
Confirme que campos existem:
[System.FieldName]Use campos padrão quando possível
Circuit Breaker Ativo
Sintomas:
Error: Circuit breaker is OPEN - too many failuresCausas:
Muitas requisições falharam recentemente
Azure DevOps pode estar indisponível
Soluções:
Aguarde 1 minuto (circuit breaker se reseta automaticamente)
Verifique status do Azure DevOps: https://status.dev.azure.com
Verifique sua conexão de internet
Consulte health do servidor:
User: "Qual o status do servidor?"
Agent: [Acessa azure://project/info]Rate Limit Excedido
Sintomas:
Error: Rate limit exceeded - too many requestsCausas:
Muitas requisições em curto período
Rate limiter protege contra spam
Soluções:
Aguarde alguns segundos
Evite fazer muitas requisições simultâneas
Rate limit padrão: 100 requisições/minuto
Logs de Debug
Para investigar problemas, ative logs detalhados:
{
"mcpServers": {
"azure-devops": {
"env": {
"LOG_LEVEL": "debug",
"NODE_ENV": "development"
}
}
}
}Logs serão exibidos no stderr do Cursor.
🔧 Desenvolvimento
Setup Local
# Clone
git clone https://github.com/seu-usuario/mcp-azure-devops.git
cd mcp-azure-devops
# Instale
npm install
# Build
npm run build
# Watch mode (rebuild automático)
npm run devScripts Disponíveis
npm run dev # Modo desenvolvimento (tsx watch)
npm run build # Compila TypeScript → JavaScript
npm run start # Inicia servidor (node dist/index.js)
npm run test # Executa testes (jest)
npm run test:watch # Testes em watch mode
npm run lint # ESLint
npm run clean # Remove dist/Testes
# Todos os testes
npm test
# Testes específicos
npm test -- work-items
# Cobertura
npm test -- --coverageEstrutura de Testes
tests/
├── integration/ # Testes de integração com Azure DevOps real
│ └── work-items.test.ts
└── mcp/ # Testes de handlers MCP
├── resources.test.ts
└── tools.test.ts📚 Documentação Adicional
QUICKSTART.md - Guia rápido de 5 minutos
ARCHITECTURE.md - Arquitetura detalhada e decisões de design
Links Úteis
Model Context Protocol (MCP) - Especificação oficial
Azure DevOps REST API - Documentação da API
WIQL Syntax Reference - Referência de queries
Azure DevOps Node API - SDK oficial
🤝 Contribuindo
Contribuições são muito bem-vindas! Este projeto é open source e livre para uso.
Como Contribuir
Fork o repositório
Clone seu fork
Crie uma branch:
git checkout -b feature/minha-featureFaça suas alterações
Commit:
git commit -m "feat: adiciona nova feature"Push:
git push origin feature/minha-featureAbra um Pull Request
Convenções
Commits: Seguimos Conventional Commits
feat:- Nova funcionalidadefix:- Correção de bugdocs:- Documentaçãorefactor:- Refatoraçãotest:- Testeschore:- Tarefas de manutenção
Code Style: ESLint + Prettier (automático)
Type Safety: TypeScript strict mode
Áreas para Contribuir
🐛 Bug Fixes - Reporte ou corrija bugs
✨ Features - Novas funcionalidades
📖 Documentação - Melhore ou traduza docs
🧪 Testes - Aumente cobertura de testes
🎨 UX - Melhore mensagens e exemplos
🌍 i18n - Traduções para outros idiomas
📄 Licença
MIT License - Livre para uso comercial e pessoal
Copyright (c) 2025
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.Em Resumo 🎉
Pode:
✅ Usar comercialmente
✅ Modificar como quiser
✅ Distribuir
✅ Usar em projetos privados
✅ Vender (se quiser)
Não precisa:
❌ Pedir permissão
❌ Dar créditos (mas é legal se fizer!)
❌ Compartilhar suas modificações
❌ Usar a mesma licença
Tradução livre: "Pega, clona, mexe e não me incomoda!" 😎
Feito com ❤️ para a comunidade de desenvolvimento
Available Tools
30 toolsazure_create_iterationB
Cria uma nova iteration/sprint
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nome da iteration/sprint (ex: Sprint 1) | |
| path | No | Path da iteration (opcional) | |
| team | No | Team name (opcional) | |
| startDate | Yes | Data de início em formato ISO 8601 (ex: 2025-11-01T00:00:00Z) | |
| finishDate | Yes | Data de fim em formato ISO 8601 (ex: 2025-11-14T23:59:59Z) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the obvious side effect (creation) and does not mention anything about permissions, validation rules, overwrite behavior, or response format. This is minimal and insufficient for an agent to anticipate side effects beyond the basic creation action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence in Portuguese ('Cria uma nova iteration/sprint') that conveys the essential purpose without any wasted words. It is appropriately concise for a straightforward create operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no annotations, and no output schema, the description is quite sparse. However, the schema descriptions cover parameter semantics adequately, so the description is minimally acceptable for a simple create operation. It lacks additional context about what happens on success, error conditions, or relationship to other resources, but for a basic CRUD tool this is on the lower end of adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all five parameters (name, path, team, startDate, finishDate) individually described. The description itself adds no parameter information, but the schema already provides adequate semantics. Baseline 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Cria uma nova iteration/sprint' clearly states the action (create) and the resource (iteration/sprint). This directly differentiates it from sibling tools like azure_list_iterations, azure_delete_iteration, and azure_get_current_iteration, which perform different operations on the same resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. There are no prerequisites, exclusions, or references to alternative tools for similar actions. The only implied usage is from the name 'create', but the description adds no contextual information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_create_pull_requestC
Cria um novo Pull Request
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Título do Pull Request | |
| description | No | Descrição do PR (opcional) | |
| repositoryId | Yes | ID do repositório Git | |
| sourceRefName | Yes | Branch source (ex: refs/heads/feature-branch) | |
| targetRefName | Yes | Branch target (ex: refs/heads/main) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action of creating a pull request, without mentioning side effects, permissions, or any operational characteristics. This is insufficient for an agent to understand the tool's behavior beyond the verb 'create'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is front-loaded and appropriately short, though it lacks substantive content. The structure is efficient, but the sentence's tautological nature prevents a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with 5 parameters and no annotations or output schema, the description is far too minimal. It does not explain the action's prerequisites, effects, or return values, leaving significant gaps in context that a more thorough description should fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all five parameters having clear descriptions. The tool description itself adds no parameter information, but the baseline of 3 applies because the schema already documents the parameters thoroughly, making additional description unnecessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Cria um novo Pull Request' translates directly to 'Creates a new Pull Request', which merely restates the tool name 'azure_create_pull_request'. It is a tautology, providing no new information about the tool's scope or distinguishing capabilities beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, leaving the agent without any decision support for selecting this tool among the many sibling create tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_create_teamB
Cria um novo team no projeto
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nome do team | |
| description | No | Descrição do team (opcional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that a team is created, but omits permissions, side effects, response format, or duplicate-handling behavior. For a mutating operation, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant information. Every word contributes to conveying the action and resource, making it appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters and a complete schema, but no output schema or annotations exist. The description provides only minimal context—creating a team—without explaining return values, prerequisites, or post-creation behavior, leaving some gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the schema already documenting 'name' and 'description' fields. The description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Cria' - creates) with a clear resource ('team') and scope ('projeto'), making the tool's function immediately obvious. It also distinguishes from sibling tools like azure_list_teams and azure_get_team by indicating a create operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description merely restates the creation action without mentioning prerequisites, exclusions, or 'use when' context, leaving the agent without comparative usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_create_wikiC
Cria uma nova wiki no projeto
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nome da wiki | |
| type | No | Tipo de wiki (padrão: projectWiki) | |
| projectId | Yes | ID do projeto | |
| mappedPath | No | Path mapeado (opcional para codeWiki) | |
| repositoryId | No | ID do repositório (obrigatório para codeWiki) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic create action and adds no context about required fields, conditional behavior based on 'type', or side effects. The description is too minimal to inform the agent about the tool's behavior beyond the literal action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded and free of fluff. However, it is so brief that it sacrifices informative content, though this is not a conciseness issue but rather a completeness issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has five parameters, including a conditional 'type' enum (projectWiki/codeWiki) and fields that are required only for codeWiki. The description provides no context about these variations, no output expectations, and no operational details. With no output schema and no annotations, the description is severely incomplete for the complexity of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter coverage, with descriptions for all five parameters. The tool description itself adds no new meaning beyond the schema's parameter descriptions, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Cria uma nova wiki no projeto' clearly states the action (create) and resource (wiki) with a project scope. It distinguishes from sibling tools like 'azure_create_wiki_page' by specifying 'wiki' rather than 'wiki page', though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description does not mention conditions, prerequisites, or exclude any use cases, leaving the agent to infer usage solely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_create_wiki_pageB
Cria uma nova página na wiki
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path da página (ex: /Getting-Started) | |
| content | Yes | Conteúdo markdown da página | |
| wikiIdentifier | Yes | Wiki ID ou nome |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the basic creation behavior but does not disclose potential side effects, error conditions, authentication requirements, or what happens on path conflicts. This is insufficient for a mutation tool beyond the obvious 'creates'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that communicates the core purpose without any filler or redundancy. It is front-loaded with the verb 'Cria' and clearly names the resource, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a minimal one-line description, the tool lacks essential context for reliable use. The schema documents parameters but does not explain what the tool returns (if anything), whether an existing wiki identifier is required, or how conflicts are handled. This is inadequate for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter (wikiIdentifier, path, content) already has a meaningful description. The tool description adds no additional parameter-level detail beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Cria' (creates) and the specific resource 'uma nova página na wiki' (a new wiki page). This precisely conveys the tool's action and distinguishes it from sibling tools like azure_update_wiki_page or azure_list_wiki_pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no context on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., an existing wiki), nor any exclusions or alternative tool suggestions. The only implied usage is the obvious 'when you need to create a page', which is not explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_create_work_itemB
Cria um novo work item no Azure DevOps (Task, Bug, User Story, Epic, Feature, Issue)
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags separadas por ponto-e-vírgula (ex: "urgent; bug; authentication") | |
| type | Yes | Tipo do work item (depende do process template do projeto) | |
| state | No | Estado do work item. OMITIR ao criar - o Azure DevOps define o estado padrão automaticamente por tipo. Use apenas ao atualizar com um estado conhecido e válido do projeto. | |
| title | Yes | Título do work item (obrigatório, máx 255 caracteres) | |
| parentId | No | ID do work item pai (para criar relação Parent-Child) | |
| priority | No | Prioridade: 1 (highest) a 4 (lowest) | |
| assignedTo | No | Email do responsável (ex: usuario@empresa.com) | |
| reproSteps | No | Passos para reproduzir em Markdown (Bug) - formato automático | |
| description | No | Descrição detalhada em Markdown (formato automático) | |
| storyPoints | No | Story points para estimativa | |
| acceptanceCriteria | No | Critérios de aceitação em Markdown (User Story) - formato automático | |
| relatedWorkItemIds | No | IDs dos work items relacionados (para criar relações Related) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses only the act of creation but omits important behavioral context such as permissions required, default state auto-assignment, permanence of the creation, or response format. The schema includes a note about omitting 'state' on create, but this is not surfaced in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence in Portuguese that states the action and resource with the supported types. Every word is necessary, and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter creation tool with no annotations and no output schema, this description is under-specified. It fails to mention key operational context such as required type and title, default state behavior, or what the tool returns. The schema partially fills gaps, but the description should have at least referenced the most important behavioral constraints like 'omit state on create'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no parameter-level meaning beyond the schema; it merely lists the work item types, which are already defined in the enum. Since the schema fully documents all 12 parameters, the description provides no additional semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Cria' (creates) with a clear resource: 'um novo work item' in Azure DevOps, and lists the supported types (Task, Bug, User Story, etc.), which distinguishes it from sibling tools like update, delete, and query work item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating 'Cria um novo work item' but does not explicitly state when to use versus alternatives, nor does it provide exclusions or mention azure_update_work_item for modifications. The intent is clear but not explicitly differentiated from other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_delete_iterationB
Deleta uma iteration (WARNING: use com cautela)
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Team name (opcional) | |
| iterationId | Yes | ID da iteration a deletar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavioral traits. It only warns 'use com cautela,' hinting at destructiveness but failing to specify consequences, reversibility, or impact on dependent items. The description adds minimal transparency beyond an implicit danger signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with a parenthetical warning. It is front-loaded with the main action and alerts the user quickly. However, the use of Portuguese in an otherwise English tool name and schema is slightly disorganized, though not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive delete operation with no annotations and no output schema, the description is inadequate. It lacks context about side effects, required permissions, whether the operation is reversible, or what happens to associated work items. The warning is too generic to guide safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for both parameters (team and iterationId) with descriptions, so the baseline is 3. The description adds no additional parameter information, but it does not need to because the schema already explains the fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Deleta uma iteration' (deletes an iteration), using a specific verb and resource. It distinguishes itself from sibling tools like azure_delete_work_item by explicitly targeting iterations, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The warning 'use com cautela' (use with caution) is a generic caution, not a contextual directive. There is no mention of prerequisites, exclusions, or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_delete_work_itemC
Deleta um work item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID do work item a deletar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the basic deletion action without mentioning whether deletion is permanent, reversible, requires specific permissions, or what happens if the work item does not exist. This is a significant gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is appropriately brief for a simple tool, though it could include more context without becoming bloated. The front-loaded verb 'Deleta' immediately conveys the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description is under-specified for a mutation tool. It does not explain the return value, error behavior, or any side effects. For a delete operation, one might expect at least a note on permanence or failure modes. The simplicity of the tool (one parameter) is not enough to excuse the lack of context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% parameter description coverage for the single 'id' parameter, so the baseline is 3. The description adds no extra meaning beyond the schema's 'ID do work item a deletar', which is already clear. The description does not compensate or add nuance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Deleta um work item' clearly states the verb (delete) and resource (work item), making the action unambiguous. It differentiates itself from sibling tools like create, update, and get by its destructive nature, so the purpose is clear even without explicit comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when deletion is appropriate, or exclude cases like soft-delete. With many sibling tools, some usage context would be expected but is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_board_configB
Obter configuração de board por ID
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | ID do board |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for disclosing behavior. It states 'Obter' (get), implying a read-only operation, but it does not explicitly mention side effects, authentication requirements, return format, or other behavioral traits. The description adds minimal value beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly communicates the tool's purpose without any fluff. Every word contributes meaning, making it appropriately sized for a simple get operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only one parameter and no output schema, the description does not explain what the board configuration contains or what the tool returns. It also lacks guidance on when to use it over sibling tools. Given the absence of annotations and output schema, the description is incomplete for an agent to fully understand the tool's expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with boardId described as 'ID do board'. The description repeats this by saying 'por ID' (by ID), adding no extra meaning. Per the baseline for high schema coverage, this scores 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Obter' (get), the resource 'configuração de board' (board configuration), and the scope 'por ID' (by ID). It distinguishes itself from siblings like azure_list_boards and azure_update_board by specifying a single board's configuration retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a specific board ID is known, but it provides no explicit context on when to use this tool versus alternatives like azure_list_boards or azure_update_board. There is no mention of exclusions or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_critical_bugsB
Busca bugs críticos (prioridade 1) não concluídos
| Name | Required | Description | Default |
|---|---|---|---|
| maxResults | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It indicates a state filter (não concluídos) but does not mention that this is a read-only operation, how results are ordered, or what the output format is. It does not disclose any side effects, authentication needs, or rate limits, leaving the agent with incomplete behavioral knowledge.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the tool's purpose without extraneous words. It is highly concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional parameter, no output schema), so a short description can suffice. It names the resource and filter, but it lacks explanation of the parameter and context relative to sibling tools. Given the low complexity, a minimal description is acceptable, but there are clear gaps in parameter documentation and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (maxResults) with 0% schema description coverage. The tool description does not mention maxResults at all, nor does it explain its purpose (e.g., limiting the number of results). Since the description is the only source for parameter meaning, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Busca' (searches) and precisely identifies the target: critical bugs (priority 1) that are not completed. This clearly distinguishes it from sibling tools like azure_query_work_items or azure_get_work_item, which are more general. The scope is explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving critical uncompleted bugs, but it does not provide explicit guidance on when to choose this tool over alternatives such as azure_query_work_items. No exclusions or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_current_iterationA
Obtém a iteration/sprint atual ativa com work items
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It states the basic read behavior but does not disclose what happens if no active iteration exists, how 'current' is determined, how work items are represented, or any error conditions. This is a significant gap for a tool with no structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Portuguese that packs the essential information without any filler words. It is efficiently front-loaded and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple with no parameters, the lack of an output schema means the description should provide more insight into output structure. It mentions 'with work items' but does not specify the iteration fields or work item format, nor does it address edge cases like missing active iteration. Overall adequate but with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is fully covered. The description appropriately does not attempt to document parameters; the baseline for 0-param tools is 4, and the description adds no unnecessary param talk.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Obtém' (gets) and clearly identifies the resource as 'a iteration/sprint atual ativa' (current active iteration) with the differentiator 'com work items'. This distinguishes it from sibling tools like azure_list_iterations, which lists all iterations, and azure_get_iteration_capacity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving the current active sprint but does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or alternative tools. It's implied rather than explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_iteration_capacityC
Obtém capacity planning de uma iteration
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Team name (opcional) | |
| iterationId | Yes | ID ou path da iteration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'gets capacity planning' without mentioning what the return data looks like, whether team is required, or any side effects. This is too minimal for transparent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant words. It is appropriately sized for a simple read operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description should explain what capacity planning includes or return structure. It does not. It also ignores the optional team parameter, leaving the agent without enough context for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, so the baseline is 3. The description does not add any extra meaning about the parameters (e.g., team optionality or iteration path format), leaving the schema to do all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves capacity planning for an iteration, using a specific verb and resource. It does not explicitly differentiate from sibling tools, but none of the siblings mention capacity planning, so it is implicitly unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks any context about prerequisites, team relevance, or scenarios where this should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_my_tasksB
Busca tasks atribuídas ao usuário atual (helper)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | No | Filtrar por estado específico (opcional) | |
| includeCompleted | No | Incluir tasks concluídas |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates a read operation ('Busca') but does not disclose return format, pagination, default filtering behavior, or the meaning of '(helper)'. Without annotations, this is insufficient for understanding side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose. It is efficient, though the inclusion of '(helper)' is ambiguous and could be clarified. Overall, it is well-structured and free of redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and the presence of an input schema, the description is minimally viable but leaves gaps. It lacks information about return values (no output schema), parameter interactions, and the meaning of 'current user' in a multi-tenant context. However, for a basic read operation, it provides adequate initial understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention any parameters. With schema coverage at 67% (state and includeCompleted have descriptions, but limit does not), the description adds nothing to clarify parameter usage or the effect of 'limit'. It fails to compensate for the missing 'limit' description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Busca' (searches) with a specific resource ('tasks atribuídas ao usuário atual') and clear scope (current user). This clearly distinguishes it from sibling tools like azure_get_work_item or azure_query_work_items, which target different scopes or queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as azure_query_work_items or azure_get_work_item. It only states what it does, leaving the agent to infer usage context without any explicit 'when to use' or 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_repositoryA
Obtém detalhes de um repositório Git específico
| Name | Required | Description | Default |
|---|---|---|---|
| repositoryId | Yes | ID ou nome do repositório Git |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of safety disclosure. The verb 'get' implies a read-only operation, but the description does not disclose response format, error handling, or any access requirements. For a simple read tool, this is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly conveys the tool's purpose without any redundant or filler content. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple getter with one parametrized input, but the lack of an output schema and any mention of what 'details' includes leaves the agent uncertain about the response shape. It does the job for basic selection but lacks completeness for fully informed invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single parameter with 100% coverage, describing it as 'ID ou nome do repositório Git'. The tool description adds no extra semantics beyond the word 'specific', so it meets the baseline but does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving details for a specific Git repository. The verb 'obtém' (gets) and the resource 'repositório Git específico' make it distinct from sibling tools like azure_list_repositories, which lists all repositories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context by specifying that the tool targets a specific repository, implying it should be used when the agent has a repository ID or name and needs details. However, it does not explicitly mention when to avoid using it or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_teamA
Obtém detalhes de um team específico
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | ID ou nome do team |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action without mentioning return format, error behavior, or confirming it is read-only, leaving significant behavioral details unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clear sentence with no redundant words, front-loaded and appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and no output schema. While the description suffices for basic understanding, it lacks details on the shape of returned details or failure modes, making it adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter teamId described as 'ID ou nome do team'. The description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves details for a specific team, using the verb 'obtém' (gets) and resource 'team específico'. It distinguishes from siblings like azure_list_teams and azure_create_team.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching a single team's details but does not explicitly contrast with alternatives like azure_list_teams. No exclusions or prerequisites are mentioned, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_wikiB
Obtém detalhes de uma wiki específica
| Name | Required | Description | Default |
|---|---|---|---|
| wikiIdentifier | Yes | Wiki ID ou nome |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that the tool retrieves details but does not explain return format, error behavior, permissions required, or whether it is a read-only operation beyond the inherent meaning of 'get'. This is a minimal disclosure for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that contains no fluff or redundancy. It is front-loaded with the verb and resource, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but there is no output schema and the description leaves the return value ambiguous ('detalhes' is vague). It does not specify whether it returns metadata, content, or something else, and there is no annotation context to fill the gap. This makes it incomplete for an agent to fully understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides full documentation for the single parameter (wikiIdentifier: 'Wiki ID ou nome') with 100% coverage. The description adds no additional parameter semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Obtém' = gets) and the resource ('detalhes de uma wiki específica' = details of a specific wiki). It distinguishes from sibling tools like azure_get_wiki_page (which fetches a page) and azure_list_wikis (which lists wikis).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or scenarios where another sibling tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_wiki_pageC
Obtém uma página específica da wiki
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path da página (ex: /Home) | |
| includeContent | No | Incluir conteúdo markdown (padrão: true) | |
| wikiIdentifier | Yes | Wiki ID ou nome |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It only says 'gets' without clarifying whether content is included by default, what the response structure is, or any potential error behavior. The includeContent parameter hints at content handling, but that information lives in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately conveys the core function. It is front-loaded and contains no unnecessary words, achieving high efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool appears simple, the description lacks essential context. Since there is no output schema, the description should clarify what is returned (e.g., page content, metadata), but it does not. It also fails to explain how this tool differs from related wiki tools, making it incomplete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters with adequate descriptions. The tool description adds no extra meaning or context about how the parameters relate or should be used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Gets a specific page from the wiki', which clearly indicates the verb and resource. However, it does not explicitly differentiate this from sibling tools like azure_get_wiki or azure_list_wiki_pages, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It lacks any exclusions, prerequisites, or references to sibling tools, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_work_itemB
Obtém detalhes de um work item específico
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID do work item | |
| fields | No | Campos específicos a retornar (opcional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only says 'Obtém detalhes' without specifying whether it returns all fields by default, the effects of the optional 'fields' parameter, potential errors, or authentication requirements. This is a generic statement that adds no behavioral context beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that states the tool's purpose without any filler or unnecessary details. It is well-structured and front-loaded, earning its place in the minimal space it occupies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with two parameters and no output schema, this description is minimally adequate. It clearly indicates the core function but lacks details on return format or default field behavior. The schema covers the parameter semantics, and the sibling context helps clarify its role, but the description alone would leave a user wanting more context about expected outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for both parameters ('id' and 'fields') with 100% coverage. The description adds no additional meaning beyond what the schema already specifies. Baseline of 3 is appropriate as the schema does the heavy lifting for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Obtém detalhes de um work item específico' clearly states the tool's verb (obtém) and resource (work item específico). It distinguishes itself from sibling tools like azure_create_work_item, azure_update_work_item, and azure_delete_work_item, and from azure_query_work_items which searches multiple items. The singular 'specific' implies fetching by ID, reinforced by the required 'id' parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it does not mention that this tool is for fetching a single work item by ID, while azure_query_work_items should be used for searching or listing. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_work_item_statesA
Consulta os estados válidos para um tipo de work item no projeto. Use ANTES de criar ou atualizar work items com estado específico.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Tipo do work item para consultar os estados válidos |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. The verb 'Consulta' indicates a read-only query, and the 'use before' guidance provides behavioral context. However, it does not explicitly state that no modifications occur, nor does it describe the response format or any potential errors. Given the simplicity of the operation, this is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, with the primary purpose stated first and usage guidance second. No filler or redundant information; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter query tool with no output schema, the description covers the main points: what it does and when to use it. It does not mention the return format, but given the tool's simplicity and the clear naming, this is a minor gap. Overall, it is complete enough for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a full description and an enum for the single 'type' parameter, so the description adds no additional semantic value. The description does not elaborate on the parameter beyond what the schema states, so it earns the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Consulta' (queries) and names the resource 'estados válidos para um tipo de work item' (valid states for a work item type). This clearly distinguishes it from sibling create/update/delete tools. The scope 'no projeto' (in the project) adds context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to use the tool 'ANTES de criar ou atualizar work items' (BEFORE creating or updating work items) with a specific state. This gives a clear when-to-use directive. However, it does not mention when not to use it or explicitly name alternative tools, though the sibling context implies the create/update tools are the ones it precedes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_list_boardsA
Lista todos os boards do projeto
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It merely restates the operation implied by the tool name ('list boards') and adds minimal scope ('of the project'). It does not disclose behavioral traits such as pagination, authorization needs, or whether the operation is read-only, though 'list' implies read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that states the essential purpose without any fluff. It is appropriately sized for a simple, parameterless list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low-complexity with no parameters and no output schema, so the description is minimally adequate. However, it does not mention what is returned (e.g., board objects) or any limitations, and it could differentiate from sibling tools that might overlap in purpose. Given the minimal requirements, a score of 3 reflects the missing but not critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so the description does not need to explain parameter semantics. Per the baseline rule, a zero-parameter tool receives a score of 4 unless the description adds confusion, which it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and the resource (boards) scoped to the project. This distinguishes it from sibling tools like azure_get_board_config, which retrieves a specific board's configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of contexts where this is preferred, nor any exclusions or prerequisites. Users must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_list_iterationsB
Lista todas as iterations (sprints) do time
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Team name (opcional, usa default team se não fornecido) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. 'Lista' implies a read-only operation, but the description does not explicitly state that it has no side effects, nor does it mention pagination, ordering, or what fields are returned. It adds no behavioral context beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence: 'Lista todas as iterations (sprints) do time'. It contains no redundant information, is front-loaded with the verb and resource, and earns every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter, but the description does not explain what the returned list contains (e.g., iteration names, dates, status) or mention the default team behavior (though the schema hint covers it). It is adequate but leaves gaps in return structure and edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for its one parameter 'team', which is already described as optional with a default team. The tool description repeats 'do time' but does not add any new meaning about the parameter beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses the verb 'Lista' (Lists) with a specific resource 'iterations (sprints)' and scopes it to 'do time' (of the team). This distinguishes it from sibling tools like azure_get_current_iteration, azure_create_iteration, and azure_delete_iteration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention scenarios such as retrieving a single iteration (use azure_get_current_iteration) or creating/updating iterations, leaving the agent to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_list_pull_requestsC
Lista Pull Requests de um repositório
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filtrar por status (opcional) | |
| repositoryId | Yes | ID do repositório Git |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'lists pull requests' and does not explain return format, default status filter, pagination, or any side effects. It is minimally informative beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately concise for a simple list tool, though it could be slightly more informative while remaining tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should explain what the tool returns and any behavioral nuances. It fails to mention the optional 'status' filter or what the response contains, leaving the description incomplete for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'repositoryId' and 'status' having descriptions. The tool description itself adds no parameter-specific meaning, so it meets the baseline of 3 without enhancing understanding of how the parameters interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Lista Pull Requests de um repositório' clarifies that the tool lists pull requests for a given repository, using a specific verb and resource. It distinguishes from sibling tools like azure_create_pull_request (create vs list) and azure_list_repositories (repositories vs pull requests). It lacks detail on filtering but is not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. There is no mention of prerequisites, contexts, or exclusions. The description only states what it does, not when it should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_list_repositoriesA
Lista todos os repositórios Git do projeto
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'lists all Git repositories' and doesn't disclose return format, pagination, authentication requirements, or side effects. With no annotations, the description fails to provide meaningful behavioral context beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's purpose. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no params, no output schema), the description covers the core function adequately. However, it could benefit from mentioning that it returns a list of repository objects or referencing sibling get_repository for details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema confirms this. With no parameters to document, the description doesn't need to add parameter details, earning the baseline score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all Git repositories in the project, using a specific verb and resource. It distinguishes itself from sibling tools like azure_get_repository which targets a single repository.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as azure_get_repository. There is no mention of use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_list_teamsA
Lista todos os teams do projeto
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It simply states the action without disclosing any behavioral details such as response format, pagination, authentication requirements, or whether archived teams are included. For a read operation, this is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is front-loaded and efficient, earning a top score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no params, no output schema), the description is minimally viable but lacks contextual depth. It does not clarify the return value or any edge cases, leaving the agent to infer standard list behavior. There is a clear gap in behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description appropriately does not need to explain parameter details. No additional meaning required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Lista todos os teams do projeto' clearly states the verb (list) and resource (all teams of the project). It distinguishes from siblings like azure_get_team (single team) and azure_create_team (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention that azure_get_team should be used for a specific team, nor any exclusions or prerequisites. The usage context is entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_list_wiki_pagesC
Lista páginas de uma wiki
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Path da página (opcional, para filtrar) | |
| wikiIdentifier | Yes | Wiki ID ou nome |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It adds nothing beyond the tool name, failing to mention whether the listing is recursive, how filtering works, or any error/edge-case behavior. This is a tautological restatement of the tool's purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks structure. It does not include any additional context or elaboration, making it minimally informative rather than efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with two parameters and no output schema, the description is incomplete. It omits the optional 'path' filter and the scope of the listing (e.g., all pages vs. top-level), leaving the agent with insufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, so the schema already explains 'path' and 'wikiIdentifier'. The description adds no parameter-specific meaning, but the baseline of 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Lista páginas de uma wiki' clearly identifies the action (list) and resource (pages of a wiki). It is specific enough to distinguish from tools like azure_get_wiki_page, though it does not explicitly mention alternatives or the optional path filter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not explain when to use this tool versus azure_get_wiki_page or other sibling tools, nor does it mention any prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_list_wikisA
Lista todas as wikis do projeto
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Lista' indicates a read-only listing operation, but it does not disclose return format, pagination, or any authentication/permission requirements. For a simple list tool, this is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is front-loaded with the verb and object. It contains no wasted words and is easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description is mostly complete. It clearly states what is listed, though it could mention that it returns a list of wikis or clarify 'project' context. Given the simplicity, this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so schema coverage is 100%. There are no parameter details to clarify, and the description adds the useful context of project scoping. A baseline of 4 is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Lista' (list), the resource 'wikis', and the scope 'do projeto' (of the project). This distinguishes it from sibling tools like azure_get_wiki (single wiki) and azure_list_wiki_pages (wiki pages).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: use this tool when you need all wikis for a project. However, it does not explicitly mention alternatives or exclusions, such as using azure_get_wiki for a single wiki or azure_list_wiki_pages for pages within a wiki.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_query_work_itemsC
Executa uma query WIQL customizada sobre work items
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo de resultados | |
| query | Yes | Query WIQL (ex: SELECT [System.Id] FROM WorkItems WHERE [System.State] = 'Active') | |
| fields | No | Campos específicos (opcional) | |
| fetchDetails | No | Se true, retorna work items completos. Se false, apenas IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, yet it adds no context: it doesn't state that this is a read-only operation, describe error behavior for invalid WIQL, mention rate limits, or explain what the return payload looks like. The statement merely restates the obvious action of running a query, providing essentially no transparency beyond the verb itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with a clear subject-verb-object structure and zero filler words. It is concise and easy to parse, though its brevity means it forgoes the extra context that would elevate the overall tool documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must explain return behavior and usage context, but it does neither — it doesn't state what the response contains, default fields, pagination via the limit parameter, or when to prefer this over sibling tools. The schema covers parameter semantics well, but the overall description is inadequate for an agent to confidently select and rely on this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — every parameter (limit, query, fields, fetchDetails) has an inline description, including a WIQL example and the behavioral difference between fetchDetails=true and false. The tool description adds no parameter-level meaning, so per the rubric the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource construction ('Executa uma query WIQL customizada sobre work items' — executes a custom WIQL query on work items), clearly indicating what the tool does. The word 'customizada' (custom) implicitly differentiates it from predefined-query siblings like azure_get_my_tasks and azure_get_critical_bugs, but it doesn't explicitly name those alternatives, keeping it at a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives—it is a single sentence with no mention of scenarios, prerequisites, or exclusions. Given the 28 sibling tools including predefined query tools (azure_get_my_tasks, azure_get_critical_bugs) and azure_get_work_item, an agent receives no help choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_update_boardC
Atualizar configurações de board
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | ID do board | |
| settings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It merely states the action (update settings) without detailing effects, permission requirements, idempotency, or failure modes. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, but brevity here results in under-specification rather than efficient structure. It is a single phrase that omits crucial operational details, making it more like a placeholder than a concise, information-dense description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested settings object, no output schema, no annotations), the description is severely incomplete. It does not address return values, side effects, or any success/failure indicators, leaving the agent with insufficient information to use the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, and the tool description adds no parameter-level detail. The 'settings' parameter is a nested object, yet the description gives no insight into what settings are expected or how they map to board configuration. The description fails to compensate for the schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Atualizar configurações de board' clearly communicates an update action on board settings, using a specific verb and resource. While it distinguishes itself from siblings like azure_list_boards or azure_get_board_config by implying a write operation, it does not explicitly differentiate from other update tools in the family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention prerequisites, typical use cases, or exclude any scenarios, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_update_wiki_pageB
Atualiza uma página existente na wiki
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path da página | |
| content | Yes | Novo conteúdo markdown | |
| wikiIdentifier | Yes | Wiki ID ou nome |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for disclosing behavioral traits. It only states the update operation without explaining side effects, whether content is fully replaced, permission requirements, or any destructive aspects. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wordiness. It conveys the core purpose while adding the key distinction 'existente'. It is appropriately sized, though it sacrifices behavioral detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with no annotations and no output schema, the description is insufficiently complete. It leaves unanswered questions about behavior, return values, and validation, which are expected for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions for all three parameters (path, content, wikiIdentifier). The tool description adds no additional parameter semantics, but the baseline is 3 given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Atualiza uma página existente na wiki' clearly conveys that this tool updates an existing wiki page, with the word 'existente' explicitly distinguishing it from the sibling create tool. It is specific in verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'Atualiza' and the resource 'página existente', but no explicit guidance is given on when to use this tool versus alternatives like create_wiki_page. There is no mention of prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_update_work_itemC
Atualiza um work item existente
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID do work item a atualizar | |
| state | No | Novo estado do work item. Deve ser um estado válido do processo do projeto (ex: Agile: New/Active/Resolved/Closed; Scrum: To Do/In Progress/Done). Verifique os estados disponíveis antes de usar. | |
| title | No | Novo título | |
| parentId | No | ID do work item pai (para criar relação Parent-Child) | |
| priority | No | ||
| assignedTo | No | Email do novo responsável | |
| reproSteps | No | Novos passos de reprodução em Markdown (formato automático) | |
| description | No | Nova descrição em Markdown (formato automático) | |
| storyPoints | No | ||
| acceptanceCriteria | No | Novos critérios de aceitação em Markdown (formato automático) | |
| relatedWorkItemIds | No | IDs dos work items relacionados (para criar relações Related) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the basic action, omitting whether updates are partial or full, how unspecified fields are handled, or side effects like relation changes. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded and easy to parse. It is not overstated, though it could offer more value without violating brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 parameters and no output schema or annotations, the description is grossly incomplete. It does not explain update semantics, return values, or prerequisites, leaving the agent without critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 82% parameter description coverage, which is high and largely carries the burden. The description itself adds no parameter information, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Atualiza um work item existente' clearly states the tool updates an existing work item, distinguishing it from create/delete/get siblings by the word 'existente'. It is specific about the action and resource, though it does not enumerate what aspects can be updated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like azure_create_work_item or azure_delete_work_item. The description only says 'updates an existing work item', providing no context for selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
30 tool updates
v1.0.0- First observed
azure_create_iteration - First observed
azure_create_pull_request - First observed
azure_create_team - First observed
azure_create_wiki - First observed
azure_create_wiki_page - First observed
azure_create_work_item - First observed
azure_delete_iteration - First observed
azure_delete_work_item - First observed
azure_get_board_config - First observed
azure_get_critical_bugs - First observed
azure_get_current_iteration - First observed
azure_get_iteration_capacity - First observed
azure_get_my_tasks - First observed
azure_get_repository - First observed
azure_get_team - First observed
azure_get_wiki - First observed
azure_get_wiki_page - First observed
azure_get_work_item - First observed
azure_get_work_item_states - First observed
azure_list_boards - First observed
azure_list_iterations - First observed
azure_list_pull_requests - First observed
azure_list_repositories - First observed
azure_list_teams - First observed
azure_list_wiki_pages - First observed
azure_list_wikis - First observed
azure_query_work_items - First observed
azure_update_board - First observed
azure_update_wiki_page - First observed
azure_update_work_item
TDQS
Most tools are clearly separated by resource (work items, boards, iterations, PRs, teams, repos, wikis), but some overlap exists within work items (e.g., azure_get_work_item vs azure_query_work_items vs azure_get_my_tasks). Helpers like get_my_tasks and get_critical_bugs are essentially specialized queries, which could cause slight confusion.
Tool names generally follow the verb_noun pattern (e.g., azure_create_work_item, azure_list_boards), but there are minor inconsistencies like azure_get_board_config vs azure_update_board (not update_board_config) and azure_get_work_item_states. Overall predictable but not perfectly uniform.
With 30 tools, the server exceeds the recommended range and feels heavy. While it covers multiple Azure DevOps domains, many subdomains have only a few operations, making the high count unnecessary and potentially overwhelming.
Work items and wikis have decent lifecycle coverage, but other areas are incomplete: pull requests only support list/create (no get/update/merge), repositories have only list/get (no create/delete), and teams lack update/delete. These gaps will force agents to work around missing functionality.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Crie épicos, features, histórias e tasks no Azure DevOps a partir de uma conversa.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Create and manage AI agents that collaborate and solve problems through natural language interacti…
Git-backed platform for skills, tools, and context for AI agents
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to query and interact with Azure DevOps data, including work items, projects, ticket statistics, and backlog information through natural language commands.5,991MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Azure DevOps to manage work items, Git repositories, branches, commits, and projects through natural language commands.1,0285MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to interact with Azure DevOps APIs for managing projects, work items, repositories, pull requests, and pipelines through natural language.19MIT

Azure DevOps MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceProvides Azure DevOps tooling for AI agents, enabling interaction with projects, work items, repositories, and pipelines through natural language.82,4471,997MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/OnoSendae/mcp-azure-devops'
If you have feedback or need assistance with the MCP directory API, please join our Discord server