npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ajpanada/mcp-azure-devops

v2.0.4

Published

MCP server for interacting with Azure DevOps

Readme

⭐ Azure DevOps MCP Server

Easily install the Azure DevOps MCP Server for VS Code or VS Code Insiders:

Install with NPX in VS Code Install with NPX in VS Code Insiders

This TypeScript project provides a local MCP server for Azure DevOps, enabling you to perform a wide range of Azure DevOps tasks directly from your code editor.

📄 Table of Contents

  1. 📺 Overview
  2. 🏆 Expectations
  3. ⚙️ Supported Tools
  4. 🔌 Installation & Getting Started
  5. 🌏 Using Domains
  6. 📝 Troubleshooting
  7. 🎩 Examples & Best Practices
  8. 🙋‍♀️ Frequently Asked Questions

📺 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 from tools that are concise, simple, focused, and easy to use—each designed for a specific scenario. We intentionally avoid complex tools that try to do too much. The goal is to provide a thin abstraction layer over the REST APIs, making data access straightforward and letting the language model handle complex reasoning.

⚙️ Supported Tools

Interact with these Azure DevOps services:

🧿 Core

  • 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 list of unique names.

⚒️ Work

  • work_list_team_iterations: Retrieve a list of iterations for a specific team in a project.
  • work_list_iterations: List all iterations in a specified Azure DevOps 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.
  • 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.

📅 Work Items

  • wit_my_work_items: Retrieve a list of work items relevant to the authenticated user.
  • wit_list_backlogs: Retrieve a list of backlogs for a given project and team.
  • wit_list_backlog_work_items: Retrieve a list of backlogs for a given project, team, and backlog category.
  • wit_get_work_item: Get a single work item by ID.
  • wit_get_work_items_batch_by_ids: Retrieve a list of work items by IDs in batch.
  • wit_update_work_item: Update a work item by ID with specified fields.
  • wit_create_work_item: Create a new work item in a specified project and work item type.
  • wit_list_work_item_comments: Retrieve a list of comments for a work item by ID.
  • wit_get_work_items_for_iteration: Retrieve a list of work items for a specified iteration.
  • wit_add_work_item_comment: Add a comment to a work item by ID.
  • wit_add_child_work_items: Create one or more child work items of a specific work item type for the given parent ID.
  • wit_link_work_item_to_pull_request: Link a single work item to an existing pull request.
  • wit_get_work_item_type: Get a specific 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: Unlink one or many links from a work item.
  • wit_add_artifact_link: Link to artifacts like branch, pull request, commit, and build.

📁 Repositories

  • repo_list_repos_by_project: Retrieve a list of repositories for a given project.
  • repo_list_pull_requests_by_repo_or_project: Retrieve a list of pull requests for a given repository or project.
  • repo_list_branches_by_repo: Retrieve a list of branches for a given repository.
  • repo_list_my_branches_by_repo: Retrieve a list of your branches for a given repository ID.
  • repo_list_pull_requests_by_commits: List pull requests associated with commits.
  • 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_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_create_pull_request: Create a new pull request.
  • repo_create_branch: Create a new branch in the repository.
  • repo_update_pull_request: Update various fields of an existing pull request (title, description, draft status, target branch).
  • repo_update_pull_request_reviewers: Add or remove reviewers for an existing pull request.
  • repo_reply_to_comment: Replies to a specific comment on a pull request.
  • repo_resolve_comment: Resolves a specific comment thread on a pull request.
  • repo_search_commits: Searches for commits.
  • repo_create_pull_request_thread: Creates a new comment thread on a pull request.

🚀 Pipelines

  • pipelines_get_build_definitions: Retrieve a list of build definitions for a given project.
  • pipelines_get_build_definition_revisions: Retrieve a list of revisions for a specific build definition.
  • pipelines_get_builds: Retrieve a list of builds for a given project.
  • pipelines_get_build_log: Retrieve 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_build_status: Fetch the status of a specific build.
  • pipelines_update_build_stage: Update the stage of 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.

Advanced Security

  • advsec_get_alerts: Retrieve Advanced Security alerts for a repository.
  • advsec_get_alert_details: Get detailed information about a specific Advanced Security alert.

🧪 Test Plans

  • testplan_create_test_plan: Create a new test plan in the project.
  • testplan_create_test_case: Create a new test case work item.
  • testplan_update_test_case_steps: Update an existing test case work item's steps.
  • testplan_add_test_cases_to_suite: Add existing test cases to a test suite.
  • 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_list_test_cases: Get a list of test cases in the test plan.
  • testplan_show_test_results_from_build_id: Get a list of test results for a given project and build ID.
  • testplan_create_test_suite: Creates a new test suite in a test plan.

