Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Enables reading and updating Azure DevOps work items, comments, metadata, and relations from an MCP-compatible client.

README.md

Azure DevOps MCP Server

Azure DevOps MCP server for reading and updating work items, comments, metadata, and relations from an MCP-compatible client.

Features

  • Read one or many work items by ID
  • Query work items with raw WIQL
  • List work items with structured filters such as type, state, assignee, tags, iteration, and area path
  • Create, update, bulk update, and delete work items
  • Read and add work item comments
  • Read, add, and remove work item relations
  • List projects, work item types, iterations, and area paths
  • Expose reusable prompts for sprint summaries, bug triage, and drafting work items
  • Expose MCP resources for server info and individual work items
  • Support stdio and HTTP transport modes
  • Support interactive Azure sign-in with persistent token caching
  • Support PAT-based auth and Azure Key Vault backed secret loading

Requirements

  • Node.js 20 or newer
  • Access to an Azure DevOps organization and project
  • An MCP client that supports a JSON server configuration

Install

npm install
npm run build

Authentication

The server supports these authentication modes:

  • interactive: opens the Microsoft sign-in flow on first use, then reuses the cached session on later runs
  • default: uses the Azure default credential chain
  • AZURE_DEVOPS_PAT: uses a personal access token if you prefer PAT-based auth

For interactive auth, the server stores:

  • an authentication record at ~/.azure-devops-mcp/authentication-record.json
  • a persistent token cache managed by the operating system

Configuration

The server reads configuration from:

  • environment variables
  • an optional mcp-config.json file in the project root

If both are present, environment variables take precedence.

Common settings

| Setting | Description | | --- | --- | | AZURE_DEVOPS_ORG_URL | Azure DevOps organization URL | | AZURE_DEVOPS_DEFAULT_PROJECT | Default project used when a tool call omits project | | AZURE_AUTH_MODE | interactive or default | | AZURE_AUTH_RECORD_PATH | Optional custom path for the auth record file | | AZURE_DEVOPS_PAT | Optional PAT for direct Azure DevOps auth | | AZURE_CLIENT_ID | Optional Entra app client ID | | AZURE_TENANT_ID | Optional Entra tenant ID | | AZURE_CLIENT_SECRET | Optional client secret for non-interactive Azure auth | | AZURE_KEYVAULT_URI | Optional Key Vault URI for loading secrets | | MCP_TRANSPORT | stdio or http | | MCP_HTTP_HOST | HTTP bind host when using HTTP transport | | MCP_HTTP_PORT | HTTP port when using HTTP transport | | MCP_AUTH_TOKEN | Optional bearer token for the HTTP /mcp endpoint | | MCP_TLS_CERT | Optional TLS certificate secret or path value | | MCP_TLS_KEY | Optional TLS private key secret or path value | | LOG_LEVEL | Log level such as info or debug | | REQUEST_TIMEOUT_MS | Per-request timeout in milliseconds | | BULK_REQUEST_TIMEOUT_MS | Timeout for bulk requests in milliseconds | | MAX_RETRY_ATTEMPTS | Retry count for transient failures |

Example mcp-config.json

{
  "azureDevopsOrgUrl": "https://dev.azure.com/example-org",
  "azureDevopsDefaultProject": "example-project",
  "azureAuthMode": "interactive",
  "mcpTransport": "stdio",
  "logLevel": "info",
  "requestTimeoutMs": 10000,
  "bulkRequestTimeoutMs": 30000,
  "maxRetryAttempts": 3
}

MCP Client JSON Config

Stdio example

Use this when your MCP client launches the server as a local process.

{
  "mcpServers": {
    "azure-devops": {
      "command": "node",
      "args": [
        "F:/path/to/azure-mcp/dist/index.js"
      ],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/example-org",
        "AZURE_DEVOPS_DEFAULT_PROJECT": "example-project",
        "AZURE_AUTH_MODE": "interactive",
        "MCP_TRANSPORT": "stdio",
        "LOG_LEVEL": "info"
      }
    }
  }
}

HTTP example

Use this when you want to run the server separately and expose /mcp over HTTP.

Server environment:

{
  "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/example-org",
  "AZURE_DEVOPS_DEFAULT_PROJECT": "example-project",
  "AZURE_AUTH_MODE": "interactive",
  "MCP_TRANSPORT": "http",
  "MCP_HTTP_HOST": "127.0.0.1",
  "MCP_HTTP_PORT": "3000",
  "MCP_AUTH_TOKEN": "replace-with-a-demo-token"
}

Client connection example:

{
  "mcpServers": {
    "azure-devops-http": {
      "transport": {
        "type": "streamable-http",
        "url": "http://127.0.0.1:3000/mcp",
        "headers": {
          "Authorization": "Bearer replace-with-a-demo-token"
        }
      }
    }
  }
}

Available Tools

  • get_work_item
  • get_work_items
  • query_work_items
  • list_work_items
  • create_work_item
  • update_work_item
  • bulk_update_work_items
  • delete_work_item
  • get_comments
  • add_comment
  • get_relations
  • add_relation
  • remove_relation
  • list_projects
  • list_work_item_types
  • list_iterations
  • list_area_paths

Available Prompts

  • summarize_sprint
  • triage_bugs
  • draft_work_item

Available Resources

  • azure-devops://server/info
  • azure-devops://{organization}/{project}/workitems/{id}

Run

Development mode:

npm run dev

Production build:

npm run build
npm start

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Cloud & DevOps servers.