Azure DevOpsSAFE
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Star History
[](https://star-history.com/#RyanCardin15/AzureDevOps-MCP&Date)
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 changed files in a pull request
- Get pull request comments
- Approve pull requests
- Merge pull requests
Testing
f181c1962c59OBSERVED · 2026-10-08Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add azuredevops-mcp-server --env AZURE_DEVOPS_AUTH_TYPE=${AZURE_DEVOPS_AUTH_TYPE} --env AZURE_DEVOPS_PASSWORD=${AZURE_DEVOPS_PASSWORD} --env AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=${AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN} -- npx -y @ryancardin/[email protected]{
"mcpServers": {
"azuredevops-mcp-server": {
"command": "npx",
"args": [
"-y",
"@ryancardin/[email protected]"
],
"env": {
"AZURE_DEVOPS_AUTH_TYPE": "${AZURE_DEVOPS_AUTH_TYPE}",
"AZURE_DEVOPS_PASSWORD": "${AZURE_DEVOPS_PASSWORD}",
"AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN": "${AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN}"
}
}
}
}Exposed tools (101)
75 read · 25 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
Agile | read | Agile process template |
addWorkItemComment | write | Add a comment to a work item |
approvePullRequest | read | Approve a pull request |
assignWorkItem | read | Assign a work item to a user |
auditSecretUsage | read | Audit usage of secrets across services |
browseRepository | read | Browse the contents of a repository |
bulkCreateWorkItems | write | Create or update multiple work items in a single operation |
checkPackageDependencies | read | Check package dependencies and vulnerabilities |
configureTestAgents | read | Configure and manage test agents |
convertFindingsToWorkItems | read | Convert exploratory test findings to work items |
createArea | write | Create a new area in a project |
createComplianceReport | write | Create compliance reports for auditing |
createExploratorySessions | write | Create new exploratory testing sessions |
createIntelligentAlerts | write | Set up intelligent alerts based on patterns |
createIteration | write | Create a new iteration in a project |
createLink | write | Create a link between work items |
createPackageDownloadReport | write | Create reports on package downloads |
createProject | write | Create a new project |
createPullRequest | write | Create a new pull request |
createRepository | write | Create a new repository |
createTestDataGenerator | read | Generate test data for automated tests |
createWorkItem | write | Create a new work item |
deletePackageVersion | destructive | Delete a version of a package |
generateSecurityCompliance | read | Generate security compliance reports |
getAICodeReview | read | Get AI-based code review suggestions |
getAreas | read | Get areas for a project |
getBoardColumns | read | Get columns for a specific board |
getBoardItems | read | Get items on a specific board |
getBoards | read | Get all boards for a team |
getCodeQualityTrends | read | Track code quality trends over time |
getCommitHistory | write | Get commit history for a repository |
getComplianceStatus | read | Get current compliance status |
getContainerImageTags | read | Get tags for a container image |
getCurrentSprint | read | Get the current sprint |
getDeveloperProductivity | read | Measure developer productivity metrics |
getExploratoryTestStatistics | read | Get statistics on exploratory testing activities |
getFileContent | read | Get the content of a file |
getIterations | read | Get iterations for a project |
getMyWorkItems | read | Get work items assigned to you |
getPackageVersions | read | Get versions of a package in a feed |
getPredictiveBugAnalysis | read | Predict potential bugs in code changes |
getPredictiveEffortEstimation | read | AI-based effort estimation for work items |
getProcesses | read | Get all processes |
getProjectDetails | read | Get details of a specific project |
getPullRequest | read | Get details of a specific pull request |
getPullRequestChangedFiles | read | Get changed files in a pull request |
getPullRequestComments | read | Get comments on a pull request |
getRecentlyUpdatedWorkItems | read | Get recently updated work items |
getRepository | read | Get details of a specific repository |
getSecurityScanResults | read | Get results from security scans |
getSprintCapacity | read | Get capacity for a specific sprint |
getSprintWorkItems | read | Get work items in a specific sprint |
getSprints | read | Get all sprints for a team |
getTeamMembers | read | Get members of a team |
getTestAutomationStatus | read | Check status of automated test execution |
getTestFlakiness | read | Analyze and report on test flakiness |
getTestGapAnalysis | read | Identify gaps in test coverage |
getTestHealthDashboard | read | View overall test health metrics |
getWorkItemById | read | Get a specific work item by ID |
getWorkItemTypeFields | read | Get fields for a work item type |
getWorkItemTypes | read | Get work item types for a process |
identifyCodeSmells | read | Identify potential code smells and anti-patterns |
integrateSarifResults | write | Import and process SARIF format security results |
listArtifactFeeds | read | List artifact feeds in the organization |
listBranches | read | List branches in a repository |
listContainerImages | read | List container images in a repository |
listProjects | read | List all projects |
listPullRequests | read | List pull requests |
listRepositories | read | List all repositories |
listWorkItems | read | List work items based on a WIQL query |
manageContainerPolicies | read | Manage policies for container repositories |
manageSecurityPolicies | read | Manage security policies |
manageTestEnvironments | read | Manage test environments for different test types |
manageUniversalPackages | read | Manage universal packages |
mergePullRequest | write | Merge a pull request |
moveCardOnBoard | write | Move a card on a board |
npm-packages | read | NPM packages for the organization |
nuget-packages | read | NuGet packages for .NET projects |
optimizeTestSelection | write | Intelligently select tests to run based on changes |
predictBuildFailures | read | Predict potential build failures before they occur |
promotePackage | read | Promote a package version between views |
publishPackage | write | Publish a package to a feed |
recordExploratoryTestResults | read | Record findings during exploratory testing |
rotateSecrets | read | Rotate secrets and credentials |
runAutomatedTests | write | Execute automated test suites |
runComplianceChecks | write | Run compliance checks against standards |
runSecurityScan | write | Run security scans on repositories |
runTestImpactAnalysis | write | Determine which tests to run based on code changes |
runTestOptimization | read | Optimize test suite execution for faster feedback |
scanContainerImage | read | Scan a container image for vulnerabilities and compliance issues |
searchCode | read | Search for code in repositories |
searchWorkItems | read | Search for work items by text |
suggestAutomationOpportunities | read | Identify opportunities for automation |
suggestCodeOptimization | read | Suggest code optimizations using AI |
suggestWorkItemRefinements | read | Get AI suggestions for work item refinements |
trackSecurityAwareness | read | Track security awareness and training |
trackSecurityVulnerabilities | read | Track and manage security vulnerabilities |
universal-packages | read | Universal packages for deployments |
updateWorkItem | write | Update an existing work item |
updateWorkItemState | write | Update the state of a work item |
vaultIntegration | read | Integrate with secret vaults |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (7)
deletePackageVersion
.env.cloud.example
.env.on-premises.example
[](cursor://anysphere.cursor-deeplink/mcp/install?name=azure-devops&config=eyJjb21tYW5kIjoibnB4I
@modelcontextprotocol/sdk, azure-devops-node-api, dotenv, @azure/identity, @types/node, ts-node, typescript
AdoMcpDemo.gif
- An Azure DevOps account with a Personal Access Token (PAT) or appropriate credentials
Gates applied: no_behavioural_pass.
f181c1962c59full audit observations/trust-audit/mcp-server/ryancardin15__azure-devops-2.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | f181c1962c59 | SAFE | B | 89 | first audit |
Questions
What tools does Azure DevOps expose?
101 in total: 75 read-only, 25 that write, and 1 that can delete or overwrite (deletePackageVersion). Every one is listed on this page with its risk.
Is Azure DevOps safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does Azure DevOps need?
It reads AZURE_DEVOPS_AUTH_TYPE, AZURE_DEVOPS_PASSWORD and AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Azure DevOps run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as @ryancardin/azuredevops-mcp-server at 1.0.4.
How current is this page?
The grade is for one exact copy of the source (f181c1962c59), read on 2026-10-08. The repository is watched and re-audited when it changes.