Skip to main content
Glama

az-devops-cli-mcp

Azure DevOps MCP tools for Claude Code and Codex CLI — boards, work items, repos, and PRs.

PyPI version CI Python 3.10+


Install & Register

# 1. Install
pip install az-devops-cli-mcp

# 2. Login (once per machine)
az login
az devops configure --defaults organization=https://dev.azure.com/YOUR_ORG

# 3. Register with Claude Code
claude mcp add az-devops-cli-mcp -- python -m az_devops_cli_mcp.server

# 4. Register with Codex CLI
codex mcp add az-devops-cli-mcp -- python -m az_devops_cli_mcp.server

Restart Claude Code or Codex CLI. All 13 tools are ready.


Related MCP server: cursor-azure-devops-mcp

How It Works

The server runs as a stdio process — spawned on demand by the client, no ports or background services needed.

Claude Code / Codex CLI
        |  spawns on demand
        v
python -m az_devops_cli_mcp.server   (stdin/stdout)
        |
        v
      az CLI  (your az login session)

Available Tools (13 total)

Work Items

Tool

What it does

create_work_item

Create Task, Bug, User Story, Epic

get_work_item

Get item by ID

update_work_item

Update state, assignment, title

set_iteration

Assign to sprint (required for Sprint board)

query_work_items

WIQL query for bulk lookups

link_work_items

Link items (Child, Parent, Related)

get_work_item_relations

Verify hierarchy after linking

add_comment

Add discussion comment / agent log

Repos / PRs

Tool

What it does

list_prs

List PRs by status

get_pr

Get PR details

create_pr

Open a new PR

link_pr_to_work_item

Trace PR to work item

list_branches

List repo branches


AG2 Usage (optional)

from autogen import ConversableAgent
from az_devops_cli_mcp import ALL_TOOLS, WORK_ITEM_TOOLS, REPO_TOOLS

agent = ConversableAgent(
    name="devops_agent",
    tools=ALL_TOOLS,
    system_message="You manage Azure DevOps for LytStore..."
)

Configuration

Method

How

az devops configure

Preferred — org set globally for your machine

AZURE_DEVOPS_ORG env var

Per-session override

.env file

AZURE_DEVOPS_ORG=https://dev.azure.com/YOUR_ORG


Safety

Destructive commands (delete, remove, destroy) are blocked at the core layer. The agent returns an error and requires explicit user confirmation.


Manual MCP Config (fallback)

If claude mcp add / codex mcp add aren't available, add this to your config file manually.

Claude Code~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "az-devops-cli-mcp": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "az_devops_cli_mcp.server"]
    }
  }
}

Codex CLI~/.codex/config.json: same block.


Contributing

git clone https://github.com/PraiseSinkamba/az-devops-cli-mcp
cd az-devops-cli-mcp
pip install -e ".[dev]"
pytest tests/

Available Tools

13 tools
add_commentB

Add a discussion comment to a work item. Use to log agent reasoning or decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWork item ID
commentYesComment text

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description fails to disclose any behavioral traits such as authentication requirements, whether the action is destructive, or rate limits. For a mutation tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two short sentences, front-loading the main action and a usage hint. No superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (2 parameters, no output schema, no annotations), the description is minimally adequate. However, it lacks details about the effect (e.g., where the comment appears) and the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema details the parameters adequately. The description adds no additional semantic beyond what the schema already provides, resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add a discussion comment') and the resource ('work item'), with an additional hint for a specific use case ('log agent reasoning or decisions'). However, it does not explicitly distinguish from sibling tools like 'update_work_item' which might also involve comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a brief usage suggestion ('Use to log agent reasoning or decisions') but lacks explicit guidance on when to use this tool versus alternatives, nor does it mention preconditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_prC

Create a pull request.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository name
titleYesPR title
sourceYesSource branch
targetNoTarget branchmain
projectYesAzure DevOps project name
descriptionNoPR description (optional)

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It only states 'Create a pull request' without disclosing any behavioral traits like side effects, authentication needs, or return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, but it is under-specified and fails to front-load important information. It is not helpful despite being brief.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters (4 required) and no output schema, the description is completely inadequate. It provides no context about usage, return values, or behavioral aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter meaning beyond what the schema provides, earning the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (create) and resource (pull request), but does not distinguish it from sibling tools like get_pr or list_prs. It is clear but lacks differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as link_pr_to_work_item or add_comment. 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.

create_work_itemB

