Skip to main content
Glama

adtk — Azure DevOps Toolkit

CI Go Report Card Docs License

A dual-mode Go CLI & MCP server for Azure DevOps. Single binary, PAT-first auth, 14 MCP tools with 91 actions, 4 MCP prompts.

The most comprehensive Azure DevOps MCP server. A single Go binary — CLI for humans, MCP for AI agents.

Comparison: adtk vs Microsoft azure-devops-mcp

Feature

adtk

microsoft/azure-devops-mcp

Language

Go (single static binary)

TypeScript (Node.js)

MCP Tools / Actions

14 tools / 91 actions

~75 individual tools

MCP Prompts

4 built-in prompts

None

CLI mode

Full CLI with 15 command groups

No

Auth

PAT (self-service, no admin)

Azure AD (requires admin consent)

Startup

~50ms

~2s

Response flattening

System.Titletitle

Raw API responses

Boards & Iterations

Full support

No

Test Plans

Full support

No

Advanced Security

Alert listing & details

No

Metrics

Cycle time, lead time, time-in-status

No

Git branch detection

Auto-detect work items from branch

No

Branch policies & tags

List policies, list/create tags

No

Variable groups & environments

List/get variable groups, environments

No

Saved queries

Get and run saved queries

No

Attachments

Upload, download, list

No

Write protection

ADTK_ENABLE_WRITES gate

None

Rate limiting

Built-in token bucket

None

Binary size

~15 MB

npm install (~200+ MB)

Related MCP server: ctk

Features

  • Dual-mode — Full CLI with table output + MCP server for AI agents

  • 14 consolidated MCP tools with 91 actions covering every Azure DevOps domain

  • 4 MCP prompts — sprint_summary, pr_review_digest, pipeline_health, release_readiness

  • Git branch detection — Auto-detect work item IDs from branch names (e.g., feature/12345-description)

  • Work item metrics — Cycle time, lead time, time-in-status computed from revision history

  • PAT-first auth — Self-service Personal Access Tokens, no Azure AD admin approval

  • Single binary — No Node.js, Python, or Docker required

  • Response flattening — Strips _links and converts System.* fields to readable names

  • Write protection — All mutations gated behind ADTK_ENABLE_WRITES=true

  • Rate limiting — Built-in token bucket respecting Azure DevOps TSTU limits

  • Token-optimized — AI agents get clean, concise payloads (40-60% fewer tokens)

Installation

go install

go install github.com/zach-snell/adtk/cmd/adtk@latest

Build from source

git clone https://github.com/zach-snell/adtk.git
cd adtk
./install.sh

Pre-built binaries

Download from the Releases page.

Quick Start

Authenticate

adtk auth
# Or use environment variables:
export AZURE_DEVOPS_ORG=myorg
export AZURE_DEVOPS_PAT=your-pat-here

CLI Usage

# Projects
adtk projects list
adtk projects get MyProject
adtk projects teams MyProject

# Work items
adtk work-items get 42
adtk work-items list -p MyProject

# Repositories
adtk repos list -p MyProject
adtk repos branches myrepo -p MyProject
adtk repos tree myrepo /src -p MyProject
adtk repos policies myrepo -p MyProject
adtk repos tags myrepo -p MyProject

# Pull requests
adtk pull-requests list myrepo -p MyProject
adtk pull-requests get myrepo 1

# Pipelines
adtk pipelines list -p MyProject
adtk pipelines runs 42 -p MyProject
adtk pipelines var-groups -p MyProject
adtk pipelines var-group 1 -p MyProject
adtk pipelines environments -p MyProject

# Iterations & boards
adtk iterations current -p MyProject
adtk boards list -p MyProject
adtk boards columns Stories -p MyProject

# Wiki
adtk wiki list -p MyProject
adtk wiki get ProjectWiki /Home -p MyProject

# Work item metrics
adtk work-items metrics 42 -p MyProject

# Work item auto-detect from git branch
adtk work-items get          # auto-detects work item ID from branch name

# Search
adtk search code "func main" -p MyProject
adtk search work-items "login bug" -p MyProject
adtk search wiql "SELECT [System.Id] FROM WorkItems WHERE [System.State] = 'Active'"
adtk search query "My Saved Queries/Active Bugs" -p MyProject

