Azure DevOps MCP server
Gives Copilot live context from Azure DevOps: the work item you are implementing, the PR you are reviewing, the build that failed, the wiki page with the design. The catalog's custom agents (ADO Planner, Story Writer, Code Reviewer, Release Notes …) use it through the server name ado.
This uses Microsoft's remote (hosted) server — nothing to install, and you sign in with your Microsoft Entra work account.
Set up in VS Code
- Save
mcp.jsonfrom this page as.vscode/mcp.jsonin your repository (or merge theadoentry into an existing file). - Replace
{organization}with your Azure DevOps organization name — the part afterdev.azure.com/in your Azure DevOps URL. - Open Copilot Chat in Agent mode. When prompted, sign in with your work account.
- Try: "List my assigned work items" or "Summarise work item 1234 and its acceptance criteria."
Keep the server name ado — the catalog's agents reference its tools as ado/*.
Visual Studio 2022+: add the same URL under your MCP server settings. Copilot CLI and the GitHub Copilot app are also supported by the remote server.
Set up in Claude Code
Claude Code uses Microsoft's local Azure DevOps MCP server (it runs through npx and needs Node.js 20+). The hosted server also works with Claude Code, but only after an admin creates a Microsoft Entra app registration for it.
- Save the Claude Code config from this page as
.mcp.jsonin your repository root (or merge theadoentry into an existing file). - Replace
{organization}with your Azure DevOps organization name. - Start
claudeand approve the project MCP server when asked. The first Azure DevOps call opens a browser window to sign in with your work account. - Try: "List my assigned work items."
Or add it for just yourself with one command:
claude mcp add --transport stdio ado -- npx -y @azure-devops/mcp {organization} -d core work-items repositories pipelines wiki test-plans
Keep the server name ado — the catalog's Claude Code subagents reference its tools as mcp__ado. The local server has no read-only switch; Claude Code asks for your permission before each tool call unless you allow it, so leave write tools (creating work items, commenting on PRs, queuing pipelines) on "ask".
What it can access
| Toolset | What Copilot can read |
|---|---|
wit |
Work items, queries, backlogs, comments, work item search |
repos |
Repositories, branches, pull requests and their comment threads, files, code search |
pipelines |
Pipeline definitions, runs, builds, build logs, artifacts |
wiki |
Wiki pages and wiki search |
testplan |
Test plans, suites, cases and test results |
Other toolsets exist (work for iterations and capacity, advsec for Advanced Security alerts). Add them to X-MCP-Toolsets when a team needs them.
Read-only by default
X-MCP-Readonly: true means Copilot can read Azure DevOps but cannot create or change anything. That is the right default for everyday coding.
Teams that want Copilot to create work items, comment on PRs or queue pipelines (for example with the Story Writer agent) can remove that header in their own copy:
{
"servers": {
"ado": {
"type": "http",
"url": "https://mcp.dev.azure.com/{organization}",
"headers": { "X-MCP-Toolsets": "wit,repos,pipelines,wiki,testplan" }
}
},
"inputs": []
}
Copilot still asks for confirmation before running tools that change data. Everything it does runs with your permissions — it can never see or change more than you can.
Requirements and troubleshooting
- The Azure DevOps organization must be connected to Microsoft Entra ID (the normal setup for company organizations).
- Connection refused: the network or proxy must allow outbound HTTPS to
mcp.dev.azure.com. - No data returned: check you have access to that project in Azure DevOps.
- Tools missing: check the
X-MCP-Toolsetsvalue and reconnect the server from the MCP view.
The local server also suits other tools that cannot use Entra sign-in with the hosted server. See Microsoft's documentation: remote server · overview and local server.