Azure DevOps MCP Server
Official Microsoft MCP server for Azure DevOps: repos, work items, pipelines, test plans, wikis, and advanced security with remote-first onboarding.
The Azure DevOps MCP Server is Microsoft's official integration that brings Azure DevOps context into AI agents. It acts as a thin abstraction layer over the Azure DevOps REST APIs, exposing projects, repositories, work items, pipelines, test plans, wikis, and Advanced Security alerts as MCP tools. Microsoft offers both a remote, hosted server at https://mcp.dev.azure.com/{organization} (the recommended path) and a local stdio server distributed as the @azure-devops/mcp npm package.
The server covers the full work item lifecycle (create, update, batch updates, comments, revisions, WIQL queries, backlogs, iterations, and team capacity), repository operations (branches, commits, pull requests, reviews, threads, file content), pipelines (build definitions, runs, logs, artifacts, stage control), test plans and suites, wiki authoring, and code/work item/wiki search. It authenticates via Microsoft account (browser-based sign-in for remote) or Azure CLI credentials for local use.
Notable as the canonical, Microsoft-maintained MCP for Azure DevOps. The README explicitly recommends the remote server, noting that future investment focuses on the remote experience and that the remote server will eventually replace the local one. Supported clients include VS Code with GitHub Copilot, Visual Studio 2022, Claude Code, Cursor, Opencode, and Kilocode.
Tools
| Tool | Description |
|---|---|
core_list_projects |
List all projects in the Azure DevOps organization. |
core_list_project_teams |
List teams within a project. |
core_get_identity_ids |
Retrieve identity IDs by search filter. |
work_list_iterations |
List all iterations in a project. |
work_create_iterations |
Create new iterations in a project. |
work_list_team_iterations |
Retrieve iterations for a specific team. |
work_assign_iterations |
Assign iterations to a team. |
work_get_iteration_capacities |
Get capacity for all teams in an iteration. |
work_get_team_capacity |
Get capacity for a specific team in an iteration. |
work_update_team_capacity |
Update team member capacity for an iteration. |
work_get_team_settings |
Get team settings including default iteration and area. |
wit_get_work_item |
Retrieve a work item by ID. |
wit_get_work_items_batch_by_ids |
Retrieve multiple work items by IDs. |
wit_create_work_item |
Create a new work item. |
wit_update_work_item |
Update fields of a work item. |
wit_update_work_items_batch |
Update multiple work items in batch. |
wit_add_child_work_items |
Create child work items under a parent. |
wit_work_items_link |
Link work items together. |
wit_work_item_unlink |
Remove links from a work item. |
wit_add_artifact_link |
Link artifacts (commits, builds, PRs) to work items. |
wit_link_work_item_to_pull_request |
Link a work item to a pull request. |
wit_list_work_item_comments |
List comments on a work item. |
wit_add_work_item_comment |
Add a comment to a work item. |
wit_update_work_item_comment |
Update an existing comment on a work item. |
wit_list_work_item_revisions |
Get revision history of a work item. |
wit_get_work_item_type |
Get details of a work item type. |
wit_my_work_items |
List work items relevant to the current user. |
wit_get_work_items_for_iteration |
Get work items in a specific iteration. |
wit_list_backlogs |
List backlogs for a team. |
wit_list_backlog_work_items |
Get work items in a backlog. |
wit_get_query |
Get a work item query by ID or path. |
wit_get_query_results_by_id |
Execute a query and get results. |
wit_query_by_wiql |
Execute a WIQL query and return matching work items. |
wit_get_work_item_attachment |
Download a work item attachment. |
search_code |
Search for code across repositories. |
search_wiki |
Search wiki pages by keywords. |
search_workitem |
Search work items by text and filters. |
testplan_list_test_plans |
List test plans in a project. |
testplan_create_test_plan |
Create a new test plan. |
testplan_list_test_suites |
List test suites in a test plan. |
testplan_create_test_suite |
Create a test suite within a test plan. |
testplan_add_test_cases_to_suite |
Add test cases to a test suite. |
testplan_list_test_cases |
List test cases in a test suite. |
testplan_create_test_case |
Create a new test case work item. |
testplan_update_test_case_steps |
Update steps of an existing test case. |
testplan_show_test_results_from_build_id |
Get test results for a specific build. |
repo_list_repos_by_project |
List all repositories in a project. |
repo_get_repo_by_name_or_id |
Get repository details by name or ID. |
repo_list_branches_by_repo |
List all branches in a repository. |
repo_list_my_branches_by_repo |
List branches created by the current user. |
repo_get_branch_by_name |
Get details of a specific branch. |
repo_create_branch |
Create a new branch from a source branch. |
repo_search_commits |
Search for commits with comprehensive filters. |
repo_list_pull_requests_by_repo_or_project |
List pull requests with optional filters. |
repo_list_pull_requests_by_commits |
Find pull requests containing specific commits. |
repo_get_pull_request_by_id |
Get details of a specific pull request. |
repo_get_pull_request_changes |
Get file changes (diff) for a pull request. |
repo_create_pull_request |
Create a new pull request. |
repo_update_pull_request |
Update pull request properties and settings. |
repo_update_pull_request_reviewers |
Add or remove reviewers from a pull request. |
repo_vote_pull_request |
Cast a vote on a pull request. |
repo_list_pull_request_threads |
List comment threads on a pull request. |
repo_list_pull_request_thread_comments |
List comments in a specific thread. |
repo_create_pull_request_thread |
Create a new comment thread on a pull request. |
repo_update_pull_request_thread |
Update an existing pull request comment thread. |
repo_reply_to_comment |
Reply to a pull request comment. |
repo_list_directory |
List files and folders in a directory. |
repo_get_file_content |
Get file content at a specific version. |
wiki_list_wikis |
List wikis in an organization or project. |
wiki_get_wiki |
Get details of a specific wiki. |
wiki_list_pages |
List pages in a wiki. |
wiki_get_page |
Get wiki page metadata without content. |
wiki_get_page_content |
Retrieve wiki page content. |
wiki_create_or_update_page |
Create or update a wiki page. |
pipelines_create_pipeline |
Create a new pipeline with YAML configuration. |
pipelines_get_builds |
Retrieve a list of builds with optional filters. |
pipelines_get_build_status |
Get the status of a specific build. |
pipelines_get_build_log |
Retrieve complete logs for a build. |
pipelines_get_build_log_by_id |
Get a specific build log by log ID. |
pipelines_get_build_changes |
Get changes (commits) associated with a build. |
pipelines_get_build_definitions |
List build/pipeline definitions in a project. |
pipelines_get_build_definition_revisions |
Get revision history of a build definition. |
pipelines_run_pipeline |
Start a new pipeline run with optional parameters. |
pipelines_get_run |
Get details of a specific pipeline run. |
pipelines_list_runs |
List recent runs for a pipeline. |
pipelines_update_build_stage |
Update a build stage (cancel, retry, or run). |
pipelines_list_artifacts |
List artifacts for a build. |
pipelines_download_artifact |
Download a pipeline artifact. |
advsec_get_alerts |
Retrieve Advanced Security alerts for a repository. |
advsec_get_alert_details |
Get detailed information about a specific security alert. |
Prerequisites
- An Azure DevOps organization and access with a Microsoft account
- Node.js 20+ (for the local server)
- An MCP-compatible client (VS Code + GitHub Copilot, Visual Studio 2022, Claude Code, Cursor, Opencode, or Kilocode)
Option 1: Remote server (recommended)
Microsoft hosts the server at https://mcp.dev.azure.com/{organization}. Authentication is browser-based using the Microsoft account that has access to your Azure DevOps organization.
Add this to your MCP client config (replace {organization} with your Azure DevOps org name):
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http"
}
}
}
Option 2: Local server (stdio)
Run via npx with your Azure DevOps organization name as the argument. Authentication uses Azure CLI credentials (az login).
{
"inputs": [
{ "id": "ado_org", "type": "promptString", "description": "Azure DevOps organization name" }
],
"servers": {
"ado": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@azure-devops/mcp", "${input:ado_org}"]
}
}
}
Microsoft notes that the remote server will eventually replace the local server, and future investment is focused on the remote experience.
- Triage and update sprint work: query the current iteration via WIQL, bulk-update assignees or states, and add comments without leaving the chat.
- Drive code review from an agent: list open pull requests, fetch diffs, post review threads, add reviewers, and cast votes.
- Automate release diagnostics: pull build logs, get failed stage details, retry stages, and correlate commits to failing tests.
- Generate and maintain wiki documentation: search existing pages, fetch content, and create or update pages from agent-generated drafts.
- Investigate Advanced Security alerts: list alerts for a repo, fetch alert details, and link findings back to work items for remediation.
- "Show all active bugs assigned to me in the Contoso project and add a comment asking for a repro on the three oldest."
- "List the last 10 failed builds for the
web-apppipeline and summarize the common failure reasons from their logs." - "Create a pull request from
feature/login-refactorintomaintitled 'Refactor login flow', add @alice as a required reviewer, and link work item 4821." - "Run a WIQL query for all User Stories in iteration 'Sprint 42' that have no acceptance criteria, then update them with a placeholder."
- "Fetch the Advanced Security alerts for the
apirepository and create a Task work item for each high-severity finding."
- Official Microsoft-maintained server with comprehensive coverage across Boards, Repos, Pipelines, Test Plans, Wiki, and Advanced Security.
- Hosted remote endpoint (
https://mcp.dev.azure.com/{organization}) means zero local setup and browser-based Microsoft sign-in. - Broad client support: VS Code + GitHub Copilot, Visual Studio 2022, Claude Code, Cursor, Opencode, and Kilocode.
- Open-source under MIT, so the tool surface and behavior are inspectable in the GitHub repo.
- Some tools are exposed only on the local server during rollout; the README notes the remote server will eventually supersede the local one but is still in transition.
- The local stdio path requires Node.js 20+ and Azure CLI authentication, which is heavier than the remote option.
- Tool surface is large and Azure DevOps-specific; agents may need careful prompting to choose the right tool among 80+ options.
- GitHub MCP Server (
github/github-mcp-server) for teams on GitHub instead of Azure Repos and Actions instead of Azure Pipelines. - GitLab MCP server for GitLab-hosted repos, issues, and CI.
- Community Azure DevOps MCP implementations on npm/GitHub that predate Microsoft's official server (less complete and unmaintained).