# Test plans
adtk test-plans list -p MyProject

# Security alerts
adtk security alerts myrepo -p MyProject

# Attachments
adtk attachments list 42 -p MyProject

# All commands support --json for raw output
adtk projects list --json

MCP Server

stdio mode (for AI agents)

adtk mcp

HTTP Streamable mode

adtk mcp --port 8080

MCP Client Configuration

Claude Desktop / Cursor / Claude Code:

{
  "mcpServers": {
    "adtk": {
      "command": "adtk",
      "args": ["mcp"],
      "env": {
        "AZURE_DEVOPS_ORG": "myorg",
        "AZURE_DEVOPS_PAT": "your-pat-here",
        "ADTK_ENABLE_WRITES": "true"
      }
    }
  }
}

Environment Variables

Variable

Required

Description

AZURE_DEVOPS_ORG

Yes

Azure DevOps organization name

AZURE_DEVOPS_PAT

Yes

Personal Access Token

ADTK_ENABLE_WRITES

No

Set to true to enable write operations (default: false)

AZURE_DEVOPS_DISABLED_TOOLS

No

Comma-separated list of tools to disable

MCP Tools

adtk exposes 14 MCP tools with 91 actions and 4 MCP prompts:

Tool

Actions

Description

manage_work_items

get, batch_get, create, update, delete, add_comment, update_comment, list_comments, get_links, list_types, get_history, batch_update, add_children, link, unlink, add_artifact_link, my_items, iteration_items

Full work item lifecycle (18 actions)

manage_projects

list, get, list_teams, get_team, create

Projects and teams (5 actions)

manage_users

get_current, search

Identity and user lookup (2 actions)

manage_search

wiql, code, work_items, wiki, get_query, run_query

Multi-domain search + saved queries (6 actions)

manage_repos

list, get, list_branches, get_file, get_tree, create_branch, search_commits, list_policies, list_tags, create_tag

Git repositories, policies, and tags (10 actions)

manage_pull_requests

list, get, create, update, add_comment, list_comments, vote, list_reviewers, update_reviewers, create_thread, update_thread, reply_to_comment

Pull request management (12 actions)

manage_iterations

list, get, get_current, create, get_team_settings

Sprint/iteration tracking (5 actions)

manage_boards

list, get, get_columns

Kanban board management (3 actions)

manage_wiki

list, get_page, list_pages, create_page, update_page, delete_page

Markdown-native wiki (6 actions)

manage_pipelines

list, get, list_runs, get_run, trigger, get_logs, get_log, get_build_changes, list_definitions, list_variable_groups, get_variable_group, list_environments

CI/CD pipelines, variable groups, and environments (12 actions)

manage_test_plans

list_plans, create_plan, list_suites, create_suite, list_cases, get_test_results

Test plan management (6 actions)

manage_advanced_security

list_alerts, get_alert

Security alert management (2 actions)

manage_metrics

get_metrics

Work item lifecycle metrics — cycle time, lead time, time-in-status (1 action)

manage_attachments

list, upload, download

Work item attachments (3 actions)

MCP Prompts

Prompt

Arguments

Description

sprint_summary

project (required), team, iteration

Generate a sprint/iteration status report

pr_review_digest

project (required), repo (required)

Generate a PR review digest for a repository

pipeline_health

project (required), pipeline_id

Analyze CI/CD pipeline health and failure trends

release_readiness

project (required), iteration

Assess release readiness with go/no-go recommendation

Security

Write Protection

adtk is read-only by default. All create, update, delete, and trigger operations require:

export ADTK_ENABLE_WRITES=true

PAT Auth

Uses HTTP Basic Auth with empty username: Authorization: Basic base64(":" + pat). No Azure AD admin consent required.

Rate Limiting

Built-in token bucket rate limiter (30 tokens, refill 1/2s) prevents hitting Azure DevOps TSTU throttling limits.