📖 Wiki

  • wiki_list_wikis: Retrieve a list of wikis for an organization or project.
  • wiki_get_wiki: Get the wiki by wikiIdentifier.
  • wiki_list_pages: Retrieve a list of wiki pages for a specific wiki and project.
  • wiki_get_page: Retrieve wiki page metadata by path.
  • wiki_get_page_content: Retrieve wiki page content by wikiIdentifier and path.
  • wiki_create_or_update_page: Create or update wiki pages with full content support.

🔎 Search

  • search_code: Get code search results for a given search text.
  • search_wiki: Get wiki search results for a given search text.
  • search_workitem: Get work item search results for a given search text.

🔌 Installation & Getting Started

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, and Cursor.

Prerequisites

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

Installation

✨ One-Click Install

Install with NPX in VS Code Install with NPX in VS Code Insiders

After installation, select GitHub Copilot Agent Mode and refresh the tools list. Learn more about Agent Mode in the VS Code Documentation.

🧨 Install from Public Feed (Recommended)

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:

It uses Azure DevOps Access Token (No Personal Access Token (PAT)) Authentication
{
  "inputs": [
    {
      "id": "ado_org",
      "type": "promptString",
      "description": "Azure DevOps organization name  (e.g. 'contoso')"
    }
  ],
  "servers": {
    "ado": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@ajpanada/mcp-azure-devops", "${input:ado_org}"],
      "env": {
        "AZURE_DEVOPS_AUTH_METHOD": "access-token",
        "AZURE_DEVOPS_ACCESS_TOKEN": "<YOUR_ADO_ACCESS-TOKEN (not PAT)>",
        "APPLICATIONINSIGHTS_CONNECTION_STRING": "<OPTIONAL: Your Application Insights connection string for telemetry>",
        "AZURE_DEVOPS_ACCOUNT_ID": "<OPTIONAL: Azure DevOps Account ID for telemetry>",
        "AZURE_DEVOPS_USER_ID": "<OPTIONAL: Azure DevOps User ID for telemetry>",
        "AZURE_DEVOPS_TENANT_ID": "<OPTIONAL: Azure DevOps Tenant ID for telemetry>",
        "MCP_SERVER_MACHINE_ID": "<OPTIONAL: Machine ID for telemetry>",
        "MCP_SERVER_SESSION_ID": "<OPTIONAL: Session ID for telemetry>"
      }
    }
  }
}

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

{
  "inputs": [
    {
      "id": "ado_org",
      "type": "promptString",
      "description": "Azure DevOps organization name  (e.g. 'contoso')"
    }
  ],
  "servers": {
    "ado": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@ajpanada/mcp-azure-devops@next", "${input:ado_org}"],
      "env": {
        "AZURE_DEVOPS_AUTH_METHOD": "access-token",
        "AZURE_DEVOPS_ACCESS_TOKEN": "<YOUR_ADO_ACCESS-TOKEN (not PAT)>",
        "APPLICATIONINSIGHTS_CONNECTION_STRING": "<OPTIONAL: Your Application Insights connection string for telemetry>",
        "AZURE_DEVOPS_ACCOUNT_ID": "<OPTIONAL: Azure DevOps Account ID for telemetry>",
        "AZURE_DEVOPS_USER_ID": "<OPTIONAL: Azure DevOps User ID for telemetry>",
        "AZURE_DEVOPS_TENANT_ID": "<OPTIONAL: Azure DevOps Tenant ID for telemetry>",
        "MCP_SERVER_MACHINE_ID": "<OPTIONAL: Machine ID for telemetry>",
        "MCP_SERVER_SESSION_ID": "<OPTIONAL: Session ID for telemetry>"
      }
    }
  }
}

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

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).

{
  "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", "@ajpanada/mcp-azure-devops", "${input:ado_org}", "-d", "core", "work", "work-items"],
      "env": {
        "AZURE_DEVOPS_AUTH_METHOD": "access-token",
        "AZURE_DEVOPS_ACCESS_TOKEN": "<YOUR_ADO_ACCESS-TOKEN (not PAT)>",
        "APPLICATIONINSIGHTS_CONNECTION_STRING": "<OPTIONAL: Your Application Insights connection string for telemetry>",
        "AZURE_DEVOPS_ACCOUNT_ID": "<OPTIONAL: Azure DevOps Account ID for telemetry>",
        "AZURE_DEVOPS_USER_ID": "<OPTIONAL: Azure DevOps User ID for telemetry>",
        "AZURE_DEVOPS_TENANT_ID": "<OPTIONAL: Azure DevOps Tenant ID for telemetry>",
        "MCP_SERVER_MACHINE_ID": "<OPTIONAL: Machine ID for telemetry>",
        "MCP_SERVER_SESSION_ID": "<OPTIONAL: Session ID for telemetry>"
      }
    }
  }
}

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

📝 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.

🤝 Code of Conduct

This project follows the Microsoft Open Source Code of Conduct. For questions, see the FAQ or contact [email protected].

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.