Azure DevOps logo

Azure DevOps

OrganizationPopular
microsoft

The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.

Publishermicrosoft
Repositoryazure-devops-mcp
LanguageTypeScript
Forks
547
Stars
1.7K
Available tools
77
Transport typestdio
Categories
LicenseMIT
Links
  • Connect tools to AI workflows

    Azure DevOps exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 77 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    1.7K stars and 547 forks from the linked repository.

⭐ Azure DevOps MCP Server

[!IMPORTANT] The Azure DevOps Remote MCP Server is now available in public preview for all organizations. We recommend migrating to the Remote MCP Server going forward.

Learn more

This project provides Azure DevOps MCP tooling for AI agents, with a remote-first onboarding experience and a local server option when you need it.

πŸ“„ Table of Contents

  1. πŸ“Ί Overview
  2. πŸ† Expectations
  3. πŸš€ Remote MCP Server (Recommended)
  4. βš™οΈ Supported Tools
  5. πŸ”Œ Local MCP Server Installation (Optional)
  6. 🌏 Using Domains (local)
  7. πŸ₯ Project and Team Defaults (local)
  8. πŸ“ Troubleshooting
  9. 🎩 Examples & Best Practices
  10. πŸ™‹β€β™€οΈ Frequently Asked Questions
  11. πŸ“Œ Contributing

πŸ“Ί Overview

The Azure DevOps MCP Server brings Azure DevOps context to your agents. Try prompts like:

  • "List my ADO projects"
  • "List ADO Builds for 'Contoso'"
  • "List ADO Repos for 'Contoso'"
  • "List test plans for 'Contoso'"
  • "List teams for project 'Contoso'"
  • "List iterations for project 'Contoso'"
  • "List my work items for project 'Contoso'"
  • "List work items in current iteration for 'Contoso' project and 'Contoso Team'"
  • "List all wikis in the 'Contoso' project"
  • "Create a wiki page '/Architecture/Overview' with content about system design"
  • "Update the wiki page '/Getting Started' with new onboarding instructions"
  • "Get the content of the wiki page '/API/Authentication' from the Documentation wiki"

πŸ† Expectations

The Azure DevOps MCP Server is built around tools that are concise, simple, focused, and easy to use, with each one designed for a specific scenario. We intentionally avoid creating complex tools that try to do too much. The goal is to provide a thin abstraction layer over the REST APIs that makes data access straightforward while allowing the language model to handle the more complex reasoning.

πŸš€ Remote MCP Server (Recommended)

The Azure DevOps Remote MCP Server is now available in public preview.

Over time, the Remote MCP Server will replace this local MCP Server. We will continue to support the local server for now, but future investments will primarily focus on the remote experience.

We encourage all users of the local MCP Server to begin migrating to the Remote MCP Server.

If you encounter issues with tools, need support, or have a feature request, you can report an issue using the Remote MCP Server issue template. During the preview period, we will track Remote MCP Server issues through this repository.

[!WARNING] Internal Microsoft users of the Remote MCP Server should not create issues in this repository. Please use the dedicated Teams channel instead.

For complete instructions, see the Remote MCP Server onboarding documentation.

Quick start with .vscode/mcp.json

Use this configuration to connect directly to the Azure DevOps-hosted endpoint using streamable HTTP transport:

json
{
  "servers": {
    "ado-remote-mcp": {
      "url": "https://mcp.dev.azure.com/{organization}",
      "type": "http"
    }
  },
  "inputs": []
}

See documentation for additional configuration options.

After saving .vscode/mcp.json, start the server from the MCP view in VS Code, then run a prompt like List ADO projects.

βš™οΈ Supported Tools

See the Available Tools documentation for the complete list of available remote tools.

For a comprehensive list of local tools, see TOOLSET.md.

πŸ”Œ Local MCP Server Installation (Optional)

[!IMPORTANT] Start with the Remote MCP Server first. Use the local MCP Server only if your scenario specifically requires a local stdio setup.

Use this section if you specifically need the local stdio server experience. For most users, start with the Remote MCP Server section above.

For the best experience, use Visual Studio Code and GitHub Copilot. See the getting started documentation to use our MCP Server with other tools such as Visual Studio 2022, Claude Code, Cursor, Opencode, and Kilocode.