Create a work item on the board. type options: Task, Bug, User Story, Epic, Feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoWork item typeTask
titleYesWork item title
projectYesAzure DevOps project name
assigned_toNoAssignee display name (optional)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description should disclose behavioral traits like mutation, auth requirements, or side effects. It only states 'Create' implying a write operation, but lacks details on permissions, duplication behavior, or visibility. The list of types is helpful but insufficient for complete transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the core purpose and critical parameter detail (type options). It is front-loaded and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is too brief given the tool's complexity (4 parameters, creation operation). It lacks information about return values, error conditions, and prerequisites. With no output schema, the agent is left guessing about success confirmation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds limited value for most parameters. However, it enumerates valid values for 'type' (Task, Bug, etc.) which are not in the schema, providing practical guidance. No additional info for other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a work item and lists available types (Task, Bug, etc.). While it distinguishes from siblings like update_work_item implicitly, it does not explicitly differentiate itself from other creation tools or specify the board context (Azure DevOps).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., update_work_item, query_work_items). There is no mention of prerequisites, typical use cases, 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.

get_prA

Get full details of a specific PR.

ParametersJSON Schema
NameRequiredDescriptionDefault
pr_idYesPull request ID

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only says 'Get full details' without disclosing any behavioral traits such as idempotency, permissions, or return behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the key action and resource. No wasted words, though it could be slightly more informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with one parameter and no output schema, the description is adequate. It covers the essential purpose without needing extensive details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter pr_id is described. The tool description adds 'full details' but no additional parameter context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'get', the resource 'PR', and specifies 'full details', distinguishing it from sibling tools like list_prs and create_pr.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 list_prs or get_work_item. The usage is implied but not clarified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_work_itemC

Get a work item by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWork item ID

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations and no description of behavior (e.g., read-only, error handling, returned data shape). The agent lacks critical context for a mutation vs query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (one sentence). While efficient, it omits helpful details that could be added without significant bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description fails to mention return format, error cases, or required permissions, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with a minimal description for 'id'. The tool description adds no new information beyond the schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets a work item by ID. It differentiates from siblings like query_work_items (search) and get_pr (different resource), but does not 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.

Usage Guidelines2/5

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 like query_work_items or get_work_item_relations. The agent must infer from context signals.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_work_item_relationsB

Get all linked work items. Use after bulk linking to verify hierarchy.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWork item ID

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It states 'Get all linked work items' but does not clarify if this includes both incoming and outgoing links, whether the operation is read-only, or any potential side effects. The description is too minimal for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two short sentences that are direct and efficient. Every word contributes to purpose and usage guidance, with no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and no output schema. However, the description fails to explain the return value (e.g., list of work item IDs or objects, hierarchical structure) and does not mention any limits or pagination. This lack of completeness could hinder correct interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the single parameter 'id' with description 'Work item ID'. The description adds no additional meaning beyond the schema, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get all linked work items', specifying the verb and resource, and distinguishes from siblings like get_work_item (single work item) and link_work_items (create links). However, it does not specify the type of relations (e.g., parent/child), leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a specific use case: 'Use after bulk linking to verify hierarchy.' This gives clear context for when to use the tool. It does not explicitly mention alternatives or when not to use, but the sibling list includes related tools, and the implied guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_branchesC

List all branches in a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesRepository name
projectYesAzure DevOps project name

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description gives no behavioral details beyond listing. There is no mention of whether the operation is read-only, any limitations on number of branches returned, or sorting order. The description is too sparse to inform an agent of behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence that communicates the core purpose. It is concise, but could be slightly improved by adding relevant constraints or context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 output schema, the description is adequate but not complete. It fails to mention the shape of the output (e.g., list of branch names) or any index/pagination behavior. Given the tool's simplicity, a score of 3 is reasonable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters (repo, project). The description adds no additional meaning beyond the schema, but the schema itself is clear. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all branches in a repository', which is a specific verb+resource. It distinguishes the tool from sibling tools that deal with pull requests, work items, and comments, but does not explicitly differentiate among possible branch-listing variants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 is provided. The sibling tools list suggests unique context, but the description lacks explicit usage guidelines, such as prerequisites or when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_prsB