Architecture

  • Custom HTTP client — Direct REST API calls, no third-party SDK

  • Multi-base-URL routingdev.azure.com, vssps.dev.azure.com, almsearch.dev.azure.com, vsrm.dev.azure.com

  • JSON Patch for work item writes — Content-Type: application/json-patch+json

  • WIQL 2-step — Query IDs, then batch fetch fields (max 200 per request)

  • Response flattenerSystem.Titletitle, Microsoft.VSTS.Common.Prioritypriority

  • ETag concurrency — Wiki updates use If-Match headers for optimistic concurrency

  • Team-scoped APIs — Iterations/boards use {project}/{team} URL routing

Development

# Build
go build -o adtk ./cmd/adtk

# Test
go test -race ./...

# Lint
golangci-lint run ./...

# Vulnerability check
govulncheck ./...

See the development guide for full details.

Documentation

Full documentation: zach-snell.github.io/adtk

License

Apache 2.0 — see LICENSE

Available Tools

14 tools
manage_advanced_securityB

Manage Azure DevOps Advanced Security alerts. Actions: 'list_alerts', 'get_alert'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'list_alerts', 'get_alert'
project_keyNoProject name (required)
repo_idNoRepository name or ID (required)
alert_idNoAlert ID (required for get_alert)
statesNoFilter by alert states (for list_alerts)
severitiesNoFilter by severities (for list_alerts)

TDQS

B3.2/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 carry the full burden of behavioral disclosure. It only states 'Manage' and lists actions, but does not clarify whether operations are read-only or destructive, what permissions are required, or any side effects. This is insufficient for safe agent usage.

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. It front-loads the purpose and lists actions efficiently. Every word serves a purpose with no unnecessary content.

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 has 6 parameters, no output schema, and no annotations. The description does not explain return values, pagination, or behavior of each action beyond the schema. It fails to provide sufficient context for an agent to use the tool correctly in diverse scenarios.

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 parameters. The description adds no additional meaning beyond what is already in the schema; it only restates the action parameter. Baseline 3 is appropriate since the schema already documents parameters well.

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 identifies the resource (Azure DevOps Advanced Security alerts) and lists the two available actions: 'list_alerts' and 'get_alert'. It distinguishes from sibling tools, which cover different domains (attachments, boards, etc.), by focusing on security alerts.

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 implicitly suggests using this tool for managing Advanced Security alerts, but provides no explicit guidance on when to use it versus alternatives or when not to use it. Given sibling tools are distinct, it's clear enough but lacks contextual advice.

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

manage_attachmentsB

Manage Azure DevOps work item attachments. Actions: 'list', 'upload', 'download'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'list', 'upload', 'download'
project_keyNoProject name
work_item_idNoWork item ID (required for list, upload)
file_pathNoAbsolute path to the file to upload (required for upload). Note: paths refer to the MCP server's filesystem.
commentNoOptional comment for the attachment (for upload)
urlNoAttachment URL (for download)

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as side effects (upload modifies the work item), permissions needed, or rate limits. Minimal information beyond actions.

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?

The description is very short (one sentence plus list). It is concise but lacks structure; no explanation of actions or parameter relationships. Not verbose, but could be more organized.

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?

With 6 parameters, multiple actions, and no output schema, the description is incomplete. It does not explain how to use each action, what the API returns, or how to construct a download URL. Agent would lack necessary context.

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 input schema already describes all parameters. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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 tool manages Azure DevOps work item attachments and lists the three actions: list, upload, download. This is specific and distinguishes it from sibling tools like manage_work_items or manage_repos.

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, or when not to use it. The description only lists actions without context or exclusions.

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

manage_boardsB

Manage Azure DevOps Kanban boards. Actions: 'list', 'get', 'get_columns'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'list', 'get', 'get_columns'
project_keyNoProject name (required)
teamNoTeam name (optional, scopes to a specific team)
board_idNoBoard name or ID (required for get, get_columns)

TDQS

B3.1/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 disclose behaviors. The actions are all read-only, but the term 'manage' may misleadingly imply mutation. No information about authentication, side effects, or restrictions is given.

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 concise with a single sentence, but the word 'Manage' is vague and could be replaced with a more specific verb for clarity.

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 omits crucial context such as output format, required parameters for specific actions (e.g., board_id for get/get_columns), and permission requirements, making it incomplete for a tool with 4 parameters and no output schema.

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 covers 100% of parameters with descriptions, so the description adds little beyond listing actions. It does not explain parameter relationships or usage patterns, hence a baseline score of 3.

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 tool manages Azure DevOps Kanban boards and lists three specific actions ('list', 'get', 'get_columns'), providing a specific verb-resource pair and differentiating from sibling tools that manage other resources.

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 no guidance on when to use this tool over alternatives, nor does it explain which action to choose for a given scenario. It only lists actions without context.

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