Prerequisites

  1. Install VS Code or VS Code Insiders
  2. Install Node.js 20+
  3. Open VS Code in an empty folder

Installation

🧨 Install from Public Feed

This installation method is the easiest for all users of Visual Studio Code.

πŸŽ₯ Watch this quick start video to get up and running in under two minutes!

Steps

In your project, add a .vscode\mcp.json file with the following content:

json
{
  "inputs": [
    {
      "id": "ado_org",
      "type": "promptString",
      "description": "Azure DevOps organization name  (e.g. 'contoso')"
    }
  ],
  "servers": {
    "ado": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@azure-devops/mcp", "${input:ado_org}"]
    }
  }
}

πŸ”₯ To stay up to date with the latest features, you can use our nightly builds. Simply update your mcp.json configuration to use @azure-devops/mcp@next. Here is an updated example:

json
{
  "inputs": [
    {
      "id": "ado_org",
      "type": "promptString",
      "description": "Azure DevOps organization name  (e.g. 'contoso')"
    }
  ],
  "servers": {
    "ado": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@azure-devops/mcp@next", "${input:ado_org}"]
    }
  }
}

Save the file, then click 'Start'.

start mcp server

In chat, switch to Agent Mode.

Click "Select Tools" and choose the available tools.

configure mcp server tools

Open GitHub Copilot Chat and try a prompt like List ADO projects. The first time an ADO tool is executed browser will open prompting to login with your Microsoft account. Please ensure you are using credentials matching selected Azure DevOps organization.

πŸ’₯ We strongly recommend creating a .github\copilot-instructions.md in your project. This will enhance your experience using the Azure DevOps MCP Server with GitHub Copilot Chat. To start, just include "This project uses Azure DevOps. Always check to see if the Azure DevOps MCP server has a tool relevant to the user's request" in your copilot instructions file.

See the getting started documentation to use our MCP Server with other tools such as Visual Studio 2022, Claude Code, and Cursor.

🌏 Using Domains (local)

Azure DevOps exposes a large surface area. As a result, our Azure DevOps MCP Server includes many tools. To keep the toolset manageable, avoid confusing the model, and respect client limits on loaded tools, use Domains to load only the areas you need. Domains are named groups of related tools (for example: core, work, work-items, repositories, wiki). Add the -d argument and the domain names to the server args in your mcp.json to list the domains to enable.

For example, use "-d", "core", "work", "work-items" to load only Work Item related tools (see the example below).

json
{
  "inputs": [
    {
      "id": "ado_org",
      "type": "promptString",
      "description": "Azure DevOps organization name  (e.g. 'contoso')"
    }
  ],
  "servers": {
    "ado_with_filtered_domains": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@azure-devops/mcp", "${input:ado_org}", "-d", "core", "work", "work-items"]
    }
  }
}

Domains that are available are: core, work, work-items, search, test-plans, repositories, wiki, pipelines, advanced-security

We recommend that you always enable core tools so that you can fetch project level information.

By default all domains are loaded

πŸ₯ Project and Team Defaults (local)

You can also configure default Azure DevOps project and team values from .vscode/mcp.json using project and team, so tools can skip selection prompts.

Example .vscode/mcp.json

json
{
  "servers": {
    "ado": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@azure-devops/mcp", "myorg", "--authentication", "azcli"],
      "env": {
        "ado_mcp_project": "Contoso",
        "ado_mcp_team": "Fabrikam Team"
      }
    }
  }
}

πŸ“ Troubleshooting

See the Troubleshooting guide for help with common issues and logging.

🎩 Examples & Best Practices

Explore example prompts in our Examples documentation.

For best practices and tips to enhance your experience with the MCP Server, refer to the How-To guide.

πŸ™‹β€β™€οΈ Frequently Asked Questions

For answers to common questions about the Azure DevOps MCP Server, see the Frequently Asked Questions.

πŸ“Œ Contributing

We welcome contributions! During preview, please file issues for bugs, enhancements, or documentation improvements.

