Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Azuredevops Mcp

    48 stars
    TypeScript
    Updated Oct 7, 2025

    Table of Contents

    • Overview
    • Demo
    • Features
    • Work Item Tools
    • Boards & Sprints Tools
    • Project Tools
    • Git Tools
    • Testing Capabilities Tools
    • DevSecOps Tools
    • Artifact Management Tools
    • AI-Assisted Development Tools
    • Installation
    • Quick Start with NPX (Recommended)
    • One-Click Installation for Cursor
    • Alternative Installation Methods
    • Global NPM Installation
    • Via Smithery (Claude Desktop)
    • Development Setup
    • Configuration
    • Prerequisites
    • Environment Variables
    • For Azure DevOps Services (Cloud)
    • For Azure DevOps Server (On-Premises)
    • Alternative Authentication Methods (On-Premises)
    • Client Configuration
    • Cursor Configuration
    • Claude Desktop Configuration
    • Creating a Personal Access Token (PAT)
    • Complete Environment Variables Reference
    • Tool Filtering with ALLOWED_TOOLS
    • Entra ID Authentication
    • Usage
    • Available Tools
    • Example: List Work Items
    • Example: Create a Work Item
    • Example: List Repositories
    • Example: Create a Pull Request
    • Architecture
    • Service Layer
    • Tools Layer
    • Tool Registration
    • Troubleshooting
    • Common Issues
    • Authentication Errors
    • unexpected status code: 203
    • High Context/Token Consumption
    • TypeScript Errors During Build
    • Runtime Errors
    • Contributing

    Table of Contents

    • Overview
    • Demo
    • Features
    • Work Item Tools
    • Boards & Sprints Tools
    • Project Tools
    • Git Tools
    • Testing Capabilities Tools
    • DevSecOps Tools
    • Artifact Management Tools
    • AI-Assisted Development Tools
    • Installation
    • Quick Start with NPX (Recommended)
    • One-Click Installation for Cursor
    • Alternative Installation Methods
    • Global NPM Installation
    • Via Smithery (Claude Desktop)
    • Development Setup
    • Configuration
    • Prerequisites
    • Environment Variables
    • For Azure DevOps Services (Cloud)
    • For Azure DevOps Server (On-Premises)
    • Alternative Authentication Methods (On-Premises)
    • Client Configuration
    • Cursor Configuration
    • Claude Desktop Configuration
    • Creating a Personal Access Token (PAT)
    • Complete Environment Variables Reference
    • Tool Filtering with ALLOWED_TOOLS
    • Entra ID Authentication
    • Usage
    • Available Tools
    • Example: List Work Items
    • Example: Create a Work Item
    • Example: List Repositories
    • Example: Create a Pull Request
    • Architecture
    • Service Layer
    • Tools Layer
    • Tool Registration
    • Troubleshooting
    • Common Issues
    • Authentication Errors
    • unexpected status code: 203
    • High Context/Token Consumption
    • TypeScript Errors During Build
    • Runtime Errors
    • Contributing

    Documentation

    Azure DevOps MCP Integration

    Star History

    Star History Chart

    A powerful integration for Azure DevOps that provides seamless access to work items, repositories, projects, boards, and sprints through the Model Context Protocol (MCP) server.

    Overview

    This server provides a convenient API for interacting with Azure DevOps services, enabling AI assistants and other tools to manage work items, code repositories, boards, sprints, and more. Built with the Model Context Protocol, it provides a standardized interface for communicating with Azure DevOps.

    Demo

    Azure DevOps MCP Demo

    Features

    The integration is organized into eight main tool categories:

    Work Item Tools

    • List work items using WIQL queries
    • Get work item details by ID
    • Search for work items
    • Get recently updated work items
    • Get your assigned work items
    • Create new work items
    • Update existing work items
    • Add comments to work items
    • Update work item state
    • Assign work items
    • Create links between work items
    • Bulk create/update work items

    Boards & Sprints Tools

    • Get team boards
    • Get board columns
    • Get board items
    • Move cards on boards
    • Get sprints
    • Get the current sprint
    • Get sprint work items
    • Get sprint capacity
    • Get team members

    Project Tools

    • List projects
    • Get project details
    • Create new projects
    • Get areas
    • Get iterations
    • Create areas
    • Create iterations
    • Get process templates
    • Get work item types
    • Get work item type fields

    Git Tools

    • List repositories
    • Get repository details
    • Create repositories
    • List branches
    • Search code
    • Browse repositories
    • Get file content
    • Get commit history
    • List pull requests
    • Create pull requests
    • Get pull request details
    • Get changed files in a pull request
    • Get pull request comments
    • Approve pull requests
    • Merge pull requests

    Testing Capabilities Tools

    • Run automated tests
    • Get test automation status
    • Configure test agents
    • Create test data generators
    • Manage test environments
    • Get test flakiness analysis
    • Get test gap analysis
    • Run test impact analysis
    • Get test health dashboard
    • Run test optimization
    • Create exploratory sessions
    • Record exploratory test results
    • Convert findings to work items
    • Get exploratory test statistics

    DevSecOps Tools

    • Run security scans
    • Get security scan results
    • Track security vulnerabilities
    • Generate security compliance reports
    • Integrate SARIF results
    • Run compliance checks
    • Get compliance status
    • Create compliance reports
    • Manage security policies
    • Track security awareness
    • Rotate secrets
    • Audit secret usage
    • Configure vault integration

    Artifact Management Tools

    • List artifact feeds
    • Get package versions
    • Publish packages
    • Promote packages
    • Delete package versions
    • List container images
    • Get container image tags
    • Scan container images
    • Manage container policies
    • Manage universal packages
    • Create package download reports
    • Check package dependencies

    AI-Assisted Development Tools

    • Get AI-powered code reviews
    • Suggest code optimizations
    • Identify code smells
    • Get predictive bug analysis
    • Get developer productivity metrics
    • Get predictive effort estimations
    • Get code quality trends
    • Suggest work item refinements
    • Suggest automation opportunities
    • Create intelligent alerts
    • Predict build failures
    • Optimize test selection

    Installation

    Quick Start with NPX (Recommended)

    The easiest way to use the Azure DevOps MCP server is via NPX:

    bash
    npx @ryancardin/azuredevops-mcp-server@latest

    No installation or build steps required! Just set your environment variables and run.

    One-Click Installation for Cursor

    Click the button below to install the Azure DevOps MCP server directly in Cursor:

    Add Azure DevOps MCP to Cursor

    Important: After installation in Cursor, you must update the environment variables in your Cursor MCP configuration with your actual Azure DevOps details.

    Learn more about Cursor deeplinks at https://docs.cursor.com/deeplinks

    Alternative Installation Methods

    Global NPM Installation

    bash
    npm install -g @ryancardin/azuredevops-mcp-server
    azuredevops-mcp-server

    Via Smithery (Claude Desktop)

    bash
    npx -y @smithery/cli install @RyanCardin15/azuredevops-mcp --client claude

    Development Setup

    For development or customization:

    1. Clone the repository:

    bash
    git clone https://github.com/RyanCardin15/AzureDevOps-MCP.git
       cd AzureDevOps-MCP

    2. Install dependencies:

    bash
    npm install

    3. Build the project:

    bash
    npm run build

    4. Run locally:

    bash
    npm start

    Configuration

    Prerequisites

    • Node.js (v16 or later)
    • An Azure DevOps account with a Personal Access Token (PAT) or appropriate credentials

    Environment Variables

    Configure the server using environment variables. You can set these in your shell, .env file, or in your MCP client configuration:

    For Azure DevOps Services (Cloud)

    bash
    AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization
    AZURE_DEVOPS_PROJECT=your-default-project
    AZURE_DEVOPS_IS_ON_PREMISES=false
    AZURE_DEVOPS_AUTH_TYPE=pat
    AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token

    For Azure DevOps Server (On-Premises)

    bash
    AZURE_DEVOPS_ORG_URL=https://your-server/tfs
    AZURE_DEVOPS_PROJECT=your-default-project
    AZURE_DEVOPS_IS_ON_PREMISES=true
    AZURE_DEVOPS_COLLECTION=your-collection
    AZURE_DEVOPS_API_VERSION=6.0
    AZURE_DEVOPS_AUTH_TYPE=pat
    AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token

    Alternative Authentication Methods (On-Premises)

    bash
    # NTLM Authentication
    AZURE_DEVOPS_AUTH_TYPE=ntlm
    AZURE_DEVOPS_USERNAME=your-username
    AZURE_DEVOPS_PASSWORD=your-password
    AZURE_DEVOPS_DOMAIN=your-domain
    
    # Basic Authentication
    AZURE_DEVOPS_AUTH_TYPE=basic
    AZURE_DEVOPS_USERNAME=your-username
    AZURE_DEVOPS_PASSWORD=your-password
    
    # Entra ID Authentication (requires az CLI)
    AZURE_DEVOPS_AUTH_TYPE=entra

    Client Configuration

    Cursor Configuration

    Add this to your Cursor MCP settings:

    json
    {
      "mcpServers": {
        "azure-devops": {
          "command": "npx",
          "args": ["@ryancardin/azuredevops-mcp-server@latest"],
          "env": {
            "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
            "AZURE_DEVOPS_PROJECT": "your-project",
            "AZURE_DEVOPS_IS_ON_PREMISES": "false",
            "AZURE_DEVOPS_AUTH_TYPE": "pat",
            "AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN": "your-personal-access-token"
          }
        }
      }
    }

    Claude Desktop Configuration

    Add this to your Claude Desktop MCP configuration file:

    json
    {
      "mcpServers": {
        "azure-devops": {
          "command": "npx",
          "args": ["@ryancardin/azuredevops-mcp-server@latest"],
          "env": {
            "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
            "AZURE_DEVOPS_PROJECT": "your-project",
            "AZURE_DEVOPS_IS_ON_PREMISES": "false",
            "AZURE_DEVOPS_AUTH_TYPE": "pat",
            "AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN": "your-personal-access-token"
          }
        }
      }
    }

    Creating a Personal Access Token (PAT)

    For Azure DevOps Services (cloud), you'll need to create a Personal Access Token with appropriate permissions:

    1. Go to your Azure DevOps organization

    2. Click on your profile icon in the top right

    3. Select "Personal access tokens"

    4. Click "New Token"

    5. Give it a name and select the appropriate scopes:

    • Work Items: Read & Write
    • Code: Read & Write
    • Project and Team: Read & Write
    • Build: Read
    • Release: Read

    For Azure DevOps Server (on-premises), create the PAT in your on-premises instance following similar steps.

    Complete Environment Variables Reference

    VariableDescriptionRequiredDefault
    AZURE_DEVOPS_ORG_URLURL of your Azure DevOps organization or serverYes-
    AZURE_DEVOPS_PROJECTDefault project to useYes-
    AZURE_DEVOPS_IS_ON_PREMISESWhether using Azure DevOps ServerNofalse
    AZURE_DEVOPS_COLLECTIONCollection name for on-premisesNo*-
    AZURE_DEVOPS_API_VERSIONAPI version for on-premisesNo-
    AZURE_DEVOPS_AUTH_TYPEAuthentication type (pat/ntlm/basic/entra)Nopat
    AZURE_DEVOPS_PERSONAL_ACCESS_TOKENPersonal access token (for 'pat' auth)No**-
    AZURE_DEVOPS_USERNAMEUsername for NTLM/Basic authNo**-
    AZURE_DEVOPS_PASSWORDPassword for NTLM/Basic authNo**-
    AZURE_DEVOPS_DOMAINDomain for NTLM authNo-
    ALLOWED_TOOLSComma-separated list of tool methods to enableNoAll tools

    \* Required if AZURE_DEVOPS_IS_ON_PREMISES=true

    \** Required based on chosen authentication type

    Tool Filtering with ALLOWED_TOOLS

    The ALLOWED_TOOLS environment variable allows you to restrict which tool methods are available. This is completely optional - if not specified, all tools will be enabled.

    Format: Comma-separated list of method names with no spaces.

    Example:

    code
    ALLOWED_TOOLS=listWorkItems,getWorkItemById,searchWorkItems,createWorkItem

    This would only enable the specified work item methods while disabling all others.

    Entra ID Authentication

    For Entra ID authentication, ensure you have Azure CLI installed and authenticated:

    bash
    az login

    The server supports AZ CLI, AZD, and Azure PowerShell modules as long as you're authenticated.

    Usage

    Once the server is running, you can interact with it using the MCP protocol. The server exposes several tools for different Azure DevOps functionalities.

    Available Tools

    Note: By default, only a subset of tools are registered in the index.ts file to keep the initial implementation simple. See the Tool Registration section for information on how to register additional tools.

    Example: List Work Items

    json
    {
      "tool": "listWorkItems",
      "params": {
        "query": "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.State] = 'Active' ORDER BY [System.CreatedDate] DESC"
      }
    }

    Example: Create a Work Item

    json
    {
      "tool": "createWorkItem",
      "params": {
        "workItemType": "User Story",
        "title": "Implement new feature",
        "description": "As a user, I want to be able to export reports to PDF.",
        "assignedTo": "john@example.com"
      }
    }

    Example: List Repositories

    json
    {
      "tool": "listRepositories",
      "params": {
        "projectId": "MyProject"
      }
    }

    Example: Create a Pull Request

    json
    {
      "tool": "createPullRequest",
      "params": {
        "repositoryId": "repo-guid",
        "sourceRefName": "refs/heads/feature-branch",
        "targetRefName": "refs/heads/main",
        "title": "Add new feature",
        "description": "This PR adds the export to PDF feature"
      }
    }

    Architecture

    The project is structured as follows:

    • src/
    • Interfaces/: Type definitions for parameters and responses
    • Services/: Service classes for interacting with Azure DevOps APIs
    • Tools/: Tool implementations that expose functionality to clients
    • index.ts: Main entry point that registers tools and starts the server
    • config.ts: Configuration handling

    Service Layer

    The service layer handles direct communication with the Azure DevOps API:

    • WorkItemService: Work item operations
    • BoardsSprintsService: Boards and sprints operations
    • ProjectService: Project management operations
    • GitService: Git repository operations
    • TestingCapabilitiesService: Testing capabilities operations
    • DevSecOpsService: DevSecOps operations
    • ArtifactManagementService: Artifact management operations
    • AIAssistedDevelopmentService: AI-assisted development operations

    Tools Layer

    The tools layer wraps the services and provides a consistent interface for the MCP protocol:

    • WorkItemTools: Tools for work item operations
    • BoardsSprintsTools: Tools for boards and sprints operations
    • ProjectTools: Tools for project management operations
    • GitTools: Tools for Git operations
    • TestingCapabilitiesTools: Tools for testing capabilities operations
    • DevSecOpsTools: Tools for DevSecOps operations
    • ArtifactManagementTools: Tools for artifact management operations
    • AIAssistedDevelopmentTools: Tools for AI-assisted development operations

    Tool Registration

    The MCP server requires tools to be explicitly registered in the index.ts file. By default, only a subset of all possible tools are registered to keep the initial implementation manageable.

    To register more tools:

    1. Open the src/index.ts file

    2. Add new tool registrations following the pattern of existing tools

    3. Build and restart the server

    A comprehensive guide to tool registration is available in the TOOL_REGISTRATION.md file in the repository.

    Note: When registering tools, be careful to use the correct parameter types, especially for enum values. The type definitions in the Interfaces directory define the expected types for each parameter. Using the wrong type (e.g., using z.string() instead of z.enum() for enumerated values) will result in TypeScript errors during build.

    Example of registering a new tool:

    typescript
    server.tool("searchCode", 
      "Search for code in repositories",
      {
        searchText: z.string().describe("Text to search for"),
        repositoryId: z.string().optional().describe("ID of the repository")
      },
      async (params, extra) => {
        const result = await gitTools.searchCode(params);
        return {
          content: result.content,
          rawData: result.rawData,
          isError: result.isError
        };
      }
    );

    Troubleshooting

    Common Issues

    Authentication Errors

    • Ensure your Personal Access Token is valid and has the required permissions
    • Check that the organization URL is correct

    unexpected status code: 203

    • This often indicates placeholder or incorrect configuration values were used
    • Verify AZURE_DEVOPS_ORG_URL uses your real org URL (not your-organization)
    • Verify AZURE_DEVOPS_PROJECT and AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN are real values

    High Context/Token Consumption

    • Restrict tool registration with ALLOWED_TOOLS to only the methods you need
    • Example: ALLOWED_TOOLS=listWorkItems,getWorkItemById,listPullRequests,getPullRequestChangedFiles

    TypeScript Errors During Build

    • Use npm run build:ignore-errors to bypass TypeScript errors
    • Check for missing or incorrect type definitions

    Runtime Errors

    • Verify that the Azure DevOps project specified exists and is accessible

    Contributing

    Contributions are welcome! Here's how you can contribute:

    1. Fork the repository

    2. Create a feature branch (git checkout -b feature/amazing-feature)

    3. Commit your changes (git commit -m 'Add some amazing feature')

    4. Push to the branch (git push origin feature/amazing-feature)

    5. Open a Pull Request

    Please ensure your code passes linting and includes appropriate tests.

    Verified on MseeP

    smithery badge

    Similar MCP

    Based on tags & features

    • OP

      Openai Gpt Image Mcp

      TypeScript·
      75
    • MC

      Mcgravity

      TypeScript·
      71
    • MC

      Mcp Open Library

      TypeScript·
      42
    • DI

      Discogs Mcp Server

      TypeScript·
      59

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • OP

      Openai Gpt Image Mcp

      TypeScript·
      75
    • MC

      Mcgravity

      TypeScript·
      71
    • MC

      Mcp Open Library

      TypeScript·
      42
    • DI

      Discogs Mcp Server

      TypeScript·
      59

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k