manage_iterationsB

Manage Azure DevOps iterations (sprints). Actions: 'list', 'get', 'get_current', 'create', 'get_team_settings'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'list', 'get', 'get_current', 'create', 'get_team_settings'
project_keyNoProject name (required)
teamNoTeam name (optional, scopes to a specific team)
iteration_idNoIteration ID (required for get)
nameNoIteration name (required for create)
start_dateNoStart date in YYYY-MM-DD format (optional, for create)
finish_dateNoFinish date in YYYY-MM-DD format (optional, for create)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavioral traits. It only states the actions, with no mention of side effects (e.g., create mutates data), permissions, rate limits, or other constraints. This is insufficient for an agent to fully understand the tool's behavior.

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, consisting of a single sentence that front-loads the tool's purpose and actions. Every word is necessary, and the action list is well-structured.

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 tool has 7 parameters and 5 actions with no output schema, the description provides only the bare minimum. It lacks details on return values, error handling, or prerequisites, making it merely adequate for straightforward use cases.

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?

Input schema coverage is 100%, so all parameters have descriptions. The description adds no additional meaning beyond the schema, meeting the baseline of 3. It does not provide extra context like format or usage examples.

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 identifies the tool as managing Azure DevOps iterations (sprints) and lists the specific actions. Although the verb 'manage' is generic, the action list and resource name differentiate it from sibling tools like manage_work_items or manage_projects.

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 lists actions but provides no guidance on when to use each action or when to use this tool versus alternatives. The actions are self-explanatory, but there is no explicit context or exclusions.

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

manage_metricsC

Get issue lifecycle metrics for dashboards and visualizations. Actions: 'get_metrics'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'get_metrics'
project_keyNoProject name (required)
work_item_idNoWork item ID (required for get_metrics)

TDQS

C2.4/5.0
Behavior1/5

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

No annotations are provided, yet the description fails to disclose behavioral traits such as side effects, authentication requirements, rate limits, or parameter behavior (e.g., what happens if project_key is missing). The description is too brief to inform the agent about the tool's operation beyond its basic function.

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?

The description is two sentences but the second sentence largely restates the first. It is short but not optimally concise, and the structure is adequate.

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?

With no output schema and no annotations, the description should provide more context about return values, error handling, and parameter dependencies. It lacks completeness for a tool with three parameters and no additional documentation.

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% (all parameters have descriptions). The description repeats the action value but adds no new semantic information beyond the schema. Baseline score of 3 is appropriate since the schema already documents parameters well.

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?

Description states 'Get issue lifecycle metrics for dashboards and visualizations' with a clear verb and resource, and names the specific action 'get_metrics'. It does not explicitly differentiate from sibling tools, but the resource 'metrics' is distinct from other resources like work items or projects.

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., manage_work_items, manage_boards). The description only states the action without context for selection.

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

manage_pipelinesC