List pull requests in a project. status options: active, completed, abandoned, all.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoPR status filteractive
projectYesAzure DevOps project name

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only mentions listing with a status filter. It omits behavioral details like pagination, sorting, scope (all PRs vs user's), or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action and lists options. No wasted words; perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and lack of output schema, the description omits key details like pagination, sorting, and scope. An agent would lack full context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with baseline 3. The description adds the actual status enum values ('active, completed, abandoned, all') beyond the schema's generic 'PR status filter', improving semantic clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'List pull requests in a project' with specific verb and resource, and distinguishes from siblings like get_pr (single PR) and create_pr. It also mentions status options, enhancing clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use list_prs versus alternatives like get_pr for a single PR or create_pr. The description only lists status filter options without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_work_itemsB

Run a WIQL query to find work items. Use for any bulk lookups.

ParametersJSON Schema
NameRequiredDescriptionDefault
wiqlYesWIQL query string
projectYesAzure DevOps project name

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It only states it's a query, omitting details about authentication, rate limits, pagination, or error handling, which are important for a query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, no wasted words, and the key action is front-loaded. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 2 parameters and no output schema or annotations, the description lacks details on result limits, errors, and required permissions. It is too sparse for a query tool that might return large sets.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes both parameters fully. The description adds no extra meaning beyond what is in the schema, so it meets the baseline of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Run' and the resource 'WIQL query to find work items'. It also distinguishes from sibling tools like 'get_work_item' by specifying 'bulk lookups', indicating a broad search scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use for any bulk lookups', which provides a usage context but does not explicitly mention when not to use it or name alternatives. For example, it could advise using 'get_work_item' for single-item retrieval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_iterationA

Assign a work item to a sprint iteration. Required for items to appear on the Sprint board. Format: 'ProjectName\Sprint N'

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWork item ID
iteration_pathYese.g. LytStore\\Sprint 4

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It identifies the tool as a write operation but does not mention side effects, permissions, error handling, or what happens if the iteration path is invalid. The description is too sparse for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. The first sentence states the action, and the second provides format and context. Every word is necessary, and the information is front-loaded. No wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 simple parameters, no output schema), the description covers the essential aspects: action, format, and a key consequence (appearance on Sprint board). It lacks details on error cases or prerequisites, but for this low complexity, it is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers both parameters with 100% descriptive coverage. The description adds value by specifying the format 'ProjectName\Sprint N' for the iteration_path parameter and explaining the business requirement (appearance on Sprint board). This goes beyond the schema's basic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Assign a work item to a sprint iteration.' It specifies the exact action and resource, and distinguishes the tool from siblings by focusing on iteration assignment, which is a specific operation not covered by general update tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that iteration assignment is 'Required for items to appear on the Sprint board,' providing context for when to use the tool. However, it does not specify when not to use it or suggest alternative tools like update_work_item, and lacks explicit guidance on prerequisites or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_work_itemB

Update state, assignment, or title of a work item.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWork item ID
stateNoNew state (e.g. Active, Resolved, Closed)
titleNoNew title
assigned_toNoNew assignee display name

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action without revealing key traits such as destructive potential, permission requirements, concurrency behavior, or whether updates are partial or full. This is insufficient for an agent to anticipate 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that front-loads the action and target. It is concise and to the point, with no wasted words. However, it could be slightly more structured by indicating that the update is partial (only provided fields are modified).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain that 'id' is required and updates are optional, nor does it describe the return value or error conditions. This leaves significant gaps for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 each parameter. The description adds no additional meaning beyond listing the fields—it repeats schema descriptions without further context on allowed values, formatting, or relationships between parameters. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Update' and the target 'work item', listing three specific fields (state, assignment, title) which correspond to the schema parameters. It effectively distinguishes from sibling tools like 'create_work_item' and 'get_work_item', though it does not explicitly clarify that this is a partial update tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for modifying existing work items but does not provide explicit guidance on when to use versus alternatives. It lacks any when-not-to-use conditions or prerequisites. The sibling context shows no other update tool, so the guidance is implicitly clear but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 13 tool updatesv1.0.2
    • First observedadd_comment
    • First observedcreate_pr
    • First observedcreate_work_item
    • First observedget_pr
    • First observedget_work_item
    • First observedget_work_item_relations
    • First observedlink_pr_to_work_item
    • First observedlink_work_items
    • First observedlist_branches
    • First observedlist_prs
    • First observedquery_work_items
    • First observedset_iteration
    • First observedupdate_work_item

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clearly defined purpose with no overlaps. Work item operations are distinct (create, get, update, query, link, set iteration, add comment), PR operations are separate, and branch listing is isolated.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., create_work_item, list_prs, set_iteration). No mixing of conventions or inconsistent naming styles.

Tool Count5/5

13 tools is well-scoped for an Azure DevOps CLI, covering work items (create, read, update, query, link, set iteration, comment) and PRs (create, get, list, link). Each tool serves a clear purpose without excess.

Completeness3/5

Core operations are present (create/read/update for work items, create/read for PRs), but missing delete for work items, update/complete for PRs, and branch creation. Some gaps exist that may hinder full workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/PraiseSinkamba/az-devops-cli-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server