The Azure DevOps MCP Server enables AI assistants to interact with Azure DevOps resources through the following operations:
Work Items: Create, list, and get work items with filtering capabilities by type, state, or assigned user.
Pull Requests: Create, list, get details, comment on, and fetch diffs for pull requests.
Wiki Pages: Create and edit wiki pages.
Projects: List all accessible projects and get details of specific projects.
Implemented using TypeScript, offering type-safe development of MCP server components
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., "@azure-devops MCP Serverlist active pull requests in the repository"
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.
Azure DevOps MCP Server
An MCP (Model Context Protocol) server that provides integration with Azure DevOps, allowing AI assistants to interact with Azure DevOps work items, pull requests, and wikis.
Features
Work Items Management (create, list, get)
Pull Request Operations (create, list, get, comment, diff)
Wiki Page Management (create, edit)
Related MCP server: github-manager MCP Server
Setup
Install dependencies:
npm installConfigure environment variables (create a .env file):
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-org
AZURE_DEVOPS_PAT=your-personal-access-token
AZURE_DEVOPS_PROJECT=default-project
AZURE_DEVOPS_REPOSITORY=default-repoBuild the server:
npm run buildInstallation
Add the server configuration to your MCP settings:
For VSCode
On macOS/Linux
Add to ~/.vscode/cline_mcp_settings.json or the Cursor/Roo equivalent:
{
"mcpServers": {
"azure-devops": {
"command": "node",
"args": ["/path/to/azure-devops-mcp/build/index.js"],
"env": {
"AZURE_DEVOPS_ORG_URL": "your-org-url",
"AZURE_DEVOPS_PAT": "your-pat",
"AZURE_DEVOPS_PROJECT": "your-project",
"AZURE_DEVOPS_REPOSITORY": "your-repo"
},
"disabled": false,
"autoApprove": []
}
}
}On Windows
Add to %USERPROFILE%\.vscode\cline_mcp_settings.json or the Cursor/Roo equivalent:
{
"mcpServers": {
"azure-devops": {
"command": "node",
"args": ["C:/path/to/azure-devops-mcp/build/index.js"],
"env": {
"AZURE_DEVOPS_ORG_URL": "your-org-url",
"AZURE_DEVOPS_PAT": "your-pat",
"AZURE_DEVOPS_PROJECT": "your-project",
"AZURE_DEVOPS_REPOSITORY": "your-repo"
},
"disabled": false,
"autoApprove": []
}
}
}Available Tools
Work Items
list_work_items
Lists work items in a project.
{
"project": string, // Required
"types"?: string[], // Optional: Filter by work item types
"states"?: string[], // Optional: Filter by states
"assignedTo"?: string // Optional: Filter by assigned user
}get_work_item
Get details of a specific work item.
{
"project": string, // Required
"id": number // Required: Work item ID
}create_work_item
Create a new work item.
{
"project": string, // Required
"type": string, // Required: e.g., "Task", "Bug"
"title": string, // Required
"description"?: string, // Optional
"assignedTo"?: string // Optional
}Pull Requests
list_pull_requests
List pull requests in a repository.
{
"status"?: "active" | "completed" | "abandoned" // Optional
}get_pull_request
Get details of a specific pull request.
{
"pullRequestId": number // Required
}create_pull_request
Create a new pull request.
{
"title": string, // Required
"description": string, // Required
"sourceBranch": string, // Required
"targetBranch": string, // Required
"reviewers"?: string[] // Optional: Array of reviewer email addresses
}create_pull_request_comment
Add a comment to a pull request.
{
"pullRequestId": number, // Required
"content": string, // Required
"threadId"?: number, // Optional: For replies
"filePath"?: string, // Optional: For file comments
"lineNumber"?: number, // Optional: For line comments
"status"?: "active"|"fixed"|"pending"|"wontfix"|"closed" // Optional: Thread status
}get_pull_request_diff
Get the diff for a pull request.
{
"pullRequestId": number, // Required
"filePath"?: string, // Optional: Specific file to get diff for
"iterationId"?: number // Optional: Specific iteration to get diff for
}Wiki
create_wiki_page
Create a new wiki page.
{
"project": string, // Required
"wiki": string, // Required
"path": string, // Required
"content": string // Required
}edit_wiki_page
Edit an existing wiki page.
{
"project": string, // Required
"wiki": string, // Required
"path": string, // Required
"content": string, // Required
"etag": string // Required: For concurrency control
}Development
Run in development mode with environment variables:
npm run devNote
Unless explicitly specified in the tool arguments, the project and repository parameters will use default values from your environment configuration.
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.