Manage Azure DevOps CI/CD pipelines. Actions: 'list', 'get', 'list_runs', 'get_run', 'get_logs', 'get_log', 'get_build_changes', 'list_definitions', 'list_variable_groups', 'get_variable_group', 'list_environments', 'trigger'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'list', 'get', 'list_runs', 'get_run', 'trigger', 'get_logs', 'get_log', 'get_build_changes', 'list_definitions', 'list_variable_groups', 'get_variable_group', 'list_environments'
project_keyNoProject name (required)
pipeline_idNoPipeline ID (required for get, list_runs, trigger, get_logs, get_log)
run_idNoRun ID (required for get_run, get_logs, get_log)
log_idNoLog ID (required for get_log)
build_idNoBuild ID (required for get_build_changes)
branchNoBranch name to run pipeline on (for trigger)
topNoMax results to return
group_idNoVariable group ID (required for get_variable_group)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for disclosing behavioral traits. It only lists action names, which imply operations but do not explain side effects, permissions required, or consequences (e.g., triggering a pipeline may start a build). Minimal behavioral context is provided.

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 concise, using a single sentence to list actions after stating the resource. It is front-loaded and efficient, though it could be improved by grouping related actions or adding more structure.

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 complexity (9 parameters, multiple actions, no output schema), the description is incomplete. It lacks information about return values, error conditions, or what each action accomplishes beyond the action name. The schema provides parameter details, but the description does not provide the high-level context needed for effective tool selection.

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 covers all parameters with descriptions (100% coverage), so the baseline is 3. The tool description adds no extra parameter context beyond the schema, merely listing actions. It does not enhance understanding of parameter values or constraints.

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 manages Azure DevOps CI/CD pipelines and lists specific actions, distinguishing it from sibling tools that manage other resources. However, the verb 'Manage' is generic and the description is a list without a clear statement of the tool's overall purpose.

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 guidelines are provided about when to use this tool versus alternatives or when to use specific actions. The description simply enumerates actions without context about prerequisites, typical use cases, or when not to use the tool.

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

manage_projectsB

Manage Azure DevOps projects and teams. Actions: 'list', 'get', 'list_teams', 'get_team', 'create'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'list', 'get', 'list_teams', 'get_team', 'create'
project_keyNoProject name or ID (required for get, list_teams)
team_idNoTeam name or ID (required for get_team)
nameNoProject name (required for create)
descriptionNoProject description (for create)

TDQS

B3.1/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 disclose behavioral traits. It only says 'Manage', which is vague. It does not mention side effects (e.g., creation may require permissions), idempotency, rate limits, or error conditions. The actions are listed but their behaviors (e.g., 'get' vs 'create') are not elaborated beyond the action names.

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 concise (two sentences) and front-loaded with the verb 'Manage'. It efficiently lists the actions, though it could be structured into bullet points for clarity. Every sentence earns its place, but the format is minimal.

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?

With no output schema, the description should explain return values or behavior. It does not describe what each action returns or any side effects. The tool has five parameters and multiple actions, but the description lacks completeness for an agent to use it effectively without additional context.

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 baseline is 3. The description adds a list of actions in the main text, but the input schema already describes each parameter (e.g., action, project_key, team_id, name, description). The description does not add meaningful new information 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 explicitly states the tool manages Azure DevOps projects and teams, and lists all five actions ('list', 'get', 'list_teams', 'get_team', 'create'). This clearly distinguishes it from sibling tools like manage_repos, manage_work_items, etc., which handle different resources.

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 no guidance on when to use this tool versus its many siblings (e.g., manage_repos, manage_pipelines). It lists actions but does not explain which action is appropriate for different scenarios or what prerequisites exist.

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

manage_pull_requestsC

Manage Azure DevOps pull requests. Actions: 'list', 'get', 'list_comments', 'list_reviewers', 'create', 'update', 'add_comment', 'vote', 'update_reviewers', 'create_thread', 'update_thread', 'reply_to_comment'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'list', 'get', 'create', 'update', 'add_comment', 'list_comments', 'vote', 'list_reviewers', 'update_reviewers', 'create_thread', 'update_thread', 'reply_to_comment'
project_keyNoProject name
repo_idNoRepository name or ID (required for most actions)
pr_idNoPull request ID (required for get, update, add_comment, list_comments, vote, list_reviewers)
statusNoFilter by status: active, completed, abandoned, all (for list)
topNoMax results to return
titleNoPR title (required for create)
descriptionNoPR description (for create, update)
source_branchNoSource branch name (required for create)
target_branchNoTarget branch name (required for create)
is_draftNoCreate as draft PR (for create)
commentNoComment content (for add_comment, create_thread, reply_to_comment)
reviewer_idNoReviewer ID (for vote)
voteNoVote: 10=approved, 5=approved with suggestions, 0=no vote, -5=waiting, -10=rejected
reviewer_idsNoComma-separated reviewer IDs (for update_reviewers)
thread_idNoThread ID (for update_thread, reply_to_comment)
file_pathNoFile path for inline comment (for create_thread)
lineNoLine number for inline comment (for create_thread)

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must reveal behavioral traits, but it only lists action names. It doesn't specify which actions are read-only vs. mutating, whether operations are idempotent, permission requirements, side effects, or error conditions. This is a significant gap for an 18-parameter 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?

