adtk
adtk — Azure DevOps Toolkit
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 |
| 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 |
| None |
Rate limiting | Built-in token bucket | None |
Binary size | ~15 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
_linksand convertsSystem.*fields to readable namesWrite protection — All mutations gated behind
ADTK_ENABLE_WRITES=trueRate 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@latestBuild from source
git clone https://github.com/zach-snell/adtk.git
cd adtk
./install.shPre-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-hereCLI 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 --jsonMCP Server
stdio mode (for AI agents)
adtk mcpHTTP Streamable mode
adtk mcp --port 8080MCP 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 |
| Yes | Azure DevOps organization name |
| Yes | Personal Access Token |
| No | Set to |
| 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 |
| 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) |
| list, get, list_teams, get_team, create | Projects and teams (5 actions) |
| get_current, search | Identity and user lookup (2 actions) |
| wiql, code, work_items, wiki, get_query, run_query | Multi-domain search + saved queries (6 actions) |
| 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) |
| 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) |
| list, get, get_current, create, get_team_settings | Sprint/iteration tracking (5 actions) |
| list, get, get_columns | Kanban board management (3 actions) |
| list, get_page, list_pages, create_page, update_page, delete_page | Markdown-native wiki (6 actions) |
| 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) |
| list_plans, create_plan, list_suites, create_suite, list_cases, get_test_results | Test plan management (6 actions) |
| list_alerts, get_alert | Security alert management (2 actions) |
| get_metrics | Work item lifecycle metrics — cycle time, lead time, time-in-status (1 action) |
| list, upload, download | Work item attachments (3 actions) |
MCP Prompts
Prompt | Arguments | Description |
|
| Generate a sprint/iteration status report |
|
| Generate a PR review digest for a repository |
|
| Analyze CI/CD pipeline health and failure trends |
|
| 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=truePAT 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 routing —
dev.azure.com,vssps.dev.azure.com,almsearch.dev.azure.com,vsrm.dev.azure.comJSON Patch for work item writes —
Content-Type: application/json-patch+jsonWIQL 2-step — Query IDs, then batch fetch fields (max 200 per request)
Response flattener —
System.Title→title,Microsoft.VSTS.Common.Priority→priorityETag concurrency — Wiki updates use
If-Matchheaders for optimistic concurrencyTeam-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 toolsmanage_advanced_securityB
Manage Azure DevOps Advanced Security alerts. Actions: 'list_alerts', 'get_alert'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'list_alerts', 'get_alert' | |
| project_key | No | Project name (required) | |
| repo_id | No | Repository name or ID (required) | |
| alert_id | No | Alert ID (required for get_alert) | |
| states | No | Filter by alert states (for list_alerts) | |
| severities | No | Filter by severities (for list_alerts) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states '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.
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.
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.
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.
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.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'list', 'upload', 'download' | |
| project_key | No | Project name | |
| work_item_id | No | Work item ID (required for list, upload) | |
| file_path | No | Absolute path to the file to upload (required for upload). Note: paths refer to the MCP server's filesystem. | |
| comment | No | Optional comment for the attachment (for upload) | |
| url | No | Attachment URL (for download) |
TDQS
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.
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.
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.
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.
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.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'list', 'get', 'get_columns' | |
| project_key | No | Project name (required) | |
| team | No | Team name (optional, scopes to a specific team) | |
| board_id | No | Board name or ID (required for get, get_columns) |
TDQS
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.
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.
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.
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.
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.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'list', 'get', 'get_current', 'create', 'get_team_settings' | |
| project_key | No | Project name (required) | |
| team | No | Team name (optional, scopes to a specific team) | |
| iteration_id | No | Iteration ID (required for get) | |
| name | No | Iteration name (required for create) | |
| start_date | No | Start date in YYYY-MM-DD format (optional, for create) | |
| finish_date | No | Finish date in YYYY-MM-DD format (optional, for create) |
TDQS
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.
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.
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.
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.
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.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'get_metrics' | |
| project_key | No | Project name (required) | |
| work_item_id | No | Work item ID (required for get_metrics) |
TDQS
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.
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.
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.
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.
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.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action 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_key | No | Project name (required) | |
| pipeline_id | No | Pipeline ID (required for get, list_runs, trigger, get_logs, get_log) | |
| run_id | No | Run ID (required for get_run, get_logs, get_log) | |
| log_id | No | Log ID (required for get_log) | |
| build_id | No | Build ID (required for get_build_changes) | |
| branch | No | Branch name to run pipeline on (for trigger) | |
| top | No | Max results to return | |
| group_id | No | Variable group ID (required for get_variable_group) |
TDQS
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.
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.
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.
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.
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.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'list', 'get', 'list_teams', 'get_team', 'create' | |
| project_key | No | Project name or ID (required for get, list_teams) | |
| team_id | No | Team name or ID (required for get_team) | |
| name | No | Project name (required for create) | |
| description | No | Project description (for create) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only 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.
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.
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.
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.
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.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'list', 'get', 'create', 'update', 'add_comment', 'list_comments', 'vote', 'list_reviewers', 'update_reviewers', 'create_thread', 'update_thread', 'reply_to_comment' | |
| project_key | No | Project name | |
| repo_id | No | Repository name or ID (required for most actions) | |
| pr_id | No | Pull request ID (required for get, update, add_comment, list_comments, vote, list_reviewers) | |
| status | No | Filter by status: active, completed, abandoned, all (for list) | |
| top | No | Max results to return | |
| title | No | PR title (required for create) | |
| description | No | PR description (for create, update) | |
| source_branch | No | Source branch name (required for create) | |
| target_branch | No | Target branch name (required for create) | |
| is_draft | No | Create as draft PR (for create) | |
| comment | No | Comment content (for add_comment, create_thread, reply_to_comment) | |
| reviewer_id | No | Reviewer ID (for vote) | |
| vote | No | Vote: 10=approved, 5=approved with suggestions, 0=no vote, -5=waiting, -10=rejected | |
| reviewer_ids | No | Comma-separated reviewer IDs (for update_reviewers) | |
| thread_id | No | Thread ID (for update_thread, reply_to_comment) | |
| file_path | No | File path for inline comment (for create_thread) | |
| line | No | Line number for inline comment (for create_thread) |
TDQS
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.
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.
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.
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.
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.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'list', 'get', 'list_branches', 'get_file', 'get_tree', 'create_branch', 'search_commits', 'list_policies', 'list_tags', 'create_tag' | |
| project_key | No | Project name (required for most actions) | |
| repo_id | No | Repository name or ID (required for get, list_branches, get_file, get_tree) | |
| file_path | No | File path within the repo (for get_file, get_tree) | |
| version | No | Branch name or commit SHA (for get_file) | |
| branch_name | No | New branch name (required for create_branch) | |
| source_branch | No | Source branch to create from (required for create_branch) | |
| author | No | Filter commits by author (for search_commits) | |
| from_date | No | Filter commits from this date (for search_commits) | |
| to_date | No | Filter commits to this date (for search_commits) | |
| tag_name | No | Tag name (required for create_tag) | |
| commit_sha | No | Commit SHA to tag (required for create_tag) |
TDQS
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.
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.
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.
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.
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.
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_searchB
Search Azure DevOps using WIQL, code search, work item search, or wiki search. Actions: 'wiql', 'code', 'work_items', 'wiki', 'get_query', 'run_query'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'wiql', 'code', 'work_items', 'wiki', 'get_query', 'run_query' | |
| project_key | No | Project name (optional, scopes search) | |
| query | No | WIQL query string (for wiql action) or search text (for code, work_items, wiki) | |
| query_id | No | Saved query ID or path (for get_query, run_query) | |
| top | No | Max results to return (default 25) | |
| fields | No | Fields to return for WIQL results |
TDQS
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 side effects, permissions, rate limits, or return behavior. The tool likely performs read-only operations, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief (one sentence plus a list), which is efficient. However, the list repeats schema information, and the structure could prioritize key information like supported search types.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema or annotations, and 6 parameters including multiple action types, the description lacks detail on result format, error handling, or usage nuances. A more complete description would aid agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no new meaning beyond the schema; it merely lists action values already described. It does not clarify parameter interactions or formatting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Azure DevOps using WIQL, code, work items, and wiki. It lists specific actions, making the purpose unambiguous. Sibling tools focus on managing specific resources (e.g., manage_work_items), so this tool's search role is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as when to choose 'code' over 'work_items'. No exclusions or cautionary notes are provided, leaving the agent without decision criteria.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'list_plans', 'create_plan', 'list_suites', 'create_suite', 'list_cases', 'get_test_results' | |
| project_key | No | Project name (required) | |
| plan_id | No | Test plan ID | |
| suite_id | No | Test suite ID | |
| parent_suite_id | No | Parent suite ID (for create_suite) | |
| build_id | No | Build ID (for get_test_results) | |
| name | No | Name (for create_plan, create_suite) | |
| iteration | No | Iteration path (for create_plan) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. 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.
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.
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.
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.
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.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'get_current', 'search' | |
| query | No | Search query - display name or email (for search) |
TDQS
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.
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.
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.
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.
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.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: 'list', 'get_page', 'list_pages', 'create_page', 'update_page', 'delete_page' | |
| project_key | No | Project name (required) | |
| wiki_id | No | Wiki name or ID (required for page operations) | |
| page_path | No | Wiki page path e.g. /Home or /Design/Architecture (required for page operations) | |
| content | No | Page content in Markdown (for create_page, update_page). Wiki is markdown-native. | |
| version | No | Page version for optimistic concurrency (for update_page) |
TDQS
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.
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.
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.
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.
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.
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'
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action 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_key | No | Project name (required for most actions) | |
| work_item_id | No | Work item ID (required for get, update, delete, add_comment, list_comments, get_links, get_history) | |
| work_item_ids | No | Work item IDs (for batch_get, max 200) | |
| work_item_type | No | Work item type: Task, Bug, User Story, Epic, Feature, Issue (required for create) | |
| title | No | Work item title (required for create) | |
| description | No | Work item description in HTML (for create, update) | |
| state | No | Work item state: New, Active, Closed, etc. (for update) | |
| assigned_to | No | Assignee display name or email (for create, update) | |
| area_path | No | Area path e.g. Project\Team (for create, update) | |
| iteration_path | No | Iteration path e.g. Project\Sprint 1 (for create, update) | |
| priority | No | Priority: 1=Critical, 2=High, 3=Medium, 4=Low (for create, update) | |
| parent_id | No | Parent work item ID to link (for create, add_children) | |
| tags | No | Semicolon-separated tags (for create, update) | |
| comment | No | Comment text in HTML (for add_comment, update_comment, add_artifact_link) | |
| comment_id | No | Comment ID (required for update_comment) | |
| query | No | WIQL query string (for 'list' action via WIQL) | |
| fields | No | Fields to return (for batch_get). Default: System.Title, System.State, System.AssignedTo | |
| top | No | Max results to return (for WIQL queries) | |
| target_id | No | Target work item ID (required for link) | |
| link_type | No | Link type name (for link, add_artifact_link), e.g. System.LinkTypes.Related, System.LinkTypes.Hierarchy-Forward | |
| relation_index | No | Relation index to remove (required for unlink) | |
| artifact_uri | No | Artifact URI for artifact links (required for add_artifact_link), e.g. vstfs:///Git/Commit/{projectId}%2F{repoId}%2F{commitId} | |
| titles | No | List of titles for child work items (required for add_children) | |
| team | No | Team name (optional, scopes iteration_items to a specific team) | |
| iteration_id | No | Iteration ID (required for iteration_items) | |
| include_completed | No | Include completed/closed work items (for my_items, default false) |
TDQS
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.
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.
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.
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.
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.
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.
14 tool updates
- First observed
manage_advanced_security - First observed
manage_attachments - First observed
manage_boards - First observed
manage_iterations - First observed
manage_metrics - First observed
manage_pipelines - First observed
manage_projects - First observed
manage_pull_requests - First observed
manage_repos - First observed
manage_search - First observed
manage_test_plans - First observed
manage_users - First observed
manage_wiki - First observed
manage_work_items
TDQS
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.
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.
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.
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
Go MCP server for GitLab: 2 dynamic tools reach 1000+ REST/GraphQL actions. Free/CE, no paid tier.
327 dev tools via REST API and MCP. Generate Dockerfiles, schemas, K8s, APIs, and more.
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Related MCP Servers
- AlicenseBqualityCmaintenanceJira CLI & MCP Server — dual-mode Go binary for Jira Cloud with 9 tools, 4 prompts, permission introspection, and dev-status API.101Apache 2.0
- AlicenseBqualityCmaintenanceConfluence CLI & MCP Server — dual-mode Go binary for Confluence Cloud with 7 tools, folder CRUD, page diff, and write gating.81Apache 2.0
- AlicenseAqualityCmaintenanceAn MCP server that exposes 41 Azure DevOps tools to AI assistants, enabling management of pipelines, repositories, pull requests, releases, work items, test management, and wikis through natural language.41MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that provides tools to interact with Azure DevOps, including querying work items, repositories, pull requests, builds, commits, and creating work items via a standardized interface.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zach-snell/adtk'
If you have feedback or need assistance with the MCP directory API, please join our Discord server