
azure-devops-mcp
This server provides a convenient API for interacting with Azure DevOps services, enabling AI assistants and other tools to manage work items, code repositories, boards, sprints, and more. Built with the Model Context Protocol, it provides a standardized interface for communicating with Azure DevOps
RyanCardin15
Tools
listWorkItems
List work items based on a WIQL query
getWorkItemById
Get a specific work item by ID
searchWorkItems
Search for work items by text
getRecentlyUpdatedWorkItems
Get recently updated work items
getMyWorkItems
Get work items assigned to you
createWorkItem
Create a new work item
updateWorkItem
Update an existing work item
addWorkItemComment
Add a comment to a work item
updateWorkItemState
Update the state of a work item
assignWorkItem
Assign a work item to a user
createLink
Create a link between work items
bulkCreateWorkItems
Create or update multiple work items in a single operation
getBoards
Get all boards for a team
getBoardColumns
Get columns for a specific board
getBoardItems
Get items on a specific board
moveCardOnBoard
Move a card on a board
getSprints
Get all sprints for a team
getCurrentSprint
Get the current sprint
getSprintWorkItems
Get work items in a specific sprint
getSprintCapacity
Get capacity for a specific sprint
getTeamMembers
Get members of a team
listProjects
List all projects
getProjectDetails
Get details of a specific project
createProject
Create a new project
getAreas
Get areas for a project
getIterations
Get iterations for a project
createArea
Create a new area in a project
createIteration
Create a new iteration in a project
getProcesses
Get all processes
getWorkItemTypes
Get work item types for a process
getWorkItemTypeFields
Get fields for a work item type
listRepositories
List all repositories
getRepository
Get details of a specific repository
createRepository
Create a new repository
listBranches
List branches in a repository
searchCode
Search for code in repositories
browseRepository
Browse the contents of a repository
getFileContent
Get the content of a file
getCommitHistory
Get commit history for a repository
listPullRequests
List pull requests
createPullRequest
Create a new pull request
getPullRequest
Get details of a specific pull request
getPullRequestComments
Get comments on a pull request
approvePullRequest
Approve a pull request
mergePullRequest
Merge a pull request
runAutomatedTests
Execute automated test suites
getTestAutomationStatus
Check status of automated test execution
configureTestAgents
Configure and manage test agents
createTestDataGenerator
Generate test data for automated tests
manageTestEnvironments
Manage test environments for different test types
getTestFlakiness
Analyze and report on test flakiness
getTestGapAnalysis
Identify gaps in test coverage
runTestImpactAnalysis
Determine which tests to run based on code changes
getTestHealthDashboard
View overall test health metrics
runTestOptimization
Optimize test suite execution for faster feedback
createExploratorySessions
Create new exploratory testing sessions
recordExploratoryTestResults
Record findings during exploratory testing
convertFindingsToWorkItems
Convert exploratory test findings to work items
getExploratoryTestStatistics
Get statistics on exploratory testing activities
runSecurityScan
Run security scans on repositories
getSecurityScanResults
Get results from security scans
trackSecurityVulnerabilities
Track and manage security vulnerabilities
generateSecurityCompliance
Generate security compliance reports
integrateSarifResults
Import and process SARIF format security results
runComplianceChecks
Run compliance checks against standards
getComplianceStatus
Get current compliance status
createComplianceReport
Create compliance reports for auditing
manageSecurityPolicies
Manage security policies
trackSecurityAwareness
Track security awareness and training
rotateSecrets
Rotate secrets and credentials
auditSecretUsage
Audit usage of secrets across services
vaultIntegration
Integrate with secret vaults
listArtifactFeeds
List artifact feeds in the organization
getPackageVersions
Get versions of a package in a feed
publishPackage
Publish a package to a feed
promotePackage
Promote a package version between views
deletePackageVersion
Delete a version of a package
listContainerImages
List container images in a repository
getContainerImageTags
Get tags for a container image
scanContainerImage
Scan a container image for vulnerabilities and compliance issues
manageContainerPolicies
Manage policies for container repositories
manageUniversalPackages
Manage universal packages
createPackageDownloadReport
Create reports on package downloads
checkPackageDependencies
Check package dependencies and vulnerabilities
getAICodeReview
Get AI-based code review suggestions
suggestCodeOptimization
Suggest code optimizations using AI
identifyCodeSmells
Identify potential code smells and anti-patterns
getPredictiveBugAnalysis
Predict potential bugs in code changes
getDeveloperProductivity
Measure developer productivity metrics
getPredictiveEffortEstimation
AI-based effort estimation for work items
getCodeQualityTrends
Track code quality trends over time
suggestWorkItemRefinements
Get AI suggestions for work item refinements
suggestAutomationOpportunities
Identify opportunities for automation
createIntelligentAlerts
Set up intelligent alerts based on patterns
predictBuildFailures
Predict potential build failures before they occur
optimizeTestSelection
Intelligently select tests to run based on changes
README
Azure DevOps MCP Integration
<a href="https://glama.ai/mcp/servers/z7mxfcinp8"> <img width="380" height="200" src="https://glama.ai/mcp/servers/z7mxfcinp8/badge" /> </a>
A powerful integration for Azure DevOps that provides seamless access to work items, repositories, projects, boards, and sprints through the Model Context Protocol (MCP) server.
Overview
This server provides a convenient API for interacting with Azure DevOps services, enabling AI assistants and other tools to manage work items, code repositories, boards, sprints, and more. Built with the Model Context Protocol, it provides a standardized interface for communicating with Azure DevOps.
Demo
Features
The integration is organized into eight main tool categories:
Work Item Tools
- List work items using WIQL queries
- Get work item details by ID
- Search for work items
- Get recently updated work items
- Get your assigned work items
- Create new work items
- Update existing work items
- Add comments to work items
- Update work item state
- Assign work items
- Create links between work items
- Bulk create/update work items
Boards & Sprints Tools
- Get team boards
- Get board columns
- Get board items
- Move cards on boards
- Get sprints
- Get the current sprint
- Get sprint work items
- Get sprint capacity
- Get team members
Project Tools
- List projects
- Get project details
- Create new projects
- Get areas
- Get iterations
- Create areas
- Create iterations
- Get process templates
- Get work item types
- Get work item type fields
Git Tools
- List repositories
- Get repository details
- Create repositories
- List branches
- Search code
- Browse repositories
- Get file content
- Get commit history
- List pull requests
- Create pull requests
- Get pull request details
- Get pull request comments
- Approve pull requests
- Merge pull requests
Testing Capabilities Tools
- Run automated tests
- Get test automation status
- Configure test agents
- Create test data generators
- Manage test environments
- Get test flakiness analysis
- Get test gap analysis
- Run test impact analysis
- Get test health dashboard
- Run test optimization
- Create exploratory sessions
- Record exploratory test results
- Convert findings to work items
- Get exploratory test statistics
DevSecOps Tools
- Run security scans
- Get security scan results
- Track security vulnerabilities
- Generate security compliance reports
- Integrate SARIF results
- Run compliance checks
- Get compliance status
- Create compliance reports
- Manage security policies
- Track security awareness
- Rotate secrets
- Audit secret usage
- Configure vault integration
Artifact Management Tools
- List artifact feeds
- Get package versions
- Publish packages
- Promote packages
- Delete package versions
- List container images
- Get container image tags
- Scan container images
- Manage container policies
- Manage universal packages
- Create package download reports
- Check package dependencies
AI-Assisted Development Tools
- Get AI-powered code reviews
- Suggest code optimizations
- Identify code smells
- Get predictive bug analysis
- Get developer productivity metrics
- Get predictive effort estimations
- Get code quality trends
- Suggest work item refinements
- Suggest automation opportunities
- Create intelligent alerts
- Predict build failures
- Optimize test selection
Installation
Installing via Smithery
To install azuredevops-mcp for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @RyanCardin15/azuredevops-mcp --client claude
Prerequisites
- Node.js (v16 or later)
- TypeScript (v4 or later)
- An Azure DevOps account with a Personal Access Token (PAT) or appropriate on-premises credentials
Setup
-
Clone the repository:
git clone <repository-url> cd AzureDevOps
-
Install dependencies:
npm install
-
Configure environment variables (create a
.env
file or set them directly):For Azure DevOps Services (cloud):
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token AZURE_DEVOPS_PROJECT=your-default-project AZURE_DEVOPS_IS_ON_PREMISES=false
For Azure DevOps Server (on-premises):
AZURE_DEVOPS_ORG_URL=https://your-server/tfs AZURE_DEVOPS_PROJECT=your-default-project AZURE_DEVOPS_IS_ON_PREMISES=true AZURE_DEVOPS_COLLECTION=your-collection AZURE_DEVOPS_API_VERSION=6.0 # Adjust based on your server version # Authentication (choose one): # For PAT authentication: AZURE_DEVOPS_AUTH_TYPE=pat AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token # For NTLM authentication: AZURE_DEVOPS_AUTH_TYPE=ntlm AZURE_DEVOPS_USERNAME=your-username AZURE_DEVOPS_PASSWORD=your-password AZURE_DEVOPS_DOMAIN=your-domain # For Basic authentication: AZURE_DEVOPS_AUTH_TYPE=basic AZURE_DEVOPS_USERNAME=your-username AZURE_DEVOPS_PASSWORD=your-password
-
Build the project:
npm run build
If you encounter TypeScript errors but want to proceed anyway:
npm run build:ignore-errors
-
Start the server:
npm run start
Configuration
Personal Access Token (PAT)
For Azure DevOps Services (cloud), you'll need to create a Personal Access Token with appropriate permissions:
- Go to your Azure DevOps organization
- Click on your profile icon in the top right
- Select "Personal access tokens"
- Click "New Token"
- Give it a name and select the appropriate scopes:
- Work Items: Read & Write
- Code: Read & Write
- Project and Team: Read & Write
- Build: Read
- Release: Read
For Azure DevOps Server (on-premises), you have three authentication options:
-
Personal Access Token (PAT):
- Similar to cloud setup, but create the PAT in your on-premises instance
- Set
AZURE_DEVOPS_AUTH_TYPE=pat
-
NTLM Authentication:
- Use your Windows domain credentials
- Set
AZURE_DEVOPS_AUTH_TYPE=ntlm
- Provide username, password, and domain
-
Basic Authentication:
- Use your local credentials
- Set
AZURE_DEVOPS_AUTH_TYPE=basic
- Provide username and password
Azure DevOps Services vs. Azure DevOps Server
This integration supports both cloud-hosted Azure DevOps Services and on-premises Azure DevOps Server:
Azure DevOps Services (Cloud)
- Simple setup with organization URL and PAT
- Default configuration expects format:
https://dev.azure.com/your-organization
- Always uses PAT authentication
- Sample configuration files provided in
.env.cloud.example
Azure DevOps Server (On-Premises)
- Requires additional configuration for server URL, collection, and authentication
- URL format varies based on your server setup:
https://your-server/tfs
- Requires specifying a collection name
- Supports multiple authentication methods (PAT, NTLM, Basic)
- May require API version specification for older server versions
- Sample configuration files provided in
.env.on-premises.example
Key Differences
Feature | Azure DevOps Services | Azure DevOps Server |
---|---|---|
URL Format | https://dev.azure.com/org | https://server/tfs |
Collection | Not required | Required |
Auth Methods | PAT only | PAT, NTLM, Basic |
API Version | Latest (automatic) | May need specification |
Connection | Always internet | Can be air-gapped |
Example Configuration
Copy either .env.cloud.example
or .env.on-premises.example
to .env
and update the values as needed.
Environment Variables
The server can be configured using the following environment variables:
Variable | Description | Required | Default |
---|---|---|---|
AZURE_DEVOPS_ORG_URL | URL of your Azure DevOps organization or server | Yes | - |
AZURE_DEVOPS_PROJECT | Default project to use | Yes | - |
AZURE_DEVOPS_IS_ON_PREMISES | Whether using Azure DevOps Server | No | false |
AZURE_DEVOPS_COLLECTION | Collection name for on-premises | No* | - |
AZURE_DEVOPS_API_VERSION | API version for on-premises | No | - |
AZURE_DEVOPS_AUTH_TYPE | Authentication type (pat/ntlm/basic) | No | pat |
AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN | Personal access token | No** | - |
AZURE_DEVOPS_USERNAME | Username for NTLM/Basic auth | No** | - |
AZURE_DEVOPS_PASSWORD | Password for NTLM/Basic auth | No** | - |
AZURE_DEVOPS_DOMAIN | Domain for NTLM auth | No | - |
ALLOWED_TOOLS | Comma-separated list of tool methods to enable | No | All tools |
* Required if AZURE_DEVOPS_IS_ON_PREMISES=true
** Required based on chosen authentication type
Tool Filtering with ALLOWED_TOOLS
The ALLOWED_TOOLS
environment variable allows you to restrict which tool methods are available. This is completely optional - if not specified, all tools will be enabled.
Format: Comma-separated list of method names with no spaces.
Example:
ALLOWED_TOOLS=listWorkItems,getWorkItemById,searchWorkItems,createWorkItem
This would only enable the specified work item methods while disabling all others.
Usage
Once the server is running, you can interact with it using the MCP protocol. The server exposes several tools for different Azure DevOps functionalities.
Available Tools
Note: By default, only a subset of tools are registered in the
index.ts
file to keep the initial implementation simple. See the Tool Registration section for information on how to register additional tools.
Example: List Work Items
{
"tool": "listWorkItems",
"params": {
"query": "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.State] = 'Active' ORDER BY [System.CreatedDate] DESC"
}
}
Example: Create a Work Item
{
"tool": "createWorkItem",
"params": {
"workItemType": "User Story",
"title": "Implement new feature",
"description": "As a user, I want to be able to export reports to PDF.",
"assignedTo": "john@example.com"
}
}
Example: List Repositories
{
"tool": "listRepositories",
"params": {
"projectId": "MyProject"
}
}
Example: Create a Pull Request
{
"tool": "createPullRequest",
"params": {
"repositoryId": "repo-guid",
"sourceRefName": "refs/heads/feature-branch",
"targetRefName": "refs/heads/main",
"title": "Add new feature",
"description": "This PR adds the export to PDF feature"
}
}
Architecture
The project is structured as follows:
src/
Interfaces/
: Type definitions for parameters and responsesServices/
: Service classes for interacting with Azure DevOps APIsTools/
: Tool implementations that expose functionality to clientsindex.ts
: Main entry point that registers tools and starts the serverconfig.ts
: Configuration handling
Service Layer
The service layer handles direct communication with the Azure DevOps API:
WorkItemService
: Work item operationsBoardsSprintsService
: Boards and sprints operationsProjectService
: Project management operationsGitService
: Git repository operationsTestingCapabilitiesService
: Testing capabilities operationsDevSecOpsService
: DevSecOps operationsArtifactManagementService
: Artifact management operationsAIAssistedDevelopmentService
: AI-assisted development operations
Tools Layer
The tools layer wraps the services and provides a consistent interface for the MCP protocol:
WorkItemTools
: Tools for work item operationsBoardsSprintsTools
: Tools for boards and sprints operationsProjectTools
: Tools for project management operationsGitTools
: Tools for Git operationsTestingCapabilitiesTools
: Tools for testing capabilities operationsDevSecOpsTools
: Tools for DevSecOps operationsArtifactManagementTools
: Tools for artifact management operationsAIAssistedDevelopmentTools
: Tools for AI-assisted development operations
Tool Registration
The MCP server requires tools to be explicitly registered in the index.ts
file. By default, only a subset of all possible tools are registered to keep the initial implementation manageable.
To register more tools:
- Open the
src/index.ts
file - Add new tool registrations following the pattern of existing tools
- Build and restart the server
A comprehensive guide to tool registration is available in the TOOL_REGISTRATION.md
file in the repository.
Note: When registering tools, be careful to use the correct parameter types, especially for enum values. The type definitions in the
Interfaces
directory define the expected types for each parameter. Using the wrong type (e.g., usingz.string()
instead ofz.enum()
for enumerated values) will result in TypeScript errors during build.
Example of registering a new tool:
server.tool("searchCode",
"Search for code in repositories",
{
searchText: z.string().describe("Text to search for"),
repositoryId: z.string().optional().describe("ID of the repository")
},
async (params, extra) => {
const result = await gitTools.searchCode(params);
return {
content: result.content,
rawData: result.rawData,
isError: result.isError
};
}
);
Troubleshooting
Common Issues
Authentication Errors
- Ensure your Personal Access Token is valid and has the required permissions
- Check that the organization URL is correct
TypeScript Errors During Build
- Use
npm run build:ignore-errors
to bypass TypeScript errors - Check for missing or incorrect type definitions
Runtime Errors
- Verify that the Azure DevOps project specified exists and is accessible
Contributing
Contributions are welcome! Here's how you can contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Please ensure your code passes linting and includes appropriate tests.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Playwright MCP Server
Provides a server utilizing Model Context Protocol to enable human-like browser automation with Playwright, allowing control over browser actions such as navigation, element interaction, and scrolling.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Apple MCP Server
Enables interaction with Apple apps like Messages, Notes, and Contacts through the MCP protocol to send messages, search, and open app content using natural language.
Gitingest-MCP
An MCP server for gitingest. It allows MCP clients like Claude Desktop, Cursor, Cline etc to quickly extract information about Github repositories including repository summaries, project directory structure, file contents, etc