Very short and front-loaded, but the list of actions takes up most of the space. It is concise but sacrifices important behavioral information. Every sentence earns its place, but the description could be restructured to include context without increasing length significantly.

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 high complexity (18 parameters, 12 actions) and no output schema, the description is incomplete. It lacks action-specific guidance, parameter groupings, and behavioral context. An agent would need to read the entire schema and infer usage, which is suboptimal.

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 baseline is 3. The description adds no extra meaning beyond the action list, which is already in the schema's action parameter description. The schema already explains each parameter well.

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 manages Azure DevOps pull requests and lists all actions. This differentiates it from sibling tools (e.g., manage_repos, manage_work_items) by resource. However, it doesn't explain what each action does beyond the action name, so some ambiguity remains.

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, or when not to use it. The description only enumerates actions without hints about choosing the right action or typical usage patterns. This leaves 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.

manage_reposB

Manage Azure DevOps Git repositories. Actions: 'list', 'get', 'list_branches', 'get_file', 'get_tree', 'search_commits', 'list_policies', 'list_tags', 'create_branch', 'create_tag'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'list', 'get', 'list_branches', 'get_file', 'get_tree', 'create_branch', 'search_commits', 'list_policies', 'list_tags', 'create_tag'
project_keyNoProject name (required for most actions)
repo_idNoRepository name or ID (required for get, list_branches, get_file, get_tree)
file_pathNoFile path within the repo (for get_file, get_tree)
versionNoBranch name or commit SHA (for get_file)
branch_nameNoNew branch name (required for create_branch)
source_branchNoSource branch to create from (required for create_branch)
authorNoFilter commits by author (for search_commits)
from_dateNoFilter commits from this date (for search_commits)
to_dateNoFilter commits to this date (for search_commits)
tag_nameNoTag name (required for create_tag)
commit_shaNoCommit SHA to tag (required for create_tag)

TDQS

B3.1/5.0
Behavior2/5

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

The description only says 'Manage' and lists actions, without disclosing whether each action is read-only or modifies state, or any potential side effects. No annotations provide additional context, so the agent has no behavioral guarantees.

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 concise sentence that front-loads the purpose and lists actions. However, it compresses all information into one sentence without clear separation of action descriptions, which could be improved for readability.

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 12 parameters and no output schema, the description lacks crucial context such as return values, prerequisites, or detailed behavior for each action. The agent would need to infer most usage from the schema alone.

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% coverage with descriptions for all parameters. The description adds only a list of action names, which are already in the schema's action parameter description. Therefore, the description provides minimal added value 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 explicitly states it manages Azure DevOps Git repositories and enumerates ten specific actions, distinguishing it clearly from sibling tools like manage_pipelines or manage_work_items which target different resources.

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, nor on how to choose among the listed actions. The agent must infer usage solely from the action names and parameter requirements.

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

manage_test_plansA

Manage Azure DevOps test plans, suites, and cases. Actions: 'list_plans', 'list_suites', 'list_cases', 'get_test_results', 'create_plan', 'create_suite'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'list_plans', 'create_plan', 'list_suites', 'create_suite', 'list_cases', 'get_test_results'
project_keyNoProject name (required)
plan_idNoTest plan ID
suite_idNoTest suite ID
parent_suite_idNoParent suite ID (for create_suite)
build_idNoBuild ID (for get_test_results)
nameNoName (for create_plan, create_suite)
iterationNoIteration path (for create_plan)

TDQS

A3.5/5.0
Behavior2/5

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. However, it only lists actions without explaining side effects, permissions, rate limits, or idempotency. For a multi-action tool, 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.

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the tool's purpose and then enumerates actions. Every word contributes meaning with no redundancy.

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?

While the schema covers parameters well, the tool has no output schema and multiple interdependent actions. The description does not explain how actions relate, prerequisites, or return values, leaving gaps for an agent trying to use it 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?

