Mcp Azure Devops

io.github.dockndevaiPublished by GitHub account dockndevaiv0.3.3Updated Oct 26, 2026

Azure DevOps boards, repos, pipelines & projects for AI agents — governed.

Overview

AI-generated overview

Local MCP server that lets an assistant read and, if enabled, change Azure DevOps projects, work items, repos, pull requests and pipelines under a governance…

What you can do
  • List and inspect projects, teams, team members and process templates
  • Query work items with WIQL and fetch individual work items and team iterations
  • List Git repositories, branches and pull requests, and fetch a single pull request
  • List pipelines and recent builds, and fetch a single build with status and timing
  • In read-write or admin mode, create and update work items, open pull requests, queue pipeline runs, and create or delete projects
When to use it
Useful when an assistant should answer questions or act on an Azure DevOps organization — finding active pull requests, querying assigned work items, checking which builds failed, or filing bugs — without leaving the chat client.
Requirements
Runs locally via npx from the npm package, so Node.js is needed. Requires AZDO_ORG_URL and a personal access token in AZDO_PAT, plus AZDO_MODE (read-only by default). Optional governance settings cover project allowlists, protected projects, delete gating, typed confirmation, dry-run and audit logging.
Before you install
The PAT is a broad credential for the organization; start with a read-only token and read-only mode. Write and admin modes can create or update work items, open pull requests, queue pipeline runs and, with delete enabled, delete projects. High-impact actions may prompt for typed confirmation or elicitation, and guarded operations are logged as JSON to stderr.

Installation

In SourceWeft

  1. Open Mcp Azure Devops in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

mcp-azure-devops

[CI] [License: MIT] [npm]

A Model Context Protocol server for Azure DevOps. It lets an MCP-capable client (Claude Desktop, Claude Code, Cursor, Codex, …) work across boards, repos, pipelines, and projects — with a governance layer that keeps an AI agent inside safe boundaries.

What this offers

  • Projects & teams — list projects/teams/members, inspect process templates.
  • Boards / work items — WIQL queries, get work items, create/update work items, list iterations (sprints).
  • Repos / pull requests — list repositories and branches, list/get PRs, open PRs.
  • Pipelines / builds — list pipelines and recent builds, get a build, queue a run.
  • Admin / process — list process templates, create a project, delete a project (guarded).
  • Governance built in — access modes, project allowlists, protected projects, delete gating, typed confirmation for high-impact ops, dry-run, and JSON audit logging.

Governance & security model

ConcernFlagDefaultEffect
What can the server do?AZDO_MODEread-onlyread-only → reads; read-write → work items, PRs, pipeline runs; admin → create/delete project. Tools above the mode are never registered.
Which projects are in scope?AZDO_PROJECT_ALLOWLIST(all)Operations on other projects are refused.
Which projects are read-only forever?AZDO_PROTECTED_PROJECTS(none)Readable, never mutable.
Can it delete?AZDO_ALLOW_DELETEfalsedelete_project needs this and admin mode.
Typed confirmationAZDO_REQUIRE_CONFIRMATIONtrueHigh-impact ops require confirm to equal the target name — not just a boolean.
PreviewAZDO_DRY_RUNfalseWrite/admin tools validate + log intent, then return.
Audit trailAZDO_AUDIT_LOGtrueJSON line to stderr per guarded operation.
Interactive confirmation(automatic)—Destructive & high-impact actions prompt the human to approve via MCP elicitation before running; clients without elicitation fall back to the *_ALLOW_* gate.

Tools

Read (read-only+): list_projects, get_project, list_teams, list_team_members, list_processes, query_work_items, get_work_item, list_iterations, list_repositories, list_branches, list_pull_requests, get_pull_request, list_pipelines, list_builds, get_build

Write (read-write+): create_work_item, update_work_item, create_pull_request, run_pipeline

Admin (admin): create_project, delete_project (needs AZDO_ALLOW_DELETE + typed confirm)

Quickstart — add to your agent

