Skip to content

Releases: viamus/mcp-azure-devops

v1.2.0

20 Feb 16:46

Choose a tag to compare

Release Notes — v1.2.0

What's New

New MCP Tools

Work Item Tools

Tool Description
create_work_item Creates a new work item (Bug, Task, User Story, etc.) with support for all standard fields, parent linking, and custom fields
update_work_item Updates an existing work item — only specified fields are changed, omitted fields remain unchanged

Pull Request Tools

Tool Description
create_pull_request Creates a new pull request with title, description, source/target branches, draft flag, reviewers (by GUID), and linked work items

Analytics Tools (entire new category)

Tool Description
get_flow_metrics Calculates Lead Time, Cycle Time, and Throughput with statistical analysis (average, median, P85, P95)
compare_flow_metrics Compares metrics between two time periods to identify delivery trends
get_wip_analysis Analyzes Work in Progress grouped by state, area path, and assignee
get_bottlenecks Identifies workflow bottlenecks with severity scores (1–10) and actionable recommendations
get_team_workload Analyzes workload distribution across team members
get_aging_report Reports aging work items with urgency classification (Critical / High / Medium / Low) and recommendations

New Features

API Key Authentication

  • New optional middleware to protect MCP endpoints with a pre-shared API key.
  • Configure via appsettings.json (ServerSecurity.ApiKey / ServerSecurity.RequireApiKey) or environment variables (MCP_API_KEY / MCP_REQUIRE_API_KEY).
  • The /health endpoint is always accessible without a key.
  • Clients send the key via the X-API-Key request header.

HTTPS Support

  • Server can be configured to run with HTTPS on port 5001 for local development.
  • Recommendation to use a reverse proxy (nginx, traefik, Application Gateway) for production TLS termination.

GitHub Actions CI/CD

  • Added ci.yml workflow: build, test, and validate on every push/PR.
  • Added pr-validation.yml workflow: PR-specific checks and validations.

Improvements

  • Batch work item retrieval: Work items are now processed in batches to avoid Azure DevOps API rate limits (get_work_items).
  • Default port changed to HTTP 5000: Avoids certificate validation issues with MCP clients when running locally with .NET CLI.
  • Docker health check fix: Health endpoint is now correctly reachable inside the container.
  • Dockerfile build fix: Resolved an issue that prevented the container from building correctly.

Configuration

New .env.example file

A .env.example template is now included in the repository. Copy it to .env before running with Docker Compose:

cp .env.example .env

Variables covered:

Variable Required Description
AZURE_DEVOPS_ORG_URL Yes Azure DevOps organization URL
AZURE_DEVOPS_PAT Yes Personal Access Token
AZURE_DEVOPS_DEFAULT_PROJECT No Default project name
MCP_API_KEY No API key for server authentication
MCP_REQUIRE_API_KEY No Enable/disable API key enforcement (default: false)

Updated PAT Scopes

Creating pull requests requires Code: Read & Write (previously only Read was documented).

Scope Permission Required for
Work Items Read & Write Get, query, create, update work items and add comments
Code Read & Write Git repositories, branches, files, and pull requests (Write required to create PRs)
Build Read Pipelines and builds

Bug Fixes

Commit Fix
ffb4d1e Use named parameters in CreatePullRequestAsync to avoid argument order ambiguity
9dc78b9 Fix health check endpoint inside Docker container
ee36a28 Fix Dockerfile build to compile correctly
be5c3b5 Process work items in batches to avoid Azure DevOps API limits

Breaking Changes

None. All existing tools and configuration remain fully compatible with v1.1.0.


Migration from v1.1.0

  1. Docker users: Create a .env file from the new .env.example template. No changes to docker-compose.yml are required.
  2. PAT: If you plan to use create_pull_request, update your PAT to include Code: Read & Write.
  3. API Key (optional): To enable server authentication, add MCP_API_KEY and MCP_REQUIRE_API_KEY=true to your .env or appsettings.json. Update your MCP client configuration to send the X-API-Key header.

Full Diff

git diff v1.1.0..main --stat
 .env.example                                       |   36 +
 .github/workflows/ci.yml                           |   39 +
 .github/workflows/pr-validation.yml                |   41 +
 CONTRIBUTING.md                                    |    2 +-
 README.md                                          |  245 +++-
 docker-compose.yml                                 |    2 +
 install-mcp-azure-devops.ps1                       |   58 +-
 src/.../Configuration/ServerSecurityOptions.cs     |   19 +
 src/.../Dockerfile                                 |    7 +-
 src/.../Middleware/ApiKeyAuthentication.cs         |  110 ++
 src/.../Models/FlowMetricsDto.cs                   |  170 +++
 src/.../Models/WipAnalysisDto.cs                   |  463 +++++++
 src/.../Program.cs                                 |    8 +
 src/.../Properties/launchSettings.json             |    9 +
 src/.../Services/AzureDevOpsService.cs             |  366 +++++-
 src/.../Services/IAzureDevOpsService.cs            |   88 ++
 src/.../Tools/AnalyticsTools.cs                    | 1334 ++++++++++++++
 src/.../Tools/PullRequestTools.cs                  |   57 +
 src/.../Tools/WorkItemTools.cs                     |  126 ++
 src/.../Viamus.Azure.Devops.Mcp.Server.csproj      |    2 +-
 src/.../appsettings.json                           |    4 +
 tests/.../Configuration/...Tests.cs                |   63 +
 tests/.../Middleware/...Tests.cs                   |  405 ++++++
 tests/.../Models/FlowMetricsDtoTests.cs            |  351 +++++
 tests/.../Models/WipAnalysisDtoTests.cs            |  536 ++++++++
 tests/.../Tools/PullRequestToolsTests.cs           |  156 +++
 tests/.../Tools/WorkItemToolsTests.cs              |  226 ++++
 tests/.../Tests.csproj                             |    1 +
 28 files changed, 4837 insertions(+), 87 deletions(-)

