Azure DevOps MCP Server
Enables reading and updating Azure DevOps work items, comments, metadata, and relations from an MCP-compatible client.
README
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
stdioand 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 runsdefault: uses the Azure default credential chainAZURE_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.jsonfile 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_itemget_work_itemsquery_work_itemslist_work_itemscreate_work_itemupdate_work_itembulk_update_work_itemsdelete_work_itemget_commentsadd_commentget_relationsadd_relationremove_relationlist_projectslist_work_item_typeslist_iterationslist_area_paths
Available Prompts
summarize_sprinttriage_bugsdraft_work_item
Available Resources
azure-devops://server/infoazure-devops://{organization}/{project}/workitems/{id}
Run
Development mode:
npm run dev
Production build:
npm run build
npm start
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.