Published on npm as @dockndevai/mcp-azure-devops. Runs via npx; needs an org and a PAT. See docs/CLIENTS.md for every client and .env.example for all variables.

Claude Code

bash
claude mcp add azure-devops -e AZDO_ORG_URL="https://dev.azure.com/your-org" -e AZDO_PAT="your-pat" -e AZDO_MODE="read-only" -- npx -y @dockndevai/mcp-azure-devops

Claude Desktop · Cursor · Windsurf

json
{  "mcpServers": {    "azure-devops": {      "command": "npx",      "args": ["-y", "@dockndevai/mcp-azure-devops"],      "env": {        "AZDO_ORG_URL": "https://dev.azure.com/your-org",        "AZDO_PAT": "your-pat",        "AZDO_MODE": "read-only"      }    }  }}

Example prompts

  • "List active pull requests in the Payments project's api repo"
  • "Query work items assigned to me that are still Active"
  • "Show the last 10 builds in the Web project and which failed"
  • "Create a Bug in Payments titled 'Checkout 500 on retry'" (needs read-write)

Run from source (development)

bash
npm installnpm run buildnode dist/index.js   # with the environment variables set

Develop

bash
npm run devnpm test          # governance policy: modes, allowlists, delete gating, confirmationnpm run typecheck

Publishing

Ships a server.json for the official MCP registry and an mcpName for npm ownership validation. See PUBLISHING.md.

License

MIT

Source: README.md at commit 2a037ea

Tools

15

list_projects

List projects

List the projects in the Azure DevOps organization that pass the allowlist. Returns each project's id, name, state, and whether it is marked protected (readable but never mutated). Start here to discover valid project names.

Takes no parameters.

get_project

Get project

Fetch the full details (id, description, visibility, state, capabilities) of a single project.

Parametersprojectrequired

list_teams

List teams

List the teams defined in a project, with their ids and names. Use a team id/name with the team-scoped tools.

Parametersprojectrequired

list_team_members

List team members

List the members (identities: display name and unique name) of a specific team within a project.

Parametersteamrequiredprojectrequired

list_processes

List processes

List the organization's process templates (Agile, Scrum, CMMI, or inherited) with their ids. Pass one of these ids as the process when creating a project.

Takes no parameters.

query_work_items

Query work items (WIQL)

Run a Work Item Query Language (WIQL) query against a project and return the matching work-item ids (fetch fields with get_work_item). Example: SELECT [System.Id] FROM WorkItems WHERE [System.State] = 'Active'.

Parameterswiqlrequiredprojectrequired

get_work_item

Get work item

Fetch a single work item by id, including all of its fields (title, state, assignee, tags, …).

Parametersidrequired

list_iterations

List iterations (sprints)

List a team's iterations (sprints), each with its path and start/finish dates.

Parametersteamrequiredprojectrequired

list_repositories

List repositories

List the Git repositories in a project, with their ids, names, and default branches.

Parametersprojectrequired

list_branches

List branches

List the branches (refs/heads) of a Git repository, with the commit each one points at.

Parametersreporequiredprojectrequired

list_pull_requests

List pull requests

List pull requests in a repository, optionally filtered by status (active by default).

Parametersreporequiredstatusprojectrequired

get_pull_request

Get pull request

Fetch a single pull request by id, including its source/target branches, status, and reviewers.

Parametersidrequiredreporequiredprojectrequired

list_pipelines

List pipelines

List the pipelines defined in a project, with their ids and names. Use a pipeline id with run_pipeline.

Parametersprojectrequired

list_builds

List builds

List recent builds / pipeline runs in a project, most recent first, with their status and result.

Parameterstopprojectrequired

get_build

Get build

Fetch a single build / pipeline run by id, with its status, result, and timing.

ParametersbuildIdrequiredprojectrequired

Version history

3
  1. v0.3.3LatestOct 26, 2026
  2. v0.3.0Sep 29, 2026
  3. v0.2.3Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts