Microsoft's server for Azure DevOps boards, repos, pipelines, wikis and test plans.
- Started in our test
- ★ 2.1K GitHub stars
- Last commit 23 Oct 2026
At a glance
Microsoft maintains this server for Azure DevOps. The model can list projects and teams, read and update work items, look at iterations and team capacity, browse repositories and pull requests, check and start pipeline runs, read and write wiki pages, search code and work items, and work with test plans and Advanced Security alerts.
There are two versions. Microsoft now recommends its hosted server at mcp.dev.azure.com, which needs no install and gets new tools first; this local npx package remains supported for clients that need stdio. Both need a work or school account backed by Microsoft Entra ID, since personal Microsoft accounts are not supported.
- Made by
- Microsoft
- Licence
- MIT
- Latest version
- 2.11.0 (22 Oct 2026)
- npm package
- @azure-devops/mcp
- GitHub stars
- 2.1K
- Last commit
- 23 Oct 2026
- Tools
- 44
- Runs on
- Your computer or hosted
Our check: We ran this exact config on 27 Oct 2026: it started and answered with 44 tools. The shared database gave only the hosted address with a placeholder bearer token. The hosted server signs in with your Microsoft account, and the local package is @azure-devops/mcp on npm.
What's in the pod: its tools
We found 44 tools when we started it on 27 Oct 2026. 25 only read. The rest can change things, so keep your app's "ask before each tool call" setting on for them.
Runs commands1 tool · Can start programs or run code.
| Tool | What it is for |
|---|---|
pipelines_run | Lists and reads pipeline runs. |
Changes things18 tools · Can create, edit, send or delete.
| Tool | What it is for |
|---|---|
pipelines_artifact | Lists and downloads build artifacts. |
pipelines_write | Queues runs, creates and renames YAML pipelines, and cancels, retries or runs a stage of a running build. |
repo_create_branch | Creates a branch. |
repo_file_write | Creates or updates a text file on a branch and commits it. |
repo_pull_request_thread_write | Replies to, opens and resolves pull request comment threads. |
repo_pull_request_write | Creates and updates pull requests: reviewers, votes, status and auto-complete. |
testplan_test_case_write | Creates and updates test cases. |
testplan_test_plan_write | Creates test plans. |
testplan_test_suite_write | Creates test suites and adds test cases to them. |
wiki_upsert_page | Creates or updates a wiki page. |
wit_backlog | Reads backlogs and reorders the items on them. |
wit_work_item_attachment_link | Links an uploaded attachment to a work item. |
wit_work_item_attachment_upload | Uploads a file to attach to a work item. |
wit_work_item_comment_write | Adds or edits comments on a work item. |
wit_work_item_link_write | Links work items to each other, to pull requests or to commits. |
wit_work_item_write | Creates and updates work items, singly or in batches, including child items. |
work_capacity_write | Updates a team member's capacity for an iteration. |
work_iteration_write | Creates iterations or assigns them to a team. |
Only reads25 tools · Looks things up and changes nothing.
| Tool | What it is for |
|---|---|
advsec_get_alert_details | Reads one Advanced Security alert in detail. |
advsec_get_alerts | Lists Advanced Security alerts for a repository. |
core_get_identity_ids | Looks up people's identity IDs from a name or email. |
core_list_project_teams | Lists the teams in a project. |
core_list_projects | Lists the projects in your organization. |
pipelines_build | Lists builds and reads their status and changes. |
pipelines_build_log | Reads build logs, whole or by line range. |
pipelines_definition | Lists and reads pipeline definitions. |
repo_branch | Lists and reads branches. |
repo_file | Reads files and folders from a repository. |
repo_pull_request | Lists pull requests in a repository or reads one, with changed files if asked. |
repo_pull_request_org | Lists your active pull requests, or those waiting on your review, across the organization. |
repo_pull_request_thread | Reads pull request comment threads. |
repo_repository | Lists repositories or reads one. |
repo_search_commits | Searches commits by text, author, date or branch. |
search_code | Searches code across repositories. |
search_wiki | Searches wiki pages. |
search_workitem | Searches work items by text and filters. |
testplan | Reads test plans, suites and cases. |
testplan_show_test_results_from_build_id | Reads the test results of a build, filtered by outcome. |
wiki | Lists wikis and pages and reads page content. |
wit_query | Runs saved work item queries or WIQL. |
wit_work_item | Reads work items: one or many by ID, yours, their comments, history or those in an iteration. |
wit_work_item_attachment | Downloads a work item attachment. |
work | Reads iterations, team settings and team capacity. |
Grouped and described by us. The README on GitHub lists the inputs each tool takes.
How clearly it describes its tools to your assistant
- Tools with a description
- 44 of 44
- Say if they change things
- 44 of 44
- Context it takes, at least
- ~3,500 tokens
Every tool says whether it only reads or can change things, so a client can ask before the risky ones.
From the tool list it sent us. The token figure counts names, descriptions and input names; the full schemas your client loads add more.
Set it up
Pick your app for the exact snippet and where it goes.
Where it goes: claude_desktop_config.json (Settings → Developer → Edit Config)
{
"mcpServers": {
"azure-devops": {
"command": "npx",
"args": [
"-y",
"@azure-devops/mcp",
"YOUR_ORGANIZATION"
]
}
}
}Where it goes: Your terminal, in the project folder
claude mcp add-json azure-devops '{"command":"npx","args":["-y","@azure-devops/mcp","YOUR_ORGANIZATION"]}'Where it goes: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
"mcpServers": {
"azure-devops": {
"command": "npx",
"args": [
"-y",
"@azure-devops/mcp",
"YOUR_ORGANIZATION"
]
}
}
}Where it goes: .vscode/mcp.json in your project
{
"servers": {
"azure-devops": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@azure-devops/mcp",
"YOUR_ORGANIZATION"
]
}
}
}Where it goes: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"azure-devops": {
"command": "npx",
"args": [
"-y",
"@azure-devops/mcp",
"YOUR_ORGANIZATION"
]
}
}
}Where it goes: Not supported
ChatGPT only connects to remote servers by URL. This one runs on your computer, so use Claude, Cursor or VS Code.
Replace YOUR_ORGANIZATION with the name in your dev.azure.com address. Add "-d", "core", "work", "work-items" to load only some tool groups. It signs in through a browser by default; use "--authentication", "azcli" or "pat" on machines without one.
Remote option
Microsoft's recommended hosted server, in preview. Replace the last part with your organization name and sign in with your Microsoft account.
https://mcp.dev.azure.com/YOUR_ORGANIZATIONNew to this? See the setup guides for Claude Code, Cursor, Claude Desktop and ChatGPT.
Settings
Names are exactly as the project spells them. Required ones are marked.
| Setting | What it does |
|---|---|
{organization}Config · required | Your organization name, the part after dev.azure.com/, as the first argument.contoso |
-d / --domainsCommand line flag | Loads only some tool groups: core, work, work-items, search, test-plans, repositories, wiki, pipelines and advanced-security. Always include core.-d core work work-items |
-a / --authenticationCommand line flag | How to sign in: interactive (browser, the default), azcli, env (Azure credential chain), envvar or pat.--authentication azcli |
-t / --tenantCommand line flag | The Entra tenant ID to sign in to, for people with access to several tenants. |
ADO_MCP_AUTH_TOKENEnvironment variable | A bearer token, used with --authentication envvar. |
PERSONAL_ACCESS_TOKENEnvironment variable | The base64 of email:PAT, used with --authentication pat. |
ado_mcp_project / ado_mcp_teamEnvironment variable | A default project and team, so tools do not ask each time.Contoso |
What it can touch
It can read
- Projects, teams, work items, backlogs and iterations
- Repositories, branches, commits and pull requests
- Pipelines, builds, logs, test plans, wikis and security alerts
It can change
- Work items, comments, links and attachments
- Pull requests, review threads, branches and committed files
- Pipeline runs, iterations, capacity, wiki pages and test plans
Safer setup: Load only the domains you need with -d, and sign in as an account whose Azure DevOps permissions match what you want the model to do.
Before you start
- An Azure DevOps organization
- A Microsoft Entra ID work or school account
- Node.js 20 or newer, for the local version
If it does not work
- Sign-in hangs in WSL, SSH sessions, containers or CI
- The default browser sign-in needs a browser. Use --authentication azcli after az login, or envvar or pat with a token.
- TF400813: the user is not authorized
- You are probably signed in to the wrong tenant. Pass --tenant with your organization's tenant ID.
- A personal Microsoft account is rejected
- Only Entra ID work or school accounts are supported.
- The client warns about too many tools
- Pass -d with only the domains you need, such as core work work-items.
Peas in a pod: similar servers
How Azure DevOps MCP lines up against other cloud and operations servers on the shelf.
| Server | Tools | Runs on | Licence | Stars |
|---|---|---|---|---|
| Azure DevOps MCP | 44 | Your computer or hosted | MIT | 2.1K |
| AWS Knowledge MCP Server | 5 | Hosted | – | 9.8K |
| Cloudflare MCP Servers | 2 | Hosted | – | 4.4K |
| Grafana MCP | 62 | Your computer | Apache-2.0 | 3.6K |
Questions
Local or remote server?
Microsoft recommends the hosted server at mcp.dev.azure.com/{organization}; it needs no install and will eventually replace the local one. Use this package when you need stdio.
Are personal access tokens supported?
Yes, with --authentication pat and PERSONAL_ACCESS_TOKEN set to the base64 of email:token.
Does it work with Azure DevOps Server on-premises?
No. It supports only Azure DevOps Services, and Microsoft says it has no plans for on-premises support.
What does it cost?
The server is free and MIT licensed. It works within your existing Azure DevOps licences.
Something wrong on this page? Tell us.
