azure-devops-mcp-pipeline-analyzer

tdevere/azure-devops-mcp-pipeline-analyzer

3.1

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

The Azure DevOps MCP Pipeline Analyzer is a tool designed to transform Azure DevOps pipeline failures into actionable insights using AI-powered root cause analysis. It integrates seamlessly with Visual Studio Code and is built with TypeScript for robust type safety and IDE support.

Tools
4
Resources
0
Prompts
0

Azure DevOps MCP Pipeline Analyzer

License: MIT MCP Compatible VS Code Ready

🚀 VS Code MCP Registry Ready - Transform Azure DevOps pipeline failures into actionable insights with AI-powered root cause analysis. Built for seamless VS Code integration.

🚀 Features

  • Comprehensive Pipeline Analysis: Analyze failed builds across all pipelines in a project
  • Detailed Build Investigation: Get in-depth information about specific failed builds
  • Definition-Specific Analysis: Focus on failures within specific build definitions
  • AI-Powered Failure Reports: Generate executive-level reports with RCA and actionable recommendations
  • Microsoft Support Ready: All output uses anonymized/fake data safe for sharing with support
  • VS Code Integration: Seamless integration with Visual Studio Code through MCP
  • TypeScript Implementation: Built with TypeScript for robust type safety and IDE support

📋 Available Commands

1. build_get_failed_builds

Retrieves a list of failed builds across all pipelines in a project.

Parameters:

  • orgUrl (required): Azure DevOps organization URL
  • token (required): Personal access token
  • project (required): Project name
  • definitions (optional): Array of definition IDs to filter
  • top (optional): Maximum number of builds to return (default: 50)
  • minTime (optional): Minimum time filter (ISO 8601)
  • maxTime (optional): Maximum time filter (ISO 8601)
  • includePartiallySucceeded (optional): Include partially succeeded builds
  • includeCanceled (optional): Include canceled builds

2. build_get_failed_builds_detailed

Retrieves detailed information about a specific failed build.

Parameters:

  • orgUrl (required): Azure DevOps organization URL
  • token (required): Personal access token
  • project (required): Project name
  • buildId (required): Build ID to get details for

3. build_get_failed_builds_by_definition

Retrieves failed builds for a specific build definition.

Parameters:

  • orgUrl (required): Azure DevOps organization URL
  • token (required): Personal access token
  • project (required): Project name
  • definitionId (required): Build definition ID
  • top (optional): Maximum number of builds to return (default: 20)

4. build_generate_failure_report

Generates a comprehensive build failure analysis report with RCA, pattern analysis, and actionable recommendations.

Parameters:

  • orgUrl (required): Azure DevOps organization URL
  • token (required): Personal access token
  • project (required): Project name
  • buildId (required): Build ID to generate report for

Report Includes:

  • 📊 Executive Summary
  • 🎯 Key Findings with Root Cause Analysis
  • 📈 Failure Pattern Analysis
  • ⏱️ Timeline Breakdown
  • 🔧 Detailed Technical Analysis
  • 🚀 Actionable Recommendations
  • 🔍 Environment Details
  • 📋 Next Steps Checklist

🛠️ Installation & Setup

Prerequisites

  • Node.js 16+ and npm
  • TypeScript
  • Visual Studio Code
  • Azure DevOps organization and Personal Access Token

Install Dependencies

npm install

Build the Project

npm run build

Run Tests

npm test

Start the MCP Server

npm start
# or directly:
node dist/server.js

📘 Usage Examples

Example: Get Failed Builds

{
  "command": "build_get_failed_builds",
  "args": {
    "orgUrl": "https://dev.azure.com/your-org",
    "token": "your-pat-token",
    "project": "MyProject",
    "top": 20,
    "includePartiallySucceeded": true
  }
}

Example: Generate Comprehensive Failure Report

{
  "command": "build_generate_failure_report",
  "args": {
    "orgUrl": "https://dev.azure.com/your-org",
    "token": "your-pat-token", 
    "project": "DemoProject",
    "buildId": 1380
  }
}

Sample Report Output:

🔬 COMPREHENSIVE BUILD FAILURE ANALYSIS COMPLETE
📊 Executive Summary
Build #1380 in the DEMO_PIPELINE (29) pipeline has failed with critical PowerShell environment issues that are blocking deployment. This is a persistent, recurring problem with 80% confidence in the root cause identification.

🎯 KEY FINDINGS
🚨 PRIMARY ROOT CAUSE
PowerShell Core (pwsh) Missing from Build Environment
• Error: Unable to locate executable file: 'pwsh'
• Impact: Blocking all PowerShell-based test execution
• Confidence: 80%

🚀 ACTIONABLE RECOMMENDATIONS
🔥 IMMEDIATE ACTIONS (30-60 minutes)
1. Fix PowerShell Environment ⭐ TOP PRIORITY
# Add to pipeline YAML:
- task: UseDotNet@2
  inputs:
    packageType: 'runtime'
    version: '6.x'