Input schema coverage is 100% with descriptions for all 8 parameters. The tool description adds no further parameter information beyond listing actions. Per guidelines, baseline is 3 when schema coverage is high, so this score is appropriate.

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 tool manages Azure DevOps test plans, suites, and cases, listing specific actions. This distinguishes it from sibling tools that manage other domains like boards, repos, or work items.

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 does not explicitly state when to use this tool versus alternatives. While the domain (test plans, suites, cases) implies its scope, there is no guidance on when not to use it or how it relates to siblings like manage_work_items, which might also handle test cases.

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

manage_usersB

Search and get Azure DevOps users. Actions: 'get_current', 'search'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'get_current', 'search'
queryNoSearch query - display name or email (for search)

TDQS

B3.3/5.0
Behavior2/5

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

The description does not disclose behavioral traits such as read-only nature, authentication requirements, or response details. With no annotations, the description fails to inform the agent about side effects or constraints beyond the listed actions.

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 very concise with two sentences, front-loading the purpose and key actions. Every word adds value, and there is no unnecessary text.

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), the description provides the core information but lacks details on return values or behavior of each action, leaving some ambiguity for an AI 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 description coverage is 100%, so baseline is 3. The description repeats the action names already in the schema without adding new semantic meaning or usage tips for the parameters.

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 'Search and get Azure DevOps users' with specific actions listed. It distinguishes from sibling tools by specifying the resource (users) as opposed to other entities like attachments or pipelines.

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 'get_current' vs 'search', nor any context about alternatives or prerequisites. The description only lists available actions without explaining their appropriate contexts.

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

manage_wikiC

Manage Azure DevOps wiki pages (markdown-native). Actions: 'list', 'get_page', 'list_pages', 'create_page', 'update_page', 'delete_page'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'list', 'get_page', 'list_pages', 'create_page', 'update_page', 'delete_page'
project_keyNoProject name (required)
wiki_idNoWiki name or ID (required for page operations)
page_pathNoWiki page path e.g. /Home or /Design/Architecture (required for page operations)
contentNoPage content in Markdown (for create_page, update_page). Wiki is markdown-native.
versionNoPage version for optimistic concurrency (for update_page)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description must convey behavior. It fails to disclose that actions like create/update/delete are mutating, nor does it mention concurrency control via 'version' parameter, permissions, or reversibility. The term 'Manage' is vague for a tool with destructive operations.

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?

One sentence plus a list of actions is very concise. It is front-loaded with the main purpose. However, the list could be better formatted for readability.

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 bundles 6 actions with 6 parameters and no output schema, the description is incomplete. It does not explain return values for each action, relationships between actions, or error scenarios. A more detailed description would be expected for a multi-operation tool.

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 descriptions, so baseline is 3. The description emphasizes 'markdown-native,' which adds value but is already implied by the content parameter description. It does not clarify the difference between 'list' and 'list_pages' or provide additional semantic context beyond the schema.

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 it manages Azure DevOps wiki pages and lists all available actions. However, it does not differentiate between 'list' and 'list_pages', which could be ambiguous (list wikis vs list pages). Still, it is specific enough to understand the resource and operations.

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 (e.g., manage_work_items for other content). No prerequisites or conditions are mentioned. The description merely lists actions without usage context.

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

manage_work_itemsC

