
Security News
New CVE Forecasting Tool Predicts 47,000 Disclosures in 2025
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.
cursor-azure-devops-mcp
Advanced tools
A Model Context Protocol (MCP) server for integrating Azure DevOps with Cursor IDE. This tool allows Claude AI in Cursor to interact with Azure DevOps, providing access to projects, work items, repositories, and pull requests.
azure_devops_test_plans
- List all test plans for a projectazure_devops_test_plan
- Get a test plan by IDazure_devops_test_suites
- List all test suites for a test planazure_devops_test_suite
- Get a test suite by IDazure_devops_test_cases
- List all test cases for a test suitenpm install -g cursor-azure-devops-mcp
npm install cursor-azure-devops-mcp
The server can be configured using multiple sources, with the following priority:
.env
fileYou can configure the server using command line arguments:
npx cursor-azure-devops-mcp --azure-org-url=https://dev.azure.com/your-organization --azure-token=your-token --azure-project=YourProject
Available options:
Option | Alias | Description |
---|---|---|
--azure-org-url | --org | Azure DevOps organization URL |
--azure-token | --token | Azure DevOps personal access token |
--azure-project | --project | Default Azure DevOps project name |
--port | -p | Server port (for HTTP mode) |
--host | -h | Server hostname (for HTTP mode) |
--log-level | --log | Logging level (error, warn, info, debug) |
--help | -? | Show help |
You can configure the server in your VSCode or Cursor IDE settings:
~/.vscode/settings.json
or ~/.cursor/settings.json
.vscode/settings.json
or .cursor/settings.json
Example settings:
{
"azureDevOps.organization": "your-organization",
"azureDevOps.token": "your-personal-access-token",
"azureDevOps.project": "YourProject",
"cursor-azure-devops-mcp": {
"port": 3000,
"logLevel": "info"
}
}
Create a .env
file in your project root with the following variables:
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization
AZURE_DEVOPS_TOKEN=your-personal-access-token
AZURE_DEVOPS_PROJECT=YourProject
PORT=3000
LOG_LEVEL=info
You can also copy the provided .env.example
file:
cp .env.example .env
Then edit the file with your Azure DevOps credentials.
The easiest way to use this MCP server is with npx:
npx cursor-azure-devops-mcp
Cursor IDE supports two methods for connecting to MCP servers: Command mode and SSE mode.
The Command mode runs the MCP server as a process directly from Cursor. This is the most reliable method and should be your first choice:
Open Cursor IDE
Go to Settings > Features > MCP Servers
Click "Add New MCP Server"
Enter a name for your server (e.g., "Azure DevOps")
Select "command" from the dropdown
Enter the command to run the server:
cursor-azure-devops-mcp
If you haven't installed it globally, you can use npx:
npx cursor-azure-devops-mcp
Click "Add"
Important: When using Command mode, the server will automatically use your environment variables from your system or from a .env
file in your current working directory. Make sure your .env
file is properly set up with your Azure DevOps credentials.
Troubleshooting Command Mode:
If you encounter the error "server.setRequestHandler is not a function" or similar errors:
npm install -g cursor-azure-devops-mcp
.env
file is correctly set up with your Azure DevOps credentialsNote: SSE mode is more prone to connection issues. If you're experiencing problems, please use Command mode instead.
The SSE mode connects to an HTTP server with Server-Sent Events:
First, start the HTTP server with SSE support:
npm run sse-server
or
npx cursor-azure-devops-mcp-sse
This will start a server on port 3000 by default.
Open Cursor IDE
Go to Settings > Features > MCP Servers
Click "Add New MCP Server"
Enter a name for your server (e.g., "Azure DevOps SSE")
Select "sse" from the dropdown
Enter the SSE endpoint URL:
http://localhost:3000/sse
Click "Add"
If you're using Windows and experiencing issues with the command mode, try this format:
cmd /k npx cursor-azure-devops-mcp
{
"azure-devops": {
"command": "cmd",
"args": [
"/c",
"npx",
"cursor-azure-devops-mcp",
"--azure-org-url",
"https://your-organization.visualstudio.com",
"--azure-token",
"your-personal-access-token",
"--azure-project",
"your-project"
]
}
}
const { McpServer } = require('@modelcontextprotocol/sdk/server/mcp.js');
const { registerTools } = require('cursor-azure-devops-mcp');
const azureDevOpsService = require('cursor-azure-devops-mcp/lib/azure-devops-service');
// Create MCP server
const server = new McpServer({
name: 'cursor-azure-devops-mcp',
version: '1.0.0'
});
// Register Azure DevOps tools with the server
registerTools(server, azureDevOpsService);
// Connect to your transport of choice
// ...
Tool Name | Description | Required Parameters |
---|---|---|
azure_devops_projects | Get all projects | None |
azure_devops_work_item | Get a specific work item | id (number) |
azure_devops_work_items | Get multiple work items | ids (array of numbers) |
azure_devops_repositories | Get repositories for a project | project (string) |
azure_devops_pull_requests | Get pull requests from a repository | repositoryId (string), project (string) |
azure_devops_pull_request_by_id | Get a specific pull request | repositoryId (string), pullRequestId (number), project (string) |
azure_devops_pull_request_threads | Get threads from a pull request | repositoryId (string), pullRequestId (number), project (string) |
azure_devops_work_item_attachments | Get attachments for a work item | id (number) |
azure_devops_work_item_comments | Get comments for a work item | id (number) |
azure_devops_pull_request_changes | Get detailed PR code changes | repositoryId (string), pullRequestId (number), project (string) |
azure_devops_pull_request_file_content | Get content of a specific file in a pull request | repositoryId (string), pullRequestId (number), filePath (string), objectId (string), project (string), optional: returnPlainText (boolean), startPosition (number), length (number) |
azure_devops_branch_file_content | Get file content directly from a branch | repositoryId (string), branchName (string), filePath (string), project (string), optional: returnPlainText (boolean), startPosition (number), length (number) |
azure_devops_create_pr_comment | Create a comment on a pull request | repositoryId (string), pullRequestId (number), project (string), content (string), and other optional parameters |
azure_devops_test_plans | List all test plans for a project | project (string) |
azure_devops_test_plan | Get a test plan by ID | project (string), testPlanId (number) |
azure_devops_test_suites | List all test suites for a test plan | project (string), testPlanId (number) |
azure_devops_test_suite | Get a test suite by ID | project (string), testPlanId (number), testSuiteId (number) |
azure_devops_test_cases | List all test cases for a test suite | project (string), testPlanId (number), testSuiteId (number) |
The test management tools provide comprehensive access to Azure DevOps test plans, suites, and cases:
List all test plans in a project:
{
"project": "YourProject"
}
Get a specific test suite:
{
"project": "YourProject",
"testPlanId": 185735,
"testSuiteId": 186771
}
List test cases in a suite:
{
"project": "YourProject",
"testPlanId": 185735,
"testSuiteId": 186771
}
When working with test management tools, you should:
azure_devops_test_plans
azure_devops_test_suites
azure_devops_test_cases
The response format includes truncation metadata when necessary:
{
"items": [...],
"totalCount": 100,
"isTruncated": true,
"truncatedCount": 80,
"message": "Response was truncated. Showing 20 of 100 items."
}
FAQs
MCP Server for Cursor IDE-Azure DevOps Integration
The npm package cursor-azure-devops-mcp receives a total of 59 weekly downloads. As such, cursor-azure-devops-mcp popularity was classified as not popular.
We found that cursor-azure-devops-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.