See our Contributions Guide for:

  • πŸ› οΈ Development setup
  • ✨ Adding new tools
  • πŸ“ Code style & testing
  • πŸ”„ Pull request process

⚠️ Please read the Contributions Guide before creating a pull request.

🀝 Code of Conduct

This project follows the Microsoft Open Source Code of Conduct. For questions, see the FAQ or contact open@microsoft.com.

πŸ“ˆ Project Stats

Star History Chart

πŸ† Hall of Fame

Thanks to all contributors who make this project awesome! ❀️

Contributors

Generated with contrib.rocks

License

Licensed under the MIT License.


Trademarks: This project may include trademarks or logos for Microsoft or third parties. Use of Microsoft trademarks or logos must follow Microsoft’s Trademark & Brand Guidelines. Third-party trademarks are subject to their respective policies.

Installation

TypingMind
Prerequisites:

Node.js 18+

{
  "mcpServers": {
    "azure_devops": {
      "command": "npx",
      "args": [
        "-y",
        "@azure-devops/mcp",
        "${input:ado_org}"
      ]
    }
  }
}

Available Tools

  • core_list_project_teams

    Retrieve a list of teams for the specified Azure DevOps project.

  • core_list_projects

    Retrieve a list of projects in your Azure DevOps organization.

  • core_get_identity_ids

    Retrieve Azure DevOps identity IDs for a provided search filter.

  • work_list_team_iterations

    Retrieve a list of iterations for a specific team in a project.

  • work_create_iterations

    Create new iterations in a specified Azure DevOps project.

  • work_assign_iterations

    Assign existing iterations to a specific team in a project.

  • repo_create_pull_request

    Create a new pull request.

  • repo_update_pull_request

    Update a Pull Request by ID with specified fields, including setting autocomplete with various completion options.

  • repo_update_pull_request_reviewers

    Add or remove reviewers for an existing pull request.

  • repo_list_repos_by_project

    Retrieve a list of repositories for a given project

  • repo_list_pull_request_threads

    Retrieve a list of comment threads for a pull request.

  • repo_list_pull_request_thread_comments

    Retrieve a list of comments in a pull request thread.

  • repo_list_branches_by_repo

    Retrieve a list of branches for a given repository.

  • repo_list_my_branches_by_repo

    Retrieve a list of my branches for a given repository Id.

  • repo_get_repo_by_name_or_id

    Get the repository by project and repository name or ID.

  • repo_get_branch_by_name

    Get a branch by its name.

  • repo_get_pull_request_by_id

    Get a pull request by its ID.

  • repo_reply_to_comment

    Replies to a specific comment on a pull request.

  • repo_create_pull_request_thread

    Creates a new comment thread on a pull request.

  • repo_resolve_comment

    Resolves a specific comment thread on a pull request.

  • repo_search_commits

    Search for commits in a repository with comprehensive filtering capabilities. Supports searching by description/comment text, time range, author, committer, specific commit IDs, and more. This is the unified tool for all commit search operations.

  • repo_list_pull_requests_by_commits

    Lists pull requests by commit IDs to find which pull requests contain specific commits

  • wit_list_backlogs

    Receive a list of backlogs for a given project and team.

  • wit_list_backlog_work_items

    Retrieve a list of backlogs of for a given project, team, and backlog category

  • wit_my_work_items

    Retrieve a list of work items relevent to the authenticated user.

  • wit_get_work_items_batch_by_ids

    Retrieve list of work items by IDs in batch.

  • wit_get_work_item

    Get a single work item by ID.

  • wit_list_work_item_comments

    Retrieve list of comments for a work item by ID.

  • wit_add_work_item_comment

    Add comment to a work item by ID.

  • wit_add_child_work_items

    Create one or many child work items from a parent by work item type and parent id.

  • wit_link_work_item_to_pull_request

    Link a single work item to an existing pull request.

  • wit_get_work_items_for_iteration

    Retrieve a list of work items for a specified iteration.

  • wit_update_work_item

    Update a work item by ID with specified fields.

  • wit_get_work_item_type

    Get a specific work item type.

  • wit_create_work_item

    Create a new work item in a specified project and work item type.

  • wit_get_query

    Get a query by its ID or path.

  • wit_get_query_results_by_id

    Retrieve the results of a work item query given the query ID.

  • wit_update_work_items_batch

    Update work items in batch

  • wit_work_items_link

    Link work items together in batch.

  • wit_work_item_unlink

    Remove one or many links from a single work item

  • wit_add_artifact_link

    Add artifact links (repository, branch, commit, builds) to work items. You can either provide the full vstfs URI or the individual components to build it automatically.

  • wiki_get_wiki

    Get the wiki by wikiIdentifier

  • wiki_list_wikis

    Retrieve a list of wikis for an organization or project.

  • wiki_list_pages

    Retrieve a list of wiki pages for a specific wiki and project.

  • wiki_get_page_content

    Retrieve wiki page content. Provide either a 'url' parameter OR the combination of 'wikiIdentifier' and 'project' parameters.

  • wiki_create_or_update_page

    Create or update a wiki page with content.

  • testplan_list_test_plans

    Retrieve a paginated list of test plans from an Azure DevOps project. Allows filtering for active plans and toggling detailed information.

  • testplan_create_test_plan

    Creates a new test plan in the project.

  • testplan_add_test_cases_to_suite

    Adds existing test cases to a test suite.

  • testplan_create_test_case

    Creates a new test case work item.

  • testplan_list_test_cases

    Gets a list of test cases in the test plan.

  • testplan_show_test_results_from_build_id

    Gets a list of test results for a given project and build ID.

  • search_code

    Search Azure DevOps Repositories for a given search text

  • search_wiki

    Search Azure DevOps Wiki for a given search text

  • search_workitem

    Get Azure DevOps Work Item search results for a given search text

  • advsec_get_alerts

    Retrieve Advanced Security alerts for a repository.

  • advsec_get_alert_details

    Get detailed information about a specific Advanced Security alert.

  • work_list_iterations

    List all iterations in a specified Azure DevOps project.

  • work_get_team_capacity

    Get the team capacity of a specific team and iteration in a project.

  • work_update_team_capacity

    Update the team capacity of a team member for a specific iteration in a project.

  • work_get_iteration_capacities

    Get an iteration's capacity for all teams in iteration and project.

  • pipelines_get_build_definitions

    Retrieves a list of build definitions for a given project.

  • pipelines_get_build_definition_revisions

    Retrieves a list of revisions for a specific build definition.

  • pipelines_get_builds

    Retrieves a list of builds for a given project.

  • pipelines_get_build_log

    Retrieves the logs for a specific build.

  • pipelines_get_build_log_by_id

    Get a specific build log by log ID.

  • pipelines_get_build_changes

    Get the changes associated with a specific build.

  • pipelines_get_run

    Gets a run for a particular pipeline.

  • pipelines_list_runs

    Gets top 10000 runs for a particular pipeline.

  • pipelines_run_pipeline

    Starts a new run of a pipeline.

  • pipelines_get_build_status

    Fetches the status of a specific build.

  • pipelines_update_build_stage

    Updates the stage of a specific build.

  • repo_create_branch

    Create a new branch in the repository.

  • repo_list_pull_requests_by_repo_or_project

    Retrieve a list of pull requests for a given repository. Either repositoryId or project must be provided.

  • wiki_get_page

    Retrieve wiki page metadata by path. This tool does not return page content.

  • testplan_create_test_suite

    Creates a new test suite in a test plan.

  • testplan_update_test_case_steps

    Update an existing test case work item.

Use Azure DevOps MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Azure DevOps is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Azure DevOps as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Azure DevOps MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "azure-devops": {
      "command": "npx",
      "args": [
        "-y",
        "null"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Azure DevOps MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Azure DevOps MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Azure DevOps to help me with this task?
Azure DevOps
Sure. I read it.
Here is what I found using Azure DevOps.

Frequently asked questions

What is the Azure DevOps MCP server used for?

Azure DevOps is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Azure DevOps MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Azure DevOps with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Azure DevOps MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Azure DevOps connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Azure DevOps MCP to TypingMind?

Azure DevOps runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does Azure DevOps MCP provide in TypingMind?

Azure DevOps exposes 77 MCP tools that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Azure DevOps MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Azure DevOps requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter πŸ‘‡