v1.1.0

30 Jan 18:33

Choose a tag to compare

🚀 Release Notes — v1.1.0

MCP Azure DevOps Server

This release significantly expands the capabilities of the Azure DevOps MCP Server, adding support for Git Repositories, Pull Requests, and Pipelines/Builds, along with improved setup experience.


✨ Highlights

  • Git Repository Tools — Browse repositories, branches, files, and file contents
  • Pull Request Tools — Query, search, and inspect pull requests and their comment threads
  • Pipeline & Build Tools — List pipelines, inspect builds, view logs and timelines
  • Work Item Comments — New tool to add comments to work items
  • Automated Installation Script — PowerShell script for one-command setup on Windows
  • Simplified Configuration — Now uses appsettings.json instead of .env files

🧠 New MCP Tools

Git Repository Tools

Tool Description
get_repositories Lists all Git repositories in a project
get_repository Gets details of a specific repository by name or ID
get_branches Lists all branches in a repository
get_repository_items Browses files and folders at a specific path
get_file_content Gets the content of a specific file
search_repository_files Searches for files by path pattern

Pull Request Tools

Tool Description
get_pull_requests Lists pull requests with optional filters
get_pull_request Gets details of a specific pull request
get_pull_request_threads Gets comment threads for a pull request
search_pull_requests Searches pull requests by text
query_pull_requests Advanced query with multiple combined filters

Pipeline & Build Tools

Tool Description
get_pipelines Lists all pipelines in a project
get_pipeline Gets details of a specific pipeline
get_pipeline_runs Gets recent runs for a pipeline
get_build Gets details of a specific build
get_builds Lists builds with optional filters
get_build_logs Gets the list of log files for a build
get_build_log_content Gets the content of a specific build log
get_build_timeline Gets the timeline (stages, jobs, tasks) for a build
query_builds Advanced query with multiple combined filters

Work Item Tools (New)

Tool Description
add_work_item_comment Adds a comment to a specific work item

🛠️ Setup & Configuration

New: Automated Installation (Windows)

A PowerShell script is now available for automated setup:

.\install-mcp-azure-devops.ps1 `
    -OrganizationUrl "https://dev.azure.com/your-org" `
    -PersonalAccessToken "your-pat" `
    -DefaultProject "your-project"

The script automatically installs:

  • .NET 10 SDK
  • Node.js
  • Claude Code CLI
  • Clones and configures the repository
  • Registers the MCP server with Claude Code

Configuration Change

Configuration has moved from .env to appsettings.json:

{
  "AzureDevOps": {
    "OrganizationUrl": "https://dev.azure.com/your-organization",
    "PersonalAccessToken": "your-personal-access-token",
    "DefaultProject": "your-project-name"
  }
}

🐳 Runtime & Deployment

  • Docker Compose — Server runs at http://localhost:8080
  • .NET CLI — Server runs at http://localhost:5000
  • Health check endpoint: /health

🔌 Client Integration

Compatible with:

  • Claude Desktop
  • Claude Code (with HTTP transport)
  • Any MCP-compatible client

📊 Summary

Category v1.0.0 v1.1.0
Work Item Tools 8 9 (+1)
Git Repository Tools 0 6 (new)
Pull Request Tools 0 5 (new)
Pipeline/Build Tools 0 9 (new)
Total Tools 8 29

🔗 Links

🚀 Release Notes — v1.0.0

22 Jan 21:40

Choose a tag to compare

Pre-release

🚀 Release Notes — v1.0.0

MCP Azure DevOps Server

This is the first public release of the Azure DevOps MCP Server, enabling AI assistants to interact with Azure DevOps Work Items through the Model Context Protocol (MCP).


✨ Highlights

  • Initial implementation of an MCP-compliant server for Azure DevOps
  • Secure authentication using Personal Access Tokens (PAT)
  • Ready to run via Docker Compose or .NET CLI
  • Compatible with Claude Desktop, Claude Code, and any MCP-compatible client
  • Designed to provide structured, queryable context for AI-assisted analysis

🧠 Available MCP Tools

The following tools are available in this release:

  • get_work_item — Retrieve a work item by ID
  • get_work_items — Batch retrieval of work items by IDs
  • query_work_items — Query work items using WIQL
  • get_work_items_by_state — Filter work items by state (New, Active, Closed, etc.)
  • get_work_items_assigned_to — Retrieve work items assigned to a specific user
  • get_child_work_items — Get child work items of a parent work item
  • get_recent_work_items — Retrieve recently changed work items
  • search_work_items — Search work items by title text

🐳 Runtime & Setup

  • Supports .NET 10 SDK
  • Containerized execution via Docker & Docker Compose (recommended)
  • Configuration via environment variables (.env)
  • Built-in health check endpoint (/health)

🔌 Client Integration

This release is compatible with:

  • Claude Desktop
  • Claude Code
  • Any MCP-compatible client over HTTP

📁 Project Structure

The project follows a clear and extensible structure:

  • Configuration — Environment and application configuration
  • Models — DTOs and domain models
  • Services — Azure DevOps integration logic
  • Tools — MCP-exposed tools
  • Program.cs