@slorenzot/mcp-azure
The @slorenzot/mcp-azure server enables comprehensive interaction with Azure DevOps through the Model Context Protocol (MCP), allowing you to manage Work Items, Git repositories, Pull Requests, sprints, areas, comments, and attachments from any compatible MCP client.
Authentication & Configuration
Configure connections using
ado_configurewith your organization URL, project name, and Personal Access Token (PAT); also supports environment variables and static config files.
Work Item Management
Retrieve, create, and update Work Items (User Stories, Bugs, Tasks, etc.) with fields like title, description, area/iteration path, assignee, and custom fields
Inspect available and required fields for specific Work Item types
Querying Work Items
Query by sprint/iteration path, area path, or execute custom WIQL queries with optional full detail retrieval
Project Structure
List all available iterations/sprints and areas within the project
Git Repository Operations
List repositories, get details for a specific repository, and enumerate branches
Pull Request Lifecycle
List, retrieve, create, update, complete (merge), and abandon Pull Requests
Manage reviewers: add, approve, reject, and view votes
Handle PR threads: create general or code-specific comment threads, reply to existing ones, and update thread status
Retrieve commits and linked Work Items associated with a PR
Comments & Discussions
Add Markdown-supported comments to Work Items and retrieve discussion history
Attachments
Upload files to Azure DevOps, attach new or existing files to Work Items with optional comments, and list all attachments on a Work Item
Predefined Prompts
Includes built-in prompts for common workflows such as sprint analysis, user story creation, daily standups, sprint planning, bulk updates, project reports, and bug reporting.
Provides tools for interacting with Azure DevOps Git repositories, including listing repositories, branches, and managing pull requests with full lifecycle support.
Supports Markdown formatting in comments and descriptions for work items and pull requests, enabling rich text documentation and discussions.
Enables server-side integration with Azure DevOps through Node.js, providing programmatic access to work items, repositories, and project management features.
Facilitates installation and distribution of the Azure DevOps MCP server as an npm package, enabling easy deployment and configuration.
Provides TypeScript-based tooling for Azure DevOps integration, offering type-safe interactions with work items, repositories, and project structures.
Supports installation and dependency management for the Azure DevOps MCP server as an alternative to npm package management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@slorenzot/mcp-azureList all active bugs in the current sprint"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@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-azureOr use directly with npx:
npx @slorenzot/mcp-azureRelated MCP server: devops-wrangler
Configuration
Environment Variables
The server is automatically configured using the following environment variables:
Variable | Alternative | Description | Required |
|
| Organization URL (e.g., | Yes |
|
| Personal Access Token | Yes |
|
| 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
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"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)
Go to your Azure DevOps organization
Click on your avatar (top right corner)
Select Personal Access Tokens
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 |
| Configures the connection with organization, project, and PAT |
Work Items
Tool | Description |
| Gets a Work Item by its ID |
| Creates a new Work Item (User Story, Bug, Task, etc.) |
| Updates an existing Work Item |
| Gets the available/required fields for a type |
Queries
Tool | Description |
| Queries Work Items for a specific sprint |
| Queries Work Items for a specific area |
| Executes a custom WIQL query |
Project Structure
Tool | Description |
| Lists the project's iterations/sprints |
| Lists the project's areas |
Git Repositories
Tool | Description |
| Lists all Git repositories in the project |
| Gets details of a specific repository by name or ID |
| Lists the branches of a repository |
Pull Requests
Tool | Description |
| Lists Pull Requests with optional filters (status, branches, creator, reviewer) |
| Gets full details of a Pull Request |
| Creates a new Pull Request |
| Updates Pull Request properties (title, description, draft) |
| Completes (merges) a Pull Request with a configurable strategy |
| Abandons a Pull Request |
Pull Request Reviews
Tool | Description |
| Approves a Pull Request (vote: 10) |
| Rejects a Pull Request (vote: -10) |
| Gets all reviewers and their votes for a Pull Request |
| Adds a reviewer to a Pull Request |
Pull Request Comments
Tool | Description |
| Gets all comment threads for a Pull Request |
| Creates a new comment thread (general or code-specific) |
| Replies to an existing comment thread |
Pull Request Info
Tool | Description |
| Gets all commits for a Pull Request |
| Gets Work Items linked to a Pull Request |
| Updates the status of a comment thread (Fixed, WontFix, etc.) |
Comments and Discussions
Tool | Description |
| Adds a comment to a Work Item (supports Markdown) |
| Gets comments for a Work Item |
Attachments
Tool | Description |
| Uploads a file and returns the attachment URL |
| Adds an attachment to a Work Item |
| 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"
}Link Existing Attachment
{
"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 |
| Guide to connect to Azure DevOps |
| Analyzes the status of a sprint |
| Creates a structured User Story |
| Generates a daily standup report |
| Helps plan a sprint |
| Updates multiple Work Items |
| Generates a project report |
| Creates a structured Bug report |
Resources
Resource | URI | Description |
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 buildAvailable Scripts
npm run build # Compila TypeScript
npm run start # Inicia el servidor
npm run dev # Modo desarrollo con watchLicense
MIT
Author
Soulberto Lorenzo - @slorenzot
Version
2.4.1 - 34 tools available for Azure DevOps (Work Items, Git Repositories, Pull Requests, etc.)
Maintenance
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
- AlicenseNot gradedqualityBmaintenanceMCP server that enables AI assistants to manage Azure DevOps resources including Work Items, Git repositories, pipelines, and user identities.15MIT
- AlicenseAqualityDmaintenanceAn MCP server for Azure DevOps work item management that enables AI assistants to create, query, update, and manage work items, sprints, and more.1211ISC
- AlicenseNot gradedqualityBmaintenanceMCP server for Azure DevOps Server 2022 (on-premises) that enables AI assistants to interact with work items, repositories, builds, and sprints through 29 tools.312MIT
- AlicenseNot gradedqualityDmaintenanceA focused MCP server for Azure DevOps work item administration, enabling AI agents to create, update, query, and manage work items with full CRUD operations and advanced WIQL querying.MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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