- script: |
    sudo apt-get update
    sudo apt-get install -y powershell
  displayName: 'Install PowerShell Core'
...

🔧 Development

Project Structure

├── src/
│   └── server.ts          # Main MCP server implementation
├── tests/
│   └── server.test.ts     # Test suite
├── dist/                  # Compiled JavaScript output
├── package.json           # Dependencies and MCP configuration
├── tsconfig.json          # TypeScript configuration
├── jest.config.js         # Test configuration
└── README.md             # This file

Development Workflow

  1. Make changes to src/server.ts
  2. Build: npm run build
  3. Test: npm test
  4. Start server: npm start

Adding New Tools

To add a new MCP tool:

  1. Add tool definition to the ListToolsRequestSchema handler
  2. Add tool implementation to the CallToolRequestSchema handler
  3. Add tests in tests/server.test.ts

📦 Publishing

Build Extension Package

# Install vsce globally if not already installed
npm install -g vsce

# Package the extension
vsce package

Publish to VS Code Marketplace

vsce publish

Publishing Checklist

  • All tests passing (npm test)
  • Build successful (npm run build)
  • Version updated in package.json
  • README updated with latest features
  • Extension tested in VS Code

🔐 Security & Privacy

⚠️ Important: Data Privacy

  • All sample data and output in this extension is anonymized/fake
  • Reports are safe for sharing with Microsoft support or public documentation
  • No real PII (Personally Identifiable Information) is included in demo responses
  • Replace demo data with real Azure DevOps API calls for production use

Recommended Security Practices

  • Store Personal Access Tokens securely
  • Use least-privilege tokens (only required permissions)
  • Regularly rotate access tokens
  • Never commit tokens to source control

🔗 References

🤝 Alternative Implementations

This repository also includes a Python implementation using the FastMCP framework:

  • See mcp_server/main.py for the Python MCP server
  • Run with: python mcp_server/main.py
  • Tests available in tests/test_mcp_server.py

Both implementations provide the same functionality with equivalent demo data output.

📜 License

MIT License - see LICENSE file for details.

🤝 Contributing

Contributing to Azure DevOps MCP Pipeline Analyzer

Thank you for your interest in contributing! This project follows standard open source contribution guidelines.

Getting Started

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/tdevere/azure-devops-mcp-pipeline-analyzer
  3. Install dependencies: npm install
  4. Build the project: npm run build
  5. Run tests: npm test

Development

  • All code should be in TypeScript with proper type annotations
  • Follow existing code style and formatting
  • Add tests for new features
  • Update documentation as needed

Pull Request Process

  1. Create a feature branch: git checkout -b feature/amazing-feature
  2. Make your changes and commit: git commit -m 'Add amazing feature'
  3. Push to your fork: git push origin feature/amazing-feature
  4. Create a Pull Request with clear description of changes

MCP Compliance

This server implements the Model Context Protocol specification. When contributing:

  • Ensure tools follow MCP schema requirements
  • Test with VS Code MCP integration
  • Maintain backward compatibility
  • Use demo/anonymized data for safety

Code of Conduct

Be respectful, inclusive, and constructive in all interactions.

📞 Support

For issues and feature requests:


Built with ❤️ for the Azure DevOps and VS Code community

  • Automated tests for all MCP tools/functions

Setup

# Activate virtual environment
.venv\Scripts\activate

# Install dependencies (if not already installed)
pip install mcp

# Run tests
pytest tests

# Start MCP server
python mcp_server/main.py

MCP Tools Available

  1. build_get_failed_builds - Retrieves a list of failed builds across all pipelines
  2. build_get_failed_builds_detailed - Gets detailed information about a specific failed build
  3. build_get_failed_builds_by_definition - Gets failed builds for a specific build definition
  4. build_generate_failure_report - Generates comprehensive failure analysis report with actionable recommendations

Testing

# Run all tests
pytest tests -v

# Test individual functions
python -c "from mcp_server.main import build_generate_failure_report; print(build_generate_failure_report('DemoProject', 1380))"

VS Code Integration

This MCP server can be connected to VS Code using the MCP protocol. The server runs continuously and responds to tool invocation requests.


Note: All sample data and output in this extension uses anonymized/fake data and is safe for sharing with Microsoft support or public documentation.

🎯 VS Code MCP Registry Submission

This server is designed for the VS Code MCP Server Registry and implements:

  • Full MCP Spec Compliance - Complete implementation of Model Context Protocol
  • Latest Primitives - Supports all MCP features announced June 12, 2025
  • Professional Quality - Production-ready with comprehensive testing
  • Real-world Value - Solves actual Azure DevOps pipeline analysis problems
  • Safe Demo Data - All outputs use anonymized data suitable for public sharing

📦 Installation for VS Code MCP

Add to your mcp.json:

{
  "servers": {
    "azure-devops-pipeline-analyzer": {
      "command": "npx",
      "args": ["-y", "azure-devops-mcp-pipeline-analyzer"],
      "type": "stdio"
    }
  }
}