azure-devops-mcp-server

hafeez1042/azure-devops-mcp-server

3.2

If you are the rightful owner of azure-devops-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

A self-hosted MCP server for Azure DevOps built with TypeScript on Node 22 (Alpine).

Tools
6
Resources
0
Prompts
0

Azure DevOps MCP Server (Self-hosted, HTTP/SSE, Node 22 + TypeScript)

A self-hosted MCP server for Azure DevOps built with TypeScript on Node 22 (Alpine). It exposes tools to:

  • ado.searchAdvanced — Advanced search with similarity scoring
  • ado.findDuplicates — Return likely duplicates for a proposed title/type
  • ado.upsertWorkItem — Create/update User Stories, Features, Bugs, Tasks with de-duplication & linking
  • ado.ensureHierarchy — Ensure a hierarchy Feature → Stories → Tasks
  • ado.transitionState — Change state
  • ado.addLink — Attach a hyperlink relation

Designed to work with n8n MCP Client Tool (HTTP or SSE).

Environment

  • ADO_ORG_URL (required) — e.g. https://dev.azure.com/contoso
  • ADO_PROJECT (required) — Azure DevOps project name
  • ADO_PAT (optional but recommended) — PAT with minimal scopes (Work Items Read/Write)
  • PORT (optional) — default 3000

Build & Run (Docker)

docker build -t azure-devops-mcp:local .

docker run -d --name ado-mcp   -e ADO_ORG_URL="https://dev.azure.com/<org>"   -e ADO_PROJECT="<project>"   -e ADO_PAT="<your_pat_with_work_item_write>"   -e PORT=3000   -p 3000:3000   azure-devops-mcp:local

n8n Setup

  • Endpoint: http://<host>:3000/ (HTTP) or http://<host>:3000/sse (SSE)
  • The server authenticates to ADO with your PAT (no extra n8n auth needed unless you front it with a proxy).

Dedupe details

We combine WIQL contains queries with a trigram similarity score on titles. Default duplicate threshold is 0.62; adjust in azure.ts → upsertWorkItem() if your project’s titles are noisy. You can also set detectDuplicatesBy to title, title+area, or title+iteration to narrow the candidate pool and avoid cross-team collisions.

Hierarchy helper

Use ado.ensureHierarchy to declare a Feature plus its Stories (and optional Tasks) and have the server upsert and link everything using Parent links.

Notes

  • Relation direction for parent/child uses System.LinkTypes.Hierarchy-Reverse on the child to point to the parent.
  • You can extend tools (e.g., add attachments, fields mapping, or PR/commit links) in src/tools/ and reuse helpers in src/azure.ts.