Skip to main content
Glama

@slorenzot/mcp-azure

MCP (Model Context Protocol) server for Azure DevOps. It allows you to interact with Work Items, Git repositories, Pull Requests, sprints, areas, comments, and attachments from any compatible MCP client.

Installation

npm install -g @slorenzot/mcp-azure

Or use directly with npx:

npx @slorenzot/mcp-azure

Related MCP server: devops-wrangler

Configuration

Environment Variables

The server is automatically configured using the following environment variables:

Variable

Alternative

Description

Required

AZURE_DEVOPS_ORG

ADO_ORG

Organization URL (e.g., https://dev.azure.com/my-org)

Yes

AZURE_DEVOPS_PAT

ADO_PAT

Personal Access Token

Yes

AZURE_DEVOPS_PROJECT

ADO_PROJECT

Project name

No

Configuration in Claude Desktop

Add the following configuration to your claude_desktop_config.json file:

{
  "mcpServers": {
    "azure-devops": {
      "command": "npx",
      "args": ["-y", "@slorenzot/mcp-azure"],
      "env": {
        "AZURE_DEVOPS_ORG": "https://dev.azure.com/tu-organizacion",
        "AZURE_DEVOPS_PAT": "tu-pat-aqui",
        "AZURE_DEVOPS_PROJECT": "tu-proyecto"
      }
    }
  }
}

Configuration in OpenCode

OpenCode uses the same MCP, but configuration can be done in two ways:

Option 1: Initial configuration with environment variables

  1. Set the environment variables in your system or in your OpenCode configuration:

    export AZURE_DEVOPS_ORG="https://dev.azure.com/tu-organizacion"
    export AZURE_DEVOPS_PAT="tu-pat-aqui"
    export AZURE_DEVOPS_PROJECT="tu-proyecto"
  2. Or add the MCP server in your OpenCode configuration:

    {
      "mcpServers": {
        "azure-devops": {
          "command": "npx",
          "args": ["-y", "@slorenzot/mcp-azure"],
          "env": {
            "AZURE_DEVOPS_ORG": "https://dev.azure.com/tu-organizacion",
            "AZURE_DEVOPS_PAT": "tu-pat-aqui",
            "AZURE_DEVOPS_PROJECT": "tu-proyecto"
          }
        }
      }
    }

Option 2: Dynamic configuration with ado_configure

OpenCode allows you to configure the connection directly during the session using the ado_configure command:

{
  "organization": "https://dev.azure.com/tu-organizacion",
  "project": "tu-proyecto",
  "pat": "tu-pat-aqui"
}

This option is useful for switching between different organizations or projects without modifying the configuration file.

Note: When you use ado_configure, the connection persists during the current OpenCode session.

Obtaining a Personal Access Token (PAT)

  1. Go to your Azure DevOps organization

  2. Click on your avatar (top right corner)

  3. Select Personal Access Tokens

  4. Create a new token with the following permissions:

    • Work Items: Read & Write

    • Code: Read & Write (for repository and Pull Request operations)

    • Project and Team: Read (optional)

Available Tools

Authentication

Tool

Description

ado_configure

Configures the connection with organization, project, and PAT

Work Items

Tool

Description

ado_get_work_item

Gets a Work Item by its ID

ado_create_work_item

Creates a new Work Item (User Story, Bug, Task, etc.)

ado_update_work_item

Updates an existing Work Item

ado_get_work_item_type_fields

Gets the available/required fields for a type

Queries

Tool

Description

ado_query_sprint

Queries Work Items for a specific sprint

ado_query_area

Queries Work Items for a specific area

ado_query_wiql

Executes a custom WIQL query

Project Structure

Tool

Description

ado_list_iterations

Lists the project's iterations/sprints

ado_list_areas

Lists the project's areas

Git Repositories

Tool

Description

ado_list_repositories

Lists all Git repositories in the project

ado_get_repository

Gets details of a specific repository by name or ID

ado_list_branches

Lists the branches of a repository

Pull Requests

Tool

Description

ado_list_pull_requests

Lists Pull Requests with optional filters (status, branches, creator, reviewer)

ado_get_pull_request

Gets full details of a Pull Request

ado_create_pull_request

Creates a new Pull Request

ado_update_pull_request

Updates Pull Request properties (title, description, draft)

ado_complete_pull_request

Completes (merges) a Pull Request with a configurable strategy

ado_abandon_pull_request

Abandons a Pull Request

Pull Request Reviews

Tool

Description

ado_approve_pull_request

Approves a Pull Request (vote: 10)

ado_reject_pull_request

Rejects a Pull Request (vote: -10)

ado_get_pull_request_reviewers

Gets all reviewers and their votes for a Pull Request

ado_add_pull_request_reviewer

Adds a reviewer to a Pull Request

Pull Request Comments

Tool

Description

ado_get_pull_request_threads

Gets all comment threads for a Pull Request

ado_create_pull_request_thread

Creates a new comment thread (general or code-specific)

ado_reply_to_pull_request_thread

Replies to an existing comment thread

Pull Request Info

Tool

Description

ado_get_pull_request_commits

Gets all commits for a Pull Request

ado_get_pull_request_work_items

Gets Work Items linked to a Pull Request

ado_update_pull_request_thread_status

Updates the status of a comment thread (Fixed, WontFix, etc.)

Comments and Discussions

Tool

Description

ado_add_comment

Adds a comment to a Work Item (supports Markdown)

ado_get_comments

Gets comments for a Work Item

Attachments

Tool

Description

ado_upload_attachment

Uploads a file and returns the attachment URL

ado_add_attachment

Adds an attachment to a Work Item

ado_get_attachments

Lists attachments for a Work Item

Usage Examples

Create a User Story

{
  "title": "Implementar login con OAuth",
  "type": "User Story",
  "description": "Como usuario quiero poder iniciar sesión con mi cuenta de Google",
  "areaPath": "MiProyecto\\Backend",
  "iterationPath": "MiProyecto\\Sprint 5",
  "fields": {
    "Custom.OKR": "Seguridad",
    "Custom.Prioridad": "Alta"
  }
}

Custom WIQL Query

{
  "wiql": "SELECT [System.Id], [System.Title] FROM WorkItems WHERE [System.State] = 'Active' AND [System.AssignedTo] = @Me ORDER BY [System.CreatedDate] DESC",
  "getDetails": true
}

Add Comment with Markdown

{
  "id": 12345,
  "comment": "## Análisis completado\n\n- Revisado el código\n- Identificados 3 issues\n\n**Próximo paso:** Corregir validaciones"
}

Upload and Attach File

{
  "workItemId": 12345,
  "filePath": "/ruta/al/archivo.pdf",
  "comment": "Documento de especificaciones",
  "name": "Especificaciones Funcionales v2.0"
}
{
  "workItemId": 12345,
  "attachmentUrl": "https://dev.azure.com/org/proj/_apis/wit/attachments/abc123",
  "comment": "Diseño de arquitectura",
  "name": "Arquitectura del Sistema"
}

List Repositories

{
  "includeHidden": false,
  "top": 50
}

List Active Pull Requests

{
  "status": "Active",
  "top": 20
}

Create a Pull Request

{
  "repositoryId": "mi-repo",
  "sourceRefName": "refs/heads/feature-login",
  "targetRefName": "refs/heads/main",
  "title": "Implementar login con OAuth",
  "description": "Esta PR agrega soporte para login con Google OAuth",
  "reviewerIds": ["12345678-1234-1234-1234-1234567890ab"],
  "isDraft": false
}

Approve a Pull Request

{
  "pullRequestId": 12345,
  "repositoryId": "mi-repo"
}

Complete (Merge) a Pull Request

{
  "pullRequestId": 12345,
  "repositoryId": "mi-repo",
  "mergeStrategy": "Squash",
  "deleteSourceBranch": true,
  "mergeCommitMessage": "Merge de feature-login"
}

Create Code Comment

{
  "pullRequestId": 12345,
  "repositoryId": "mi-repo",
  "content": "Por favor extraer esto en una función separada",
  "filePath": "/src/components/Login.tsx",
  "startLine": 45,
  "endLine": 52
}

Available Prompts

The server includes pre-defined prompts to facilitate common tasks:

Prompt

Description

connect

Guide to connect to Azure DevOps

analyze_sprint

Analyzes the status of a sprint

create_user_story

Creates a structured User Story

daily_standup

Generates a daily standup report

plan_sprint

Helps plan a sprint

bulk_update

Updates multiple Work Items

project_report

Generates a project report

report_bug

Creates a structured Bug report

Resources

Resource

URI

Description

Connection status

ado://connection/status

Information about the current connection status

Development

Requirements

  • Node.js 18+

  • npm or yarn

Local Installation

git clone https://github.com/slorenzot/mcp-azure.git
cd mcp-azure
npm install
npm run build

Available Scripts

npm run build    # Compila TypeScript
npm run start    # Inicia el servidor
npm run dev      # Modo desarrollo con watch

License

MIT

Author

Soulberto Lorenzo - @slorenzot

Version

2.4.1 - 34 tools available for Azure DevOps (Work Items, Git Repositories, Pull Requests, etc.)

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
5Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.

  • MCP server for generating rough-draft project plans from natural-language prompts.

  • MCP server for AI agent profiles and smart notes. 60+ coding prompt packs with expert personas.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/soulberto/mcp-azure'

If you have feedback or need assistance with the MCP directory API, please join our Discord server