Manage Azure DevOps work items (tasks, bugs, user stories, epics). Actions: 'get', 'batch_get', 'list_types', 'get_links', 'get_history', 'list_comments', 'my_items', 'iteration_items', 'create', 'update', 'delete', 'add_comment', 'batch_update', 'add_children', 'link', 'unlink', 'add_artifact_link', 'update_comment'

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: 'get', 'create', 'update', 'delete', 'add_comment', 'list_comments', 'get_links', 'list_types', 'get_history', 'batch_get', 'batch_update', 'add_children', 'link', 'unlink', 'add_artifact_link', 'my_items', 'iteration_items', 'update_comment'
project_keyNoProject name (required for most actions)
work_item_idNoWork item ID (required for get, update, delete, add_comment, list_comments, get_links, get_history)
work_item_idsNoWork item IDs (for batch_get, max 200)
work_item_typeNoWork item type: Task, Bug, User Story, Epic, Feature, Issue (required for create)
titleNoWork item title (required for create)
descriptionNoWork item description in HTML (for create, update)
stateNoWork item state: New, Active, Closed, etc. (for update)
assigned_toNoAssignee display name or email (for create, update)
area_pathNoArea path e.g. Project\Team (for create, update)
iteration_pathNoIteration path e.g. Project\Sprint 1 (for create, update)
priorityNoPriority: 1=Critical, 2=High, 3=Medium, 4=Low (for create, update)
parent_idNoParent work item ID to link (for create, add_children)
tagsNoSemicolon-separated tags (for create, update)
commentNoComment text in HTML (for add_comment, update_comment, add_artifact_link)
comment_idNoComment ID (required for update_comment)
queryNoWIQL query string (for 'list' action via WIQL)
fieldsNoFields to return (for batch_get). Default: System.Title, System.State, System.AssignedTo
topNoMax results to return (for WIQL queries)
target_idNoTarget work item ID (required for link)
link_typeNoLink type name (for link, add_artifact_link), e.g. System.LinkTypes.Related, System.LinkTypes.Hierarchy-Forward
relation_indexNoRelation index to remove (required for unlink)
artifact_uriNoArtifact URI for artifact links (required for add_artifact_link), e.g. vstfs:///Git/Commit/{projectId}%2F{repoId}%2F{commitId}
titlesNoList of titles for child work items (required for add_children)
teamNoTeam name (optional, scopes iteration_items to a specific team)
iteration_idNoIteration ID (required for iteration_items)
include_completedNoInclude completed/closed work items (for my_items, default false)

TDQS

C2.7/5.0
Behavior2/5

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

No annotations exist, so the description must fully convey behavioral traits. It lists actions implying mutation (create, update, delete) and reads, but does not mention side effects, permission requirements, rate limits, or idempotency. The agent cannot infer safety or impact without external knowledge.

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 one long sentence listing 18 actions, lacking structure and readability. It is not front-loaded; key purpose ('Manage Azure DevOps work items') is present, but the action list dominates. Every word is not earned—the list could be summarized or grouped.

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 high parameter count (27) and no output schema, the description should provide more context on action selection, required parameters per action, and expected results. It only lists actions and relies on the schema for parameter details. The tool is complex, and the description does not offer sufficient guidance for effective use.

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 baseline is 3. The description does not add meaning beyond the schema—it only enumerates actions. However, the schema itself provides detailed parameter descriptions, compensating somewhat. The description adds no extra semantics for parameter usage or interrelationships.

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 manages Azure DevOps work items and lists specific actions (get, create, update, etc.), making the purpose evident. It distinguishes from sibling tools like manage_boards or manage_pipelines by explicitly mentioning work item types (tasks, bugs, user stories, epics). However, the action list is exhaustive and could be more focused.

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., manage_attachments for attachments, manage_boards for board operations). The description does not specify prerequisites, conditions for read vs. write operations, or context where sibling tools would be more appropriate.

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

Tool Schema Changelog

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

  1. 14 tool updates
    • First observedmanage_advanced_security
    • First observedmanage_attachments
    • First observedmanage_boards
    • First observedmanage_iterations
    • First observedmanage_metrics
    • First observedmanage_pipelines
    • First observedmanage_projects
    • First observedmanage_pull_requests
    • First observedmanage_repos
    • First observedmanage_search
    • First observedmanage_test_plans
    • First observedmanage_users
    • First observedmanage_wiki
    • First observedmanage_work_items

TDQS

B3.4/5.0
Disambiguation5/5

Each tool focuses on a distinct Azure DevOps domain (e.g., work items, repos, pipelines) with no overlapping responsibilities. Actions within each tool are specific to that resource, ensuring clear separation.

Naming Consistency5/5

All tools follow a consistent 'manage_<domain>' naming pattern, and actions inside use standard verbs like list, get, create, update, delete. No mixing of conventions.

Tool Count5/5

14 tools cover a broad range of Azure DevOps functionality without being excessive. Each tool is justified by a distinct set of operations, making the surface well-scoped.

Completeness4/5

Major Azure DevOps features are covered, but some resources lack full CRUD (e.g., test plans missing update/delete, boards only read). Core workflows are supported, with minor gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

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/zach-snell/adtk'

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