Azure DevOps MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AZURE_DEVOPS_PAT | No | Personal Access Token (required in PAT mode) | |
| AZURE_DEVOPS_BASE_URL | No | REST API base URL | https://dev.azure.com |
| AZURE_DEVOPS_AUTH_MODE | No | Authentication mode: `pat` or `azcli` | pat |
| AZURE_DEVOPS_API_VERSION | No | REST API version | 7.1 |
| AZURE_DEVOPS_RETRY_COUNT | No | Retry count for retryable reads | 2 |
| AZURE_DEVOPS_ORGANIZATION | No | Organization name or Azure DevOps URL | |
| AZURE_DEVOPS_MAX_DIFF_LINES | No | Maximum diff lines returned by a tool call | 5000 |
| AZURE_DEVOPS_DEFAULT_PROJECT | No | Project used when a tool omits `project` | |
| AZURE_DEVOPS_ENABLE_WRITE_TOOLS | No | Enable guarded mutations (true/false) | false |
| AZURE_DEVOPS_REQUEST_TIMEOUT_MS | No | Per-request timeout in milliseconds | 30000 |
| AZURE_DEVOPS_MAX_DIFF_FILE_BYTES | No | Per-side file size limit for local diff generation | 1048576 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_azure_devops_authA | Verify authentication and optional project access without exposing credentials. |
| list_projectsB | List projects in the configured Azure DevOps organization. |
| list_repositoriesB | List Azure Repos Git repositories in a project. |
| get_repositoryB | Get Azure Repos repository metadata. |
| get_clone_linksB | Return HTTPS, SSH, and web URLs for an Azure Repos repository. |
| list_branchesC | List branches in an Azure Repos repository. |
| get_work_itemA | Get one Azure Boards work item by ID, including all fields and relations by default. |
| query_work_itemsA | Run a read-only WIQL SELECT query and resolve matching Azure Boards work item details. |
| get_work_item_commentsC | List pageable comments for one Azure Boards work item. |
| create_work_itemA | Create an Azure Boards work item with standard or custom fields. Requires write tools and confirm=true. |
| update_work_itemA | Update state, assignee, tags, sprint, area, or custom fields on an Azure Boards item. Optional revision check prevents stale writes. |
| add_work_item_relationA | Link two work items as parent, child, related, dependency, or duplicate. Requires write tools and confirm=true. |
| add_work_item_attachmentA | Upload a base64 file up to 10 MiB and attach it to a work item. Requires write tools and confirm=true. |
| list_pull_requestsB | List Azure Repos pull requests in a repository or project. |
| get_pull_requestB | Get one Azure Repos pull request with commits and linked work item references. |
| get_pull_request_by_urlB | Parse an Azure DevOps pull request URL and retrieve the pull request. |
| get_pull_request_commitsC | List commits included in a pull request. |
| list_commitsB | List repository commits, optionally scoped to a branch, tag, or commit. |
| get_pull_request_threadsC | List top-level and inline comment threads on a pull request. |
| get_pull_request_thread_commentsA | List comments inside one pull request thread. |
| get_pull_request_work_itemsB | Get work items directly linked to a pull request. |
| get_pull_request_iterationsB | List reviewable iterations created by pushes to a pull request. |
| get_pull_request_reviewersA | List pull request reviewers and their current votes. |
| get_pull_request_changed_filesB | Return changed files and locally computed line statistics for a pull request iteration. |
| get_pull_request_diff_statsC | Return aggregate additions, deletions, file counts, and largest changed files. |
| get_pull_request_diffC | Build and return a unified diff for an Azure Repos pull request. |
| get_pull_request_file_diffB | Return the locally generated unified diff for one file in a pull request. |
| validate_inline_comment_targetA | Dry-run an inline comment path and line range against the current pull request iteration. |
| get_pull_request_review_contextA | Return PR metadata, diff summary, unified diff, commits, threads, reviewers, and linked work items in one review bundle. |
| add_work_item_commentA | Add a Markdown or HTML comment to an Azure Boards work item. Requires write tools and confirm=true. |
| update_work_item_commentA | Replace the text of an Azure Boards work item comment. Azure DevOps author and permission rules apply. Requires write tools and confirm=true. |
| delete_work_item_commentA | Soft-delete an Azure Boards work item comment. Azure DevOps author and permission rules apply. Requires write tools and confirm=true. |
| create_pull_requestB | Create a same-repository Azure Repos pull request. Requires write tools and confirm=true. |
| complete_pull_requestA | Merge an active, non-draft PR without bypassing policies. Requires the reviewed source commit, write tools, and confirm=true. |
| create_pull_request_commentA | Create a top-level pull request comment. Requires write tools and confirm=true. |
| create_pull_request_inline_commentB | Validate and create a file/line comment on the current pull request iteration. Requires write tools and confirm=true. |
| reply_to_pull_request_threadA | Reply inside an existing pull request comment thread. Requires write tools and confirm=true. |
| update_pull_request_commentA | Replace a top-level or reply comment inside a pull request thread. Azure DevOps author and permission rules apply. Requires write tools and confirm=true. |
| delete_pull_request_commentA | Soft-delete a top-level or reply comment inside a pull request thread. Azure DevOps author and permission rules apply. Requires write tools and confirm=true. |
| update_pull_request_thread_statusB | Resolve, reactivate, close, or otherwise update a pull request thread. Requires write tools and confirm=true. |
| set_pull_request_voteB | Set the authenticated user's Azure DevOps pull request vote. Requires write tools and confirm=true. |
| request_pull_request_changesA | Set the authenticated user's Azure DevOps vote to waitForAuthor (-5). Requires write tools and confirm=true. |
| update_pull_requestA | Change PR title, description, draft state, or active/abandoned status. Completion is handled by complete_pull_request. |
| set_pull_request_auto_completeC | Enable or disable policy-respecting PR auto-complete. Policy bypass is always false. |
| manage_pull_request_reviewerC | Add or remove a PR reviewer by Azure DevOps identity ID. |
| list_pull_request_labelsB | List labels applied to a pull request. |
| manage_pull_request_labelC | Add or remove a pull request label. |
| create_branchB | Create a branch at an exact source commit, failing safely if the branch already exists. |
| delete_branchA | Delete a branch only if it still points at the exact expected commit. |
| compare_branchesC | Compare two branches and return ahead/behind counts, common commit, and changed items. |
| list_stale_branchesB | Find branches whose latest commit is older than a configured age; main, master, and develop are protected by default. |
| list_pipelinesC | List Azure Pipelines definitions in a project. |
| list_pipeline_runsC | List runs for one Azure Pipeline. |
| get_pipeline_runC | Get one Azure Pipeline run and its current state/result. |
| run_pipelineB | Queue or preview an Azure Pipeline run with optional branch, variables, parameters, and skipped stages. |
| rerun_pipelineA | Queue a full rerun using the resolved resources of a previous run. Azure REST does not expose failed-job-only rerun here. |
| get_pipeline_run_logsC | List log records for a pipeline run or fetch one bounded plain-text log. |
| list_buildsC | List and filter Azure Pipeline build records for status, result, repository, definition, or branch. |
| list_team_iterationsB | List current, past, future, or all sprint iterations for a team. |
| get_iteration_work_itemsB | Get work items assigned to a team iteration/sprint. |
| get_team_capacityB | Get per-team-member sprint capacity, activities, and days off. |
| get_iteration_velocityB | Calculate delivered item and story-point totals for a sprint using configurable point field and completed states. |
| reorder_backlog_work_itemsA | Move or reorder work items in a team backlog using adjacent or parent IDs. Requires write tools and confirm=true. |
| get_pull_request_merge_readinessB | Evaluate draft/status, mergeability, votes, unresolved threads, policies, and PR status checks without merging. |
| get_batch_pull_request_review_summaryA | Summarize votes and unresolved threads across up to 50 pull requests. |
| get_stale_repository_reportC | Report old branches and open pull requests using a shared age threshold. |
| get_work_item_delivery_traceA | Trace a work item to linked pull requests, commits, builds, branches, and related work items. |
| get_work_item_audit_historyC | List revision updates and field/relation changes for a work item. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 68 tools
Most tools are clearly separated by resource (work items, PRs, pipelines, repos, iterations) and action. Some potential confusion exists among PR comment tools (create_pull_request_comment, create_pull_request_inline_comment, reply_to_pull_request_thread, update_pull_request_comment) and between get_pull_request_diff and get_pull_request_file_diff, but descriptions are specific enough to disambiguate.
The naming convention is predominantly verb_noun (e.g., list_projects, create_work_item, get_pull_request), with consistent snake_case. Minor deviations exist: check_azure_devops_auth, validate_inline_comment_target, and get_batch_pull_request_review_summary are more descriptive phrases, but they still follow the same general style.
68 tools is high for a single server, but Azure DevOps is a broad platform covering Boards, Repos, Pipelines, and PR workflows. The count feels heavy and could overwhelm agents, though each tool addresses a distinct need within the domain.
The tool surface is remarkably comprehensive: work item CRUD plus comments, relations, attachments, audit history; PR creation, review, comments, threads, votes, labels, reviewers, merge readiness; repo/branch management; pipeline runs and logs; iteration/backlog planning. There are no obvious dead ends for core Azure DevOps workflows.