@slorenzot/mcp-azure
The @slorenzot/mcp-azure server enables comprehensive interaction with Azure DevOps through the Model Context Protocol (MCP), allowing you to manage Work Items, Git repositories, Pull Requests, sprints, areas, comments, and attachments from any compatible MCP client.
Authentication & Configuration
Configure connections using
ado_configurewith your organization URL, project name, and Personal Access Token (PAT); also supports environment variables and static config files.
Work Item Management
Retrieve, create, and update Work Items (User Stories, Bugs, Tasks, etc.) with fields like title, description, area/iteration path, assignee, and custom fields
Inspect available and required fields for specific Work Item types
Querying Work Items
Query by sprint/iteration path, area path, or execute custom WIQL queries with optional full detail retrieval
Project Structure
List all available iterations/sprints and areas within the project
Git Repository Operations
List repositories, get details for a specific repository, and enumerate branches
Pull Request Lifecycle
List, retrieve, create, update, complete (merge), and abandon Pull Requests
Manage reviewers: add, approve, reject, and view votes
Handle PR threads: create general or code-specific comment threads, reply to existing ones, and update thread status
Retrieve commits and linked Work Items associated with a PR
Comments & Discussions
Add Markdown-supported comments to Work Items and retrieve discussion history
Attachments
Upload files to Azure DevOps, attach new or existing files to Work Items with optional comments, and list all attachments on a Work Item
Predefined Prompts
Includes built-in prompts for common workflows such as sprint analysis, user story creation, daily standups, sprint planning, bulk updates, project reports, and bug reporting.
Provides tools for interacting with Azure DevOps Git repositories, including listing repositories, branches, and managing pull requests with full lifecycle support.
Supports Markdown formatting in comments and descriptions for work items and pull requests, enabling rich text documentation and discussions.
Enables server-side integration with Azure DevOps through Node.js, providing programmatic access to work items, repositories, and project management features.
Facilitates installation and distribution of the Azure DevOps MCP server as an npm package, enabling easy deployment and configuration.
Provides TypeScript-based tooling for Azure DevOps integration, offering type-safe interactions with work items, repositories, and project structures.
Supports installation and dependency management for the Azure DevOps MCP server as an alternative to npm package management.
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., "@@slorenzot/mcp-azureList all active bugs in the current sprint"
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.
@slorenzot/mcp-azure
MCP (Model Context Protocol) server for Azure DevOps. It allows you to interact with Work Items, Git repositories, Pull Requests, sprints, areas, comments, and attachments from any compatible MCP client.
Installation
npm install -g @slorenzot/mcp-azureOr use directly with npx:
npx @slorenzot/mcp-azureRelated MCP server: devops-wrangler
Configuration
Environment Variables
The server is automatically configured using the following environment variables:
Variable | Alternative | Description | Required |
|
| Organization URL (e.g., | Yes |
|
| Personal Access Token | Yes |
|
| Project name | No |
Configuration in Claude Desktop
Add the following configuration to your claude_desktop_config.json file:
{
"mcpServers": {
"azure-devops": {
"command": "npx",
"args": ["-y", "@slorenzot/mcp-azure"],
"env": {
"AZURE_DEVOPS_ORG": "https://dev.azure.com/tu-organizacion",
"AZURE_DEVOPS_PAT": "tu-pat-aqui",
"AZURE_DEVOPS_PROJECT": "tu-proyecto"
}
}
}
}Configuration in OpenCode
OpenCode uses the same MCP, but configuration can be done in two ways:
Option 1: Initial configuration with environment variables
Set the environment variables in your system or in your OpenCode configuration:
export AZURE_DEVOPS_ORG="https://dev.azure.com/tu-organizacion" export AZURE_DEVOPS_PAT="tu-pat-aqui" export AZURE_DEVOPS_PROJECT="tu-proyecto"Or add the MCP server in your OpenCode configuration:
{ "mcpServers": { "azure-devops": { "command": "npx", "args": ["-y", "@slorenzot/mcp-azure"], "env": { "AZURE_DEVOPS_ORG": "https://dev.azure.com/tu-organizacion", "AZURE_DEVOPS_PAT": "tu-pat-aqui", "AZURE_DEVOPS_PROJECT": "tu-proyecto" } } } }
Option 2: Dynamic configuration with ado_configure
OpenCode allows you to configure the connection directly during the session using the ado_configure command:
{
"organization": "https://dev.azure.com/tu-organizacion",
"project": "tu-proyecto",
"pat": "tu-pat-aqui"
}This option is useful for switching between different organizations or projects without modifying the configuration file.
Note: When you use ado_configure, the connection persists during the current OpenCode session.
Obtaining a Personal Access Token (PAT)
Go to your Azure DevOps organization
Click on your avatar (top right corner)
Select Personal Access Tokens
Create a new token with the following permissions:
Work Items: Read & Write
Code: Read & Write (for repository and Pull Request operations)
Project and Team: Read (optional)
Available Tools
Authentication
Tool | Description |
| Configures the connection with organization, project, and PAT |
Work Items
Tool | Description |
| Gets a Work Item by its ID |
| Creates a new Work Item (User Story, Bug, Task, etc.) |
| Updates an existing Work Item |
| Gets the available/required fields for a type |
Queries
Tool | Description |
| Queries Work Items for a specific sprint |
| Queries Work Items for a specific area |
| Executes a custom WIQL query |
Project Structure
Tool | Description |
| Lists the project's iterations/sprints |
| Lists the project's areas |
Git Repositories
Tool | Description |
| Lists all Git repositories in the project |
| Gets details of a specific repository by name or ID |
| Lists the branches of a repository |
Pull Requests
Tool | Description |
| Lists Pull Requests with optional filters (status, branches, creator, reviewer) |
| Gets full details of a Pull Request |
| Creates a new Pull Request |
| Updates Pull Request properties (title, description, draft) |
| Completes (merges) a Pull Request with a configurable strategy |
| Abandons a Pull Request |
Pull Request Reviews
Tool | Description |
| Approves a Pull Request (vote: 10) |
| Rejects a Pull Request (vote: -10) |
| Gets all reviewers and their votes for a Pull Request |
| Adds a reviewer to a Pull Request |
Pull Request Comments
Tool | Description |
| Gets all comment threads for a Pull Request |
| Creates a new comment thread (general or code-specific) |
| Replies to an existing comment thread |
Pull Request Info
Tool | Description |
| Gets all commits for a Pull Request |
| Gets Work Items linked to a Pull Request |
| Updates the status of a comment thread (Fixed, WontFix, etc.) |
Comments and Discussions
Tool | Description |
| Adds a comment to a Work Item (supports Markdown) |
| Gets comments for a Work Item |
Attachments
Tool | Description |
| Uploads a file and returns the attachment URL |
| Adds an attachment to a Work Item |
| Lists attachments for a Work Item |
Usage Examples
Create a User Story
{
"title": "Implementar login con OAuth",
"type": "User Story",
"description": "Como usuario quiero poder iniciar sesión con mi cuenta de Google",
"areaPath": "MiProyecto\\Backend",
"iterationPath": "MiProyecto\\Sprint 5",
"fields": {
"Custom.OKR": "Seguridad",
"Custom.Prioridad": "Alta"
}
}Custom WIQL Query
{
"wiql": "SELECT [System.Id], [System.Title] FROM WorkItems WHERE [System.State] = 'Active' AND [System.AssignedTo] = @Me ORDER BY [System.CreatedDate] DESC",
"getDetails": true
}Add Comment with Markdown
{
"id": 12345,
"comment": "## Análisis completado\n\n- Revisado el código\n- Identificados 3 issues\n\n**Próximo paso:** Corregir validaciones"
}Upload and Attach File
{
"workItemId": 12345,
"filePath": "/ruta/al/archivo.pdf",
"comment": "Documento de especificaciones",
"name": "Especificaciones Funcionales v2.0"
}Link Existing Attachment
{
"workItemId": 12345,
"attachmentUrl": "https://dev.azure.com/org/proj/_apis/wit/attachments/abc123",
"comment": "Diseño de arquitectura",
"name": "Arquitectura del Sistema"
}List Repositories
{
"includeHidden": false,
"top": 50
}List Active Pull Requests
{
"status": "Active",
"top": 20
}Create a Pull Request
{
"repositoryId": "mi-repo",
"sourceRefName": "refs/heads/feature-login",
"targetRefName": "refs/heads/main",
"title": "Implementar login con OAuth",
"description": "Esta PR agrega soporte para login con Google OAuth",
"reviewerIds": ["12345678-1234-1234-1234-1234567890ab"],
"isDraft": false
}Approve a Pull Request
{
"pullRequestId": 12345,
"repositoryId": "mi-repo"
}Complete (Merge) a Pull Request
{
"pullRequestId": 12345,
"repositoryId": "mi-repo",
"mergeStrategy": "Squash",
"deleteSourceBranch": true,
"mergeCommitMessage": "Merge de feature-login"
}Create Code Comment
{
"pullRequestId": 12345,
"repositoryId": "mi-repo",
"content": "Por favor extraer esto en una función separada",
"filePath": "/src/components/Login.tsx",
"startLine": 45,
"endLine": 52
}Available Prompts
The server includes pre-defined prompts to facilitate common tasks:
Prompt | Description |
| Guide to connect to Azure DevOps |
| Analyzes the status of a sprint |
| Creates a structured User Story |
| Generates a daily standup report |
| Helps plan a sprint |
| Updates multiple Work Items |
| Generates a project report |
| Creates a structured Bug report |
Resources
Resource | URI | Description |
Connection status |
| Information about the current connection status |
Development
Requirements
Node.js 18+
npm or yarn
Local Installation
git clone https://github.com/slorenzot/mcp-azure.git
cd mcp-azure
npm install
npm run buildAvailable Scripts
npm run build # Compila TypeScript
npm run start # Inicia el servidor
npm run dev # Modo desarrollo con watchLicense
MIT
Author
Soulberto Lorenzo - @slorenzot
Version
2.4.1 - 34 tools available for Azure DevOps (Work Items, Git Repositories, Pull Requests, etc.)
Available Tools
36 toolsado_abandon_pull_requestC
Abandona un Pull Request (cambia estado a Abandoned).
| Name | Required | Description | Default |
|---|---|---|---|
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only mentions the state change, omitting details on side effects, prerequisites, permissions, or reversibility.
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 concise with a single sentence. It is front-loaded and efficient, but lacks structure such as listing parameters or providing usage context.
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 covers the core action but misses important context: the optional repositoryId parameter's role, required permissions, and any irreversible effects. For a simple mutation tool, it is incomplete.
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 provides descriptions for both parameters (repository name/ID and PR ID). The tool description adds no additional semantics beyond what is already in the schema, so 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 (abandoning a pull request) and the resulting state change to 'Abandoned'. However, it does not differentiate from sibling tools like 'ado_reject_pull_request', which might also change state.
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 'ado_reject_pull_request' or 'ado_complete_pull_request'. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_add_attachmentB
Agrega un adjunto a un Work Item existente. Maneja automáticamente concurrencia cuando múltiples adjuntos se agregan al mismo WI.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Nombre del archivo (si no se especifica, usa el nombre del archivo original) | |
| comment | No | Comentario para el adjunto | |
| filePath | No | Ruta del archivo a subir (opcional si se usa attachmentUrl) | |
| workItemId | Yes | ID del Work Item | |
| attachmentUrl | No | URL de un adjunto ya subido (opcional si se usa filePath) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses automatic concurrency handling, which is beneficial. However, it fails to mention other behaviors like permission requirements, error handling, or what happens if a file already exists.
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?
Two concise sentences with no unnecessary words. Each sentence adds value: first states purpose, second highlights concurrency handling.
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?
No output schema and no annotations. The description is too minimal: missing return value, error conditions, prerequisites, and alternative parameter usage (filePath vs attachmentUrl). Concurrency handling is mentioned but not enough 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 coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema; the parameter descriptions in the schema are already present.
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?
Description clearly states the verb 'Agrega' (adds) and the resource 'adjunto a un Work Item existente'. It distinguishes from sibling tools like 'upload_attachment' and 'get_attachments' by focusing on attaching to a work item. The mention of automatic concurrency handling adds specificity.
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 explicit guidance on when to use this tool versus alternatives. The concurrency handling note implies it's useful for concurrent attachments, but no when-not scenarios or sibling comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_add_commentB
Agrega un comentario/entrada de discusión a un Work Item. Soporta formato Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID del Work Item | |
| comment | Yes | Texto del comentario (soporta Markdown) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states it adds a comment with Markdown support. Lacks details on mutation behavior, authentication needs, rate limits, or side effects.
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?
Single sentence with no waste. Front-loaded and efficient.
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 2-parameter tool without output schema, the description lacks behavioral context but covers the basic action. Missing return value or error handling 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?
Schema description coverage is 100% with clear parameter descriptions. The description adds the Markdown feature but no additional syntax or examples, so baseline 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 ('Agrega'), resource ('comentario/entrada de discusión a un Work Item'), and a feature (Markdown support). It distinguishes from sibling tools like ado_add_attachment and ado_get_comments.
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 vs alternatives. Does not mention prerequisites (e.g., Work Item existence) or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_add_pull_request_reviewerB
Agrega un revisor a un Pull Request.
| Name | Required | Description | Default |
|---|---|---|---|
| vote | No | Valor inicial del voto (default: 0 = sin voto) | |
| reviewerId | Yes | ID de identidad del revisor a agregar | |
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral details such as whether adding a reviewer triggers notifications, overwrites existing assignments, or if the vote parameter affects state. The mutation nature is implied but not elaborated.
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?
Single, front-loaded sentence with no extraneous information. Efficient and to the point.
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 addition tool with no output schema, the description covers the core action but lacks context on side effects, permissions, or how it integrates with other PR tools among the 30+ siblings.
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 all parameters described. The description adds no additional meaning beyond the schema, so 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 'Agrega un revisor a un Pull Request' clearly states the action (adds a reviewer) and the resource (Pull Request). It is specific and distinguishes from sibling tools like 'ado_create_pull_request' or 'ado_approve_pull_request'.
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 (e.g., 'ado_approve_pull_request'). No when-not-to-use or prerequisite information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_approve_pull_requestB
Aprueba un Pull Request (voto: 10).
| Name | Required | Description | Default |
|---|---|---|---|
| reviewerId | No | ID de identidad del aprobador (default: usuario autenticado si está disponible) | |
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
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 the vote value (10) but does not mention side effects, permission requirements, or whether the action is reversible. This is insufficient 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 concise (one phrase) and front-loaded with the action. No wasted words, though it could be slightly more informative without losing 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?
The tool has low complexity (3 params, 1 required, no output schema), but the description lacks context about side effects, prerequisites, or return values. It is minimally complete but leaves important 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?
Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional meaning beyond the schema, which is adequate given the high 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 clearly states 'Aprueba un Pull Request' (approves a pull request) and includes the specific vote value (voto: 10), which distinguishes it from sibling tools like ado_reject_pull_request or ado_complete_pull_request.
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, nor any context about prerequisites or exclusions. It only states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_complete_pull_requestC
Completa (merge) un Pull Request.
| Name | Required | Description | Default |
|---|---|---|---|
| repositoryId | No | Nombre o ID del repositorio | |
| mergeStrategy | No | Estrategia de merge (default: NoFastForward) | |
| pullRequestId | Yes | ID del Pull Request | |
| deleteSourceBranch | No | Eliminar rama de origen después del merge | |
| mergeCommitMessage | No | Mensaje personalizado del commit de merge | |
| transitionWorkItems | No | Transicionar work items vinculados |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description is minimal. It does not disclose behavioral traits such as side effects (e.g., merging branches, deleting source branch) or potential conflicts.
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 concise at one sentence. While it is brief, it lacks useful context, but it earns points for not being verbose.
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 complexity of 6 parameters and no output schema, the description is incomplete. It fails to explain return values, prerequisites, or typical 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?
Input schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema, but it does not detract either.
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 action 'Completa (merge) un Pull Request', which is a specific verb and resource. However, it does not differentiate from sibling tools like 'ado_approve_pull_request' or 'ado_create_pull_request', which could cause confusion.
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. With many sibling tools for pull request operations, the agent lacks context to choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_configureB
Configura la conexión a Azure DevOps con token de acceso personal (PAT).
| Name | Required | Description | Default |
|---|---|---|---|
| pat | Yes | Token de acceso personal (PAT) de Azure DevOps | |
| project | Yes | Nombre del proyecto | |
| organization | Yes | URL de la organización (ej: https://dev.azure.com/mi-org) |
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 behavioral disclosure. It states the action (configure connection) but fails to describe side effects (e.g., whether it tests the token, overwrites existing config, or sets a persistent session). The description is too minimal for a setup 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. It front-loads the action and resource. However, it could be slightly expanded to include a note about prerequisites or side effects without losing 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 tool's role as a setup step, the description lacks context on how it interacts with other tools (e.g., must be called first, no return value, no validation warning). No output schema is provided, and the description does not explain behavior after configuration.
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 covers all three parameters with descriptions (100% coverage), so the baseline is 3. The description does not add any semantic information beyond the schema; it only mentions 'PAT' but not the other two required parameters.
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 purpose: to configure connection to Azure DevOps using a PAT. It uses a specific verb ('Configura') and resource ('conexión a Azure DevOps'), and it uniquely identifies itself among sibling tools as the setup/configuration tool.
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 explicit when-to-use or when-not-to-use guidance is provided. However, it is the only configuration tool among siblings, so the usage context is implied (must be called before other ado_ tools). No alternatives are suggested.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_create_pull_requestC
Crea un nuevo Pull Request.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Título del Pull Request | |
| isDraft | No | Crear como borrador | |
| description | No | Descripción del Pull Request | |
| reviewerIds | No | Lista de IDs de identidad de los revisores | |
| repositoryId | Yes | Nombre o ID del repositorio | |
| sourceRefName | Yes | Rama de origen (ej: 'refs/heads/feature-1') | |
| targetRefName | Yes | Rama de destino (ej: 'refs/heads/main') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states 'Creates', which is obvious from the name. It does not mention side effects (e.g., notifications triggered), required permissions, or what happens on failure (e.g., conflict handling). The description adds minimal behavioral insight.
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 very short (4 words), which is concise but lacks structure and detail. It is front-loaded but does not earn its place fully because it only rephrases the tool name. A slightly more informative description would improve structure without sacrificing 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?
Given the tool has 7 parameters and no output schema, the description is insufficient. Missing information includes the return value (e.g., pull request ID), required relationships between parameters, and an example. The description does not cover the operational context needed to invoke the tool 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 input schema has 100% coverage with descriptions for all 7 parameters. The description 'Crea un nuevo Pull Request' does not add any new meaning beyond the schema. Baseline score of 3 is appropriate as the schema already sufficiently documents parameters.
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 'Crea un nuevo Pull Request' clearly states the tool's action and resource. It distinguishes from siblings like ado_abandon_pull_request or ado_list_pull_requests. However, it could be slightly more specific to differentiate from other creation tools like ado_create_pull_request_thread.
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. There is no mention of prerequisites, such as needing valid source and target branches or repository existence. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_create_pull_request_threadB
Crea un nuevo hilo de comentarios (comentario general o comentario de código).
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Contenido del comentario | |
| endLine | No | Línea de fin para comentario de código (1-indexed) | |
| filePath | No | Ruta del archivo para comentario de código (opcional para comentario general) | |
| startLine | No | Línea de inicio para comentario de código (1-indexed) | |
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It only states that the tool creates a thread, but omits details like authentication requirements, side effects on pull requests, or whether the operation is reversible. This is insufficient for an agent to understand the tool's impact.
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 key information. Every word is necessary, and there is no redundancy.
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 schema provides good parameter documentation, the description lacks essential context such as return value structure, error conditions, or how the thread relates to pull request workflows. This is a creation tool with multiple parameters, and a more comprehensive description would enhance usability.
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%, so the baseline is 3. The description adds no meaning beyond the schema, merely repeating that it can be a general or code comment. No additional context is provided for the parameters.
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 purpose: creating a new comment thread, and distinguishes between general and code comments. It uses a specific verb ('Crea') and resource ('hilo de comentarios'), which effectively differentiates it from sibling tools like ado_add_comment or ado_reply_to_pull_request_thread.
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 explicit guidance is provided on when to use this tool versus alternatives such as ado_add_comment or ado_reply_to_pull_request_thread. The description hints at two use cases (general vs. code comments) but does not explain prerequisites or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_create_work_itemA
Crea un nuevo Work Item en Azure DevOps. Usa ado_get_work_item_type_fields para ver campos requeridos.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Tipo de Work Item (User Story, Bug, Task, etc.) | |
| title | Yes | Título del Work Item | |
| fields | No | Campos adicionales como objeto {nombreCampo: valor}. Ej: {'Custom.OKR': 'valor'} | |
| areaPath | No | Ruta del área | |
| assignedTo | No | Usuario asignado | |
| description | No | Descripción del Work Item | |
| iterationPath | No | Ruta del sprint/iteración |
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 creation action, with no mention of side effects, authentication, rate limits, or what happens on failure. The reference to required fields is helpful but insufficient.
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 concise with two sentences, no redundant information, and the key action is front-loaded.
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 lacks details about return value, error handling, or the structure of the 'fields' parameter. With 7 parameters and nested objects, more context would be beneficial, though the reference to another tool partially compensates.
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%, so parameters are already well-documented. The description adds little beyond pointing to another tool for required fields, but does not clarify parameter usage or formats beyond the schema.
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 ('creates a new Work Item') and the platform (Azure DevOps), distinguishing it from sibling tools like update or delete. It also references a related tool for required fields, adding specificity.
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 advises using ado_get_work_item_type_fields to see required fields, which guides proper usage. However, it does not explicitly state when not to use this tool or mention alternatives for other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_delete_attachmentB
Elimina un adjunto de un Work Item removiendo su relación. Maneja automáticamente concurrencia cuando múltiples cambios afectan el mismo WI.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | Motivo o contexto de la eliminación | |
| workItemId | Yes | ID del Work Item | |
| attachmentUrl | No | URL exacta del adjunto a eliminar | |
| attachmentName | No | Nombre del adjunto a eliminar si no se conoce la URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only discloses concurrency handling automation. It does not mention destructive nature, permission requirements, idempotency, or what happens if the attachment does not exist.
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?
Two concise sentences front-loading the action and adding a key behavioral detail (concurrency handling). No extraneous 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?
The description covers the core action and concurrency but lacks details about return values, side effects, error states, or post-conditions. For a deletion tool with no output schema, more completeness would be beneficial.
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%, so all parameters are described structurally. The description adds no additional meaning beyond the schema, which already details each parameter. Baseline 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 deletes an attachment from a work item by removing its relationship, using specific verb 'Elimina' and resource 'adjunto de un Work Item'. It distinguishes from siblings like ado_add_attachment or ado_upload_attachment.
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 ado_add_attachment or ado_get_attachments. The description does not mention prerequisites, when not to use it, or suggest other tools for different contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_delete_work_itemA
Elimina un Work Item en Azure DevOps. Por defecto realiza borrado lógico; usa destroy=true solo para eliminación permanente.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID del Work Item a eliminar | |
| confirm | Yes | Confirmación explícita. Debe ser true para eliminar | |
| destroy | No | Si es true, destruye permanentemente el Work Item | |
| expectedType | No | Tipo esperado del Work Item, ej: User Story |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the default logical deletion behavior and the option for permanent deletion via destroy=true, adding behavioral context beyond the schema. However, it does not mention side effects, recovery options, or required permissions.
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?
Two concise sentences with no wasted words. Each sentence provides essential information: the action and the key behavioral nuance (logical vs permanent deletion).
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 deletion tool with no output schema, the description covers the main behavior and parameter distinction. Missing info on required confirm parameter (though schema states it) and error conditions, but overall sufficiently complete for the core operation.
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 value by explaining the destroy parameter's purpose and the default deletion mode, clarifying behavior beyond the schema's property descriptions.
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 'Elimina un Work Item' and the resource (Azure DevOps Work Item). It distinguishes between logical and permanent deletion, providing specificity beyond mere deletion.
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 explains when to use the destroy parameter for permanent deletion versus default logical deletion, but does not provide explicit guidance on when to use this tool versus sibling tools (e.g., other delete operations) or conditions to avoid using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_get_attachmentsB
Obtiene la lista de adjuntos de un Work Item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID del Work Item |
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 indicates a read operation but does not disclose details about the response format, permissions, or potential side effects. Minimal transparency.
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 sentence that is concise and to the point. It could be slightly expanded to include more context, but it is not verbose.
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 (one parameter, no output schema), the description is adequate but lacks hints about the response content. More detail on what the returned list contains would improve completeness.
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%, and the description adds no additional meaning beyond what the schema provides for the id parameter. 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 'Obtiene la lista de adjuntos de un Work Item' clearly states the tool's action (gets) and resource (list of attachments for a Work Item). It distinguishes from sibling tools like ado_add_attachment and ado_delete_attachment.
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 does not provide any guidance on when to use this tool vs alternatives, such as when attachments are needed for a work item, nor does it mention prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_get_commentsB
Obtiene los comentarios/historial de discusión de un Work Item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID del Work Item | |
| top | No | Número máximo de comentarios a obtener (por defecto 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the basic action but omits behavioral traits like pagination (though top parameter exists), ordering, or response structure. Minimal transparency beyond the core function.
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 unnecessary words. It is front-loaded and efficient, though it could benefit from more content.
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 list tool with two parameters and no output schema or annotations, the description is minimally adequate but lacks details on return format, error handling, or usage notes. It is not fully complete for an agent to use without 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?
Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what the schema already provides for 'id' and 'top'. No additional parameter details are given.
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 'Obtiene' (gets) and identifies the resource as 'comentarios/historial de discusión de un Work Item', clearly distinguishing it from sibling tools like ado_add_comment and ado_get_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?
No guidance is provided on when to use this tool versus alternatives (e.g., ado_get_work_item for overall details) or exclusions. The description only states what the tool does, leaving usage context implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_get_pull_requestC
Obtiene detalles completos de un Pull Request.
| Name | Required | Description | Default |
|---|---|---|---|
| repositoryId | No | Nombre o ID del repositorio (opcional si se usa acceso a todo el proyecto) | |
| pullRequestId | Yes | ID del Pull Request | |
| includeCommits | No | Incluir commits del PR | |
| includeWorkItems | No | Incluir work items vinculados |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks details on behavior such as read-only nature, permission requirements, or response structure.
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?
Single sentence, no unnecessary words, perfectly 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?
Without output schema, description does not explain what 'complete details' includes or how optional parameters affect the response.
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?
Input schema covers all 4 parameters with descriptions; description adds no additional meaning.
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?
Description clearly states it retrieves complete details of a Pull Request, but does not distinguish from sibling tools that retrieve specific parts (e.g., commits, reviewers).
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 like ado_get_pull_request_commits or ado_get_pull_request_reviewers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_get_pull_request_commitsC
Obtiene todos los commits de un Pull Request.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Número máximo a devolver (default: 100) | |
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It does not disclose behavioral traits such as pagination (the 'top' parameter), authentication needs, rate limits, or that results may be truncated. The description only states the basic function without additional context.
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 sentence with no unnecessary words. It is front-loaded and efficient. Every word serves a purpose, and there is no redundancy.
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 only three parameters, the description should provide more context, such as return value format, pagination behavior, or required permissions. It is minimal and does not cover enough for an agent to fully understand the tool's capabilities and constraints.
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% description coverage, so the baseline is 3. However, the description does not add value beyond the schema; it merely repeats the function. Moreover, it misleadingly states 'all commits' when the 'top' parameter implies a limit, which could cause misinterpretation.
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 ('gets all commits') and the resource ('Pull Request'). However, it claims 'all' commits while the schema includes a 'top' parameter for limiting results, which is a slight inaccuracy. It does not differentiate from sibling tools like 'ado_get_pull_request' or 'ado_get_pull_request_reviewers', but the purpose is specific enough.
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. There is no context about prerequisites, filtering, or when to prefer other tools like 'ado_get_pull_request' for broader information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_get_pull_request_reviewersA
Obtiene todos los revisores y sus votos de un Pull Request.
| Name | Required | Description | Default |
|---|---|---|---|
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool gets reviewers and votes, implying a read operation. However, it lacks details on permissions, error handling, or response format.
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 wasted words. It is front-loaded and to the point.
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 this simple read tool with few parameters and no output schema, the description adequately conveys the return information (all reviewers and their votes). It could mention read-only nature, but it's not critical.
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%, so the baseline is 3. The description does not add any extra meaning beyond the parameter names and types.
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 (obtiene) and the resource (revisores y sus votos de un Pull Request). It is specific and distinguishes from sibling tools like ado_add_pull_request_reviewer or ado_get_pull_request.
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 explicit guidance on when to use this tool or alternatives is provided. The purpose is implied (when you need PR reviewers and votes), but no usage context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_get_pull_request_threadsB
Obtiene todos los hilos de comentarios de un Pull Request.
| Name | Required | Description | Default |
|---|---|---|---|
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It implies a read operation but doesn't disclose any behavioral traits like pagination, required permissions, or output format. Adequate for a simple getter, but 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?
Single sentence with no extraneous information. Front-loaded purpose. Efficient.
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 retrieval tool with no output schema, the description is sufficient to understand its core function. However, it could mention what type of data is returned (e.g., thread metadata without comments).
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?
Input schema has 100% coverage, so parameters are already documented. Description adds no additional meaning beyond what the schema provides, meeting the baseline.
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?
Description clearly states it retrieves all comment threads of a pull request, using a specific verb and resource. However, it does not differentiate from sibling tools like ado_get_comments or ado_reply_to_pull_request_thread, which could have overlapping purposes.
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 (e.g., when to get threads vs comments). No context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_get_pull_request_work_itemsB
Obtiene los work items vinculados a un Pull Request.
| Name | Required | Description | Default |
|---|---|---|---|
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations and minimal description; does not disclose behavioral traits such as read-only nature, required permissions, or potential side effects.
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?
Single sentence is efficient and front-loaded, but could include slightly more context without becoming verbose.
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 only 2 parameters, no output schema, and no annotations, the description is adequate for a simple tool but lacks information on return format or 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?
Schema coverage is 100%, so description adds minimal value beyond parameter names and types; 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?
Description uses specific verb 'obtiene' (gets) and resource 'work items vinculados a un Pull Request', clearly distinguishing it from siblings like ado_get_pull_request or ado_get_pull_request_commits.
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; no prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_get_repositoryB
Obtiene detalles de un repositorio específico por nombre o ID.
| Name | Required | Description | Default |
|---|---|---|---|
| repositoryId | Yes | Nombre o ID del repositorio |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as read-only nature, required permissions, or rate limits. Minimal transparency 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?
Single sentence that is concise and front-loaded with the key action. No unnecessary words.
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 one parameter and no output schema, the description is adequate. It specifies the input and purpose, but could mention the nature of returned 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?
Schema description coverage is 100% for the single parameter 'repositoryId'. The description adds no additional meaning beyond the schema's own description. Baseline 3 assigned.
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?
Description clearly states the verb ('Obtiene'), resource ('detalles de un repositorio específico'), and method ('por nombre o ID'). It distinguishes from sibling 'ado_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?
No guidance on when to use this tool versus alternatives like 'ado_list_repositories'. The description only states what it does, not the context of use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_get_work_itemB
Obtiene un Work Item de Azure DevOps por su ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | El ID del Work Item | |
| full | No | Si es true, devuelve todos los campos |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only says 'gets a work item by ID' but does not explain what data is returned, the effect of the 'full' parameter, or any side effects. Minimal transparency.
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?
Single, focused sentence in Spanish. No unnecessary words, efficient and front-loaded.
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, the description should at least hint at the return value (e.g., 'returns the work item data'). It does not. For a simple get tool, it is incomplete.
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 descriptions cover both parameters fully. The description adds no further meaning beyond the schema. 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 action (get), the resource (Work Item), and the method (by ID). It distinguishes this tool from siblings like create, update, delete, and query tools.
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 explicit guidance on when to use this tool versus alternatives like ado_query_wiql for querying or other retrieval methods. The description does not mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_get_work_item_type_fieldsB
Obtiene los campos disponibles y requeridos para un tipo de Work Item
| Name | Required | Description | Default |
|---|---|---|---|
| workItemType | Yes | Tipo de Work Item (User Story, Bug, Task, etc.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only states the purpose and does not disclose whether the operation is read-only (implied by 'get'), any authentication requirements, rate limits, or error conditions (e.g., if the work item type does not exist). The agent lacks essential behavioral context.
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 sentence, which is concise and to the point. It is not structured with bullet points or sections, but it is sufficiently brief. However, the language (Spanish) may be inconsistent with the English tool name, potentially reducing clarity for an agent expecting English descriptions.
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, yet the description does not explain what the returned fields look like (e.g., field names, types, required flags). For a tool that returns structured data, this omission leaves the agent guessing. Given the sibling tools, additional context about the relationship to work item creation or updates would also be helpful.
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% as the single parameter 'workItemType' has a description in the schema. The tool description does not add any additional meaning beyond that schema description. It uses the baseline score of 3 because the schema already documents the parameter adequately.
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 available and required fields for a specific Work Item type. It uses a specific verb ('obtiene' meaning 'gets') and identifies the resource. This distinguishes it from sibling tools like ado_get_work_item (which retrieves a single work item) or ado_create_work_item (which creates one).
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 to call it (e.g., before creating a work item to know required fields), or contrast with similar tools like ado_get_work_item or ado_query_wiql. An agent is left to 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.
ado_list_areasA
Lista las áreas disponibles en el proyecto
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavior, but it only states the basic purpose. It omits details like whether this is a read-only operation, required permissions, or any side effects.
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 concise for a tool with no parameters.
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 (no parameters, no output schema), the description is minimally adequate but could elaborate on what is returned (e.g., the structure of area objects) to improve agent's 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?
There are no parameters, so schema coverage is 100%. The description adds no parameter information, but none is needed.
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 las áreas disponibles en el proyecto' clearly states the tool's action (list) and resource (areas), and it distinguishes from siblings like ado_list_branches or ado_list_iterations by specifying a different entity.
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 ado_query_area or ado_list_iterations. The description lacks context on usage scenarios or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_list_branchesB
Lista las ramas (branches) de un repositorio.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filtrar por substring del nombre | |
| repositoryId | Yes | Nombre o ID del repositorio | |
| includeStatuses | No | Incluir estados de las ramas |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'list', offering no details about pagination, sorting, result format, or side effects beyond what the name implies.
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?
Single sentence, directly stating purpose with no extraneous words; concise and front-loaded.
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 minimal and does not explain what the return values look like, how filtering works, or error cases, despite having no output schema to rely on.
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 all parameters described, so baseline is 3. The description adds no additional meaning beyond the schema.
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 resource (branches of a repository), distinguishing it from sibling tools that list repositories, work items, or pull requests.
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 needing to list branches, but provides no explicit guidance on when to use this tool versus alternatives like ado_get_repository or ado_list_repositories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_list_iterationsA
Lista las iteraciones/sprints disponibles en el proyecto
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states what it does, not that it is a read-only operation, nor any side effects or restrictions.
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?
Single, clear sentence with no wasted words. Front-loaded purpose directly.
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 list tool with no params, the description is mostly complete. It could mention output format or pagination, but the context of iterations/sprints in the project is clear.
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?
There are no parameters (schema empty, 0 params). The description adds context by mentioning 'en el proyecto' (in the project), implying use of current project context, which adds meaning beyond the empty schema.
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 (iterations/sprints). It distinguishes from siblings like 'ado_query_sprint' which implies querying a specific sprint, so this tool is for listing all available ones.
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 like 'ado_query_sprint' or others. It does not specify context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_list_pull_requestsA
Lista Pull Requests con filtros opcionales. Busca por repositorio o en todo el proyecto.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Número máximo a devolver (default: 100) | |
| status | No | Filtrar por estado | |
| creatorId | No | Filtrar por ID del creador | |
| reviewerId | No | Filtrar por ID del revisor | |
| repositoryId | No | Nombre o ID del repositorio (omitir para búsqueda en todo el proyecto) | |
| sourceRefName | No | Filtrar por rama de origen (ej: 'refs/heads/feature-1') | |
| targetRefName | No | Filtrar por rama de destino |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation (listing) with no destructive hints. However, with no annotations provided, the description carries full burden but does not elaborate on rate limits, auth requirements, or pagination behavior beyond the schema.
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?
Two short sentences front-load the action and scope. Every sentence adds value with no redundancy or fluff.
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 covers the core functionality but lacks details about the return format (list of PR objects) and does not mention that 'top' controls pagination. For a 7-parameter list tool, this is adequate but not complete.
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 each parameter described. The description adds minimal extra meaning (e.g., 'search by repository or project'), but the baseline of 3 is appropriate since the schema already documents the parameters.
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) and resource 'Pull Requests', and distinguishes by mentioning optional filters and scope (by repository or project-wide). This differentiates it from siblings like ado_get_pull_request (single PR) and ado_create_pull_request.
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 listing with optional filters and scope selection, but does not explicitly state when to use this tool versus alternatives like ado_get_pull_request. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_list_repositoriesA
Lista todos los repositorios Git del proyecto.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Número máximo a devolver (default: 100) | |
| includeHidden | No | Incluir repositorios ocultos |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral clues. It states the tool lists all repositories, but omits details about pagination (top parameter), inclusion of hidden repos, or any side effects. Minimal but acceptable.
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?
Single sentence, front-loaded with verb and resource. No redundant information, perfectly 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?
Given no output schema and simple functionality, the description could mention the return format (list of repository objects) or authentication needs. It is minimally complete but not fully informative.
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 both parameters. The description adds no extra meaning beyond listing, achieving baseline adequacy.
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 of the project, using a specific verb and resource. It distinguishes from sibling 'ado_get_repository' which retrieves 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?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any preconditions or context for use. For example, it doesn't indicate that 'ado_get_repository' is for single repository retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_query_areaC
Consulta User Stories de un área específica en Azure DevOps
| Name | Required | Description | Default |
|---|---|---|---|
| areaPath | Yes | Ruta del área (ej: 'Proyecto\Equipo') | |
| workItemType | No | Tipo de Work Item (User Story, Bug, Task, etc.) |
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 does not disclose any behavioral traits such as return format, pagination, authentication needs, or error 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, front-loaded sentence with no redundant information. It is concise but in Spanish, which is fine for a Spanish-language tool.
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 query tool with no output schema, the description is adequate but lacks details on output format, error conditions, or example usage. It is minimally complete.
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 parameters described in Spanish. The tool description adds no extra meaning beyond the schema, so 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 'Consulta User Stories de un área específica' (Query User Stories of a specific area), specifying verb, resource, and scope. However, the 'workItemType' parameter shows it can query other work item types, making the description slightly narrower than actual capability.
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 siblings like ado_query_sprint or ado_query_wiql. The description does not include context, prerequisites, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_query_sprintA
Consulta User Stories de un sprint específico en Azure DevOps
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Filtrar por estado (Active, New, Closed, etc.) | |
| iterationPath | Yes | Ruta del sprint (ej: 'Proyecto\Sprint1') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It states the tool queries user stories, implying a read operation, but does not explicitly confirm read-only behavior, side effects, or permissions needed. The behavioral revelation 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 sentence that efficiently captures the core purpose. It is front-loaded with the action and resource. However, it could be more structured or include additional context without sacrificing 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 no output schema and no annotations, the description covers the basic purpose but lacks details on return format, pagination, or error handling. For a simple query tool, it is adequate but not complete compared to high-quality examples.
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 both parameters described in Spanish. The tool description adds no new meaning beyond the schema; it merely restates the sprint context. Baseline 3 is appropriate as the schema already documents the parameters adequately.
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 it queries user stories for a specific sprint using a direct verb (Consulta) and resource (User Stories, sprint). It differentiates from sibling tools like ado_query_area and ado_query_wiql by focusing on sprint and user stories.
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 querying user stories by sprint but provides no explicit guidance on when to use this tool versus alternatives like ado_query_wiql for complex queries or ado_query_area for area-based filtering. No when-not or alternative names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_query_wiqlC
Ejecuta una consulta WIQL personalizada en Azure DevOps
| Name | Required | Description | Default |
|---|---|---|---|
| wiql | Yes | Query WIQL completa | |
| getDetails | No | Si es true, obtiene los detalles completos de cada Work Item |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is minimal and does not disclose behavioral traits such as read-only nature, return format, or side effects. Since no annotations are provided, the description should cover these aspects, but it fails to do so.
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 without wasted words. It is front-loaded and clear, though slightly brief.
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?
Lacking an output schema, the description should specify return values, but it only says 'Ejecuta'. It also omits prerequisites, side effects, or read-only assurance. Completeness is inadequate.
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 both parameters described. The description adds no extra meaning beyond the schema, which already explains wiql and getDetails. 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 verb 'Ejecuta' and the resource 'consulta WIQL personalizada en Azure DevOps', indicating it runs custom WIQL queries. It differentiates from sibling query tools like ado_query_area or ado_query_sprint, which are more specific.
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 ado_query_area or ado_query_sprint. The description does not mention scenarios ideal for custom WIQL queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_reject_pull_requestC
Rechaza un Pull Request (voto: -10).
| Name | Required | Description | Default |
|---|---|---|---|
| reviewerId | No | ID de identidad del revisor (default: usuario autenticado si está disponible) | |
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It only states 'reject' and 'vote -10', but fails to mention consequences like whether the PR is closed, permission requirements, or reversibility.
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 sentence that conveys the core action efficiently. It is front-loaded and free of unnecessary words, though it could be slightly more informative without losing 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?
For a mutation tool with three parameters and no output schema, the description is insufficient. It omits details on return values, error conditions, and prerequisites, which are critical 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 description coverage is 100%, so the schema already documents all parameters. The description adds no extra semantic information beyond what the schema provides, meeting the baseline for high 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 clearly states the tool rejects a pull request with a specific vote (-10), which is a precise action. However, it does not differentiate from sibling tools like ado_abandon_pull_request or ado_approve_pull_request, which have similar scope.
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 context on scenarios for rejection, abandonment, or approval, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_reply_to_pull_request_threadC
Responde a un hilo de comentarios existente.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Contenido de la respuesta | |
| threadId | Yes | ID del hilo a responder | |
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as required permissions, side effects, or whether threads must be active. The description carries full burden but 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?
A single sentence that is concise and to the point. No unnecessary information. Excellent structure for a simple tool.
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 lack of output schema and annotations, the description should provide more context about expected outcomes or prerequisites. It does not explain what happens after a reply or any constraints.
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 each parameter having a basic description. The tool description adds no additional meaning beyond what the schema already provides, so baseline 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 action 'reply' and the resource 'existing comment thread'. It distinguishes itself from siblings like create or update thread, though not explicitly.
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 like creating a new thread or updating thread status. The description lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_update_pull_requestC
Actualiza propiedades de un Pull Request (título, descripción, estado de borrador).
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Nuevo título | |
| isDraft | No | Establecer estado de borrador | |
| description | No | Nueva descripción | |
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
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 'updates properties' but doesn't mention permissions, idempotency, side effects (e.g., does updating description notify reviewers?), or return value. This is insufficient 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 sentence that efficiently conveys the core functionality and lists the key properties. There is no redundant information. However, it could be slightly more structured (e.g., separate sentences for purpose and parameters).
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, the description should explain what the tool returns (e.g., updated PR object). It also doesn't clarify whether repositoryId is required in practice (optional in schema but likely essential). The description is too minimal given the tool's complexity and lack of other documentation.
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 all parameters (100% coverage), so the tool description's summary adds minimal extra meaning. The description lists the three main parameters but doesn't add constraints or formatting details beyond the schema. Baseline 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 it updates Pull Request properties and lists title, description, and draft status. This distinguishes it from other PR tools like ado_abandon_pull_request (changes state) or ado_create_pull_request (creates new PR). However, it doesn't explicitly differentiate from ado_update_work_item, which is a different 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?
The description provides no guidance on when to use this tool versus siblings. For example, it doesn't mention that for changing PR state (abandon, complete) other tools should be used. Given many sibling tools, explicit usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_update_pull_request_thread_statusC
Actualiza el estado de un hilo de comentarios (ej: marcar como Fixed, WontFix, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Nuevo estado del hilo | |
| threadId | Yes | ID del hilo | |
| repositoryId | No | Nombre o ID del repositorio | |
| pullRequestId | Yes | ID del Pull Request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present. The description only says 'updates status' without disclosing side effects, required permissions, or whether the action is reversible. For a write operation, more transparency is needed.
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?
Single sentence, concise and front-loaded with the action. Could be improved by separating purpose from examples, but overall efficient.
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 4 parameters and no output schema, the description is minimally complete. It explains the core action but omits return value, error handling, and effect on other thread properties.
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%, so the baseline is 3. The description does not add extra meaning beyond what the schema provides; it only restates the tool's purpose.
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 it updates the status of a comment thread with examples (Fixed, WontFix). It distinguishes from sibling tools like 'ado_add_comment' or 'ado_reply_to_pull_request_thread' by focusing on status change, but it doesn't explicitly contrast them.
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 or when not. No mention of prerequisites like the thread must exist or that this tool should be used after reviewing comments. No alternatives provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_update_work_itemC
Actualiza un Work Item existente en Azure DevOps
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID del Work Item a actualizar | |
| state | No | Nuevo estado (New, Active, Closed, etc.) | |
| title | No | Nuevo título | |
| fields | No | Campos adicionales como objeto {campo: valor} | |
| assignedTo | No | Usuario asignado | |
| description | No | Nueva descripción |
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 only states 'updates an existing work item' without revealing behavioral traits such as whether the update is partial, permission requirements, or side effects. This is insufficient.
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 with the key action. It is efficient and avoids unnecessary words, though it could include more detail without losing 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 complexity of 6 parameters including a nested object, and no output schema, the description is too brief. It does not explain the role of the 'fields' object or the relationship between parameters, leaving the agent with insufficient 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?
Schema description coverage is 100%, meaning all parameters have descriptions in the schema. The tool description does not add any extra meaning beyond what the schema already provides, so 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 it updates an existing work item, using the verb 'actualiza' and specifying the resource. It implicitly distinguishes from create/delete siblings by mentioning 'existente'. However, it does not explicitly differentiate from other update-related tools, though none exist in the sibling list.
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, or any prerequisites. The description is purely functional with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ado_upload_attachmentC
Sube un archivo como adjunto a Azure DevOps y devuelve la URL del adjunto
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | No | Nombre del archivo (opcional, se usa el nombre del archivo si no se especifica) | |
| filePath | Yes | Ruta completa del archivo a subir |
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 only states the basic action and outcome, lacking details on permissions, size limits, overwrite behavior, or error handling.
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 and result efficiently.
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 annotations or output schema, the description is minimal. It lacks context on constraints, error handling, and does not distinguish from similar sibling 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 parameters are adequately described in the schema. The description adds no extra meaning beyond the schema.
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 uploads a file as an attachment and returns the URL. However, it does not differentiate from the sibling tool 'ado_add_attachment', which likely performs a similar function.
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 like 'ado_add_attachment' or 'ado_delete_attachment'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action and resource (e.g., create vs update vs delete work items, add vs upload attachments). No two tools have ambiguous purposes, ensuring clear agent selection.
All tools follow the consistent pattern 'ado_verb_noun' (e.g., ado_create_work_item, ado_list_repositories). The prefix and verb-noun structure are uniform, making it easy to predict tool names.
36 tools is slightly above the typical range, but the Azure DevOps domain is broad. Each tool covers a necessary operation (work items, PRs, repositories, queries, etc.), so the count feels justified rather than bloated.
The tool surface covers the main workflows: CRUD for work items and pull requests, attachments, comments, threads, repositories, and queries. Minor gaps exist (e.g., no create/delete branch or build pipeline tools), but core operations are present.
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
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
Devopness MCP server for DevOps happiness! Empower AI Agents to deploy apps and infra, to any cloud.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for generating rough-draft project plans from natural-language prompts.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP server that enables AI assistants to manage Azure DevOps resources including Work Items, Git repositories, pipelines, and user identities.34MIT
- AlicenseAqualityDmaintenanceAn MCP server for Azure DevOps work item management that enables AI assistants to create, query, update, and manage work items, sprints, and more.1215ISC
- AlicenseNot gradedqualityBmaintenanceMCP server for Azure DevOps Server 2022 (on-premises) that enables AI assistants to interact with work items, repositories, builds, and sprints through 29 tools.312MIT
- AlicenseNot gradedqualityDmaintenanceA focused MCP server for Azure DevOps work item administration, enabling AI agents to create, update, query, and manage work items with full CRUD operations and advanced WIQL querying.MIT
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/soulberto/mcp-azure'
If you have feedback or need assistance with the MCP directory API, please join our Discord server