Labsco
MCP SERVER

Azure DevOps MCP Server

by Tiberriver256

Work items, repositories, pull requests, pipelines and wikis in one Azure DevOps organization — read them, write them, and follow a failing check back to the log line that caused it.

Git Hosting & Code ReviewVerified
Summary
A blocked pull request can be traced to the log line that blocked it without opening the portal.

get_pull_request_checks reports which policy or pipeline is holding the PR and hands back the run identifiers, and pipeline_timeline plus get_pipeline_log take those identifiers down to a specific log range — a chain that most Azure DevOps integrations stop short of. Two things worth knowing before you commit to it: Microsoft ships its own server for Azure DevOps Services, and this one earns its place mainly on Azure DevOps Server on-premises; and create_commit rejects a request where the same file path appears twice, so edits to one file have to be merged into a single change entry.

What it is

A community server over the Azure DevOps REST APIs that also targets Azure DevOps Server on-premises, including older collections. Most calls take organizationId and projectId, so one connection can reach across an organization rather than a single project.

What you get
  • Projects listed and inspected, with get_project_details pulling in the process, work item types and teams
  • Work items created, updated, linked and searched — WIQL or a saved query id through list_work_items, plus tags, area path, iteration path, parent and assignee on write
  • Comment history on a work item, and manage_work_item_link to add or remove a typed relation between two of them
  • Repositories listed and described with statistics and refs, file content read at a given version, and hierarchical trees for one repository or every repository in a project
  • Branches created from an existing branch, commits created from a set of file changes, and list_commits returning file-level diffs alongside the commit list
  • Pull requests created with reviewers, linked work items and tags; updated, commented on at a file and line, and their threads moved between statuses
  • get_pull_request_changes returns the changed files with unified diffs and policy evaluation status, and get_pull_request_checks summarises the checks that are blocking it with the pipeline and run ids to chase
  • Pipelines listed, triggered with a branch, variables, template parameters and stages to skip, and their runs read back
  • pipeline_timeline gives the stages and jobs of a run, get_pipeline_log fetches one log by id with a start and end line, and download_pipeline_artifact returns the text content of a file inside a run artifact
  • Wikis created and listed, pages read, created and updated, and search_wiki, search_code and search_work_items query across a project
Requirements

An Azure DevOps account with access to the organization, and Node.js v16 or higher; it runs as npx -y @tiberriver256/mcp-server-azure-devops. AZURE_DEVOPS_ORG_URL is the one required variable — the full organization or collection URL. AZURE_DEVOPS_AUTH_METHOD picks between pat, azure-identity and azure-cli and defaults to azure-identity; pat reads AZURE_DEVOPS_PAT, and a service principal additionally needs AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET. Azure DevOps Server on-premises supports PAT only. AZURE_DEVOPS_DEFAULT_PROJECT saves naming a project on every call; AZURE_DEVOPS_API_VERSION and LOG_LEVEL are optional.

Setup effort

One command plus a key — npx -y @tiberriver256/mcp-server-azure-devops, then supply credentials