Home / MCP / Azure DevOps MCP Server

Azure DevOps MCP Server

Provides MCP-based access to Azure DevOps REST API for work items, projects, and teams.

python
Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
    "mcpServers": {
        "azure_devops_official": {
            "url": "https://github.com/microsoft/azure-devops-mcp"
        }
    }
}

This MCP server provides a bridge between natural language prompts and Azure DevOps REST API, enabling you to manage work items, projects, and teams through conversational AI. It lets you query, create, update, and comment on work items, view projects and teams, and explore team areas and iterations in your Azure DevOps organization.

How to use

You can connect to the official Azure DevOps MCP server or run a local MCP instance to interact with your Azure DevOps workspace. Use natural language prompts to perform common actions like querying work items, creating new work items, updating statuses, and listing projects or team members. The server translates your prompts into Azure DevOps REST API calls and returns structured results that you can act on in your assistant.

Common capabilities you can use include querying work items with specific criteria, creating and updating work items, adding and viewing comments, and exploring your organization’s projects and teams. You can also retrieve team area paths and iterations to understand sprint structure.

How to install

Prerequisites you need before installing: Python 3.10 or newer, an Azure DevOps account with appropriate permissions, and a Personal Access Token (PAT) with the necessary scopes for Azure DevOps API access.

Option A — Use the official Azure DevOps MCP server (recommended) to get ongoing maintenance and support. The official MCP server URL is: https://github.com/microsoft/azure-devops-mcp. To start using it, follow the provider’s setup instructions for authentication and connection to your organization.

Option B — Run a local MCP server based on the provided project structure. Install and run locally with the following steps.

# Prerequisites
# Ensure Python 3.10+ is installed

# Install in development mode
uv pip install -e ".[dev]"

# Install from PyPi
pip install mcp-azure-devops

# Environment setup (example values shown; replace with your own)
# Create a .env file in the project root with the following variables:
# AZURE_DEVOPS_PAT=your_personal_access_token
# AZURE_DEVOPS_ORGANIZATION_URL=https://your-organization.visualstudio.com or https://dev.azure.com/your-organisation

To run the server in development mode with the MCP Inspector and to install the server via the MCP tooling, use the commands shown here.

# Development mode with the MCP Inspector
mcp dev src/mcp_azure_devops/server.py

# Install in Claude Desktop
mcp install src/mcp_azure_devops/server.py --name "Azure DevOps Assistant"

Configuration and operation details

Two MCP connection methods are available for this Azure DevOps integration: a remote MCP server (HTTP) and a local, stdio-based server. Use the remote server for a hosted, maintained endpoint, or run the local server for development and testing.

Tools and capabilities

The MCP server supports a range of work item and project management operations. Here are the primary tools and their purposes.

- queryWorkItems: Search for work items using criteria and WIQL queries.

- getWorkItemDetails: Retrieve complete information for a single work item.

- createWorkItems: Create new work items such as tasks, bugs, and user stories.

- updateWorkItems: Modify fields and properties of existing work items.

- addComments: Post comments on work items.

- viewComments: Retrieve the comment history for a work item.

- parentChild: Establish or manage parent-child relationships between work items.

- getProjects: List all projects in the organization.

- getTeams: List all teams within the organization.

- teamMembers: Retrieve membership information for teams.

- teamAreaPaths: Retrieve area paths assigned to teams.

- teamIterations: Access iterations/sprints configuration for teams.

Security considerations

Handle your PAT securely and never expose it in prompts or logs. Use environment variables or secret management to supply credentials to the MCP server. When running locally, ensure the server is accessible only to trusted clients.

Troubleshooting and notes

If you encounter authentication errors, verify that your PAT has the required scopes and that AZURE_DEVOPS_ORGANIZATION_URL points to your organization. Check that the MCP server is running and that your client is configured to connect to the correct URL or local command.

Appendix: example MCP configuration

The following configuration shows both an HTTP connection to an official MCP endpoint and a local stdio-based server that you can run with the MCP CLI. This demonstrates how to expose both methods in your setup.

{
  "mcpServers": {
    "azure_devops_official": {
      "type": "http",
      "name": "azure_devops_official",
      "url": "https://github.com/microsoft/azure-devops-mcp",
      "args": []
    },
    "azure_devops_assistant": {
      "type": "stdio",
      "name": "azure_devops_assistant",
      "command": "mcp",
      "args": ["dev","src/mcp_azure_devops/server.py"],
      "env": [
        {"name": "AZURE_DEVOPS_PAT", "value": "YOUR_PAT"},
        {"name": "AZURE_DEVOPS_ORGANIZATION_URL", "value": "https://dev.azure.com/your-org"}
      ]
    }
  }
}

Available tools

queryWorkItems

Query work items using WIQL and criteria to filter results.

getWorkItemDetails

Retrieve full details for a specific work item.

createWorkItems

Create new work items such as tasks, bugs, or user stories in a project.

updateWorkItems

Update fields and properties of existing work items.

addComments

Post a comment on a work item.

viewComments

Fetch the comment history for a work item.

parentChild

Manage parent-child relationships between work items.

getProjects

List all projects accessible in the organization.

getTeams

List all teams within the organization.

teamMembers

Retrieve membership information for a team.

teamAreaPaths

Retrieve area paths assigned to teams.

teamIterations

Access iterations/sprints for teams.