About Cursor Azure Devops MCP
Cursor Azure Devops MCP is an MCP server published by maximtitovich in the Developer Tools category: azure DevOps Cursor IDE MCP server plugin.
The repository has 12 stars and 8 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/maximtitovich/cursor-azure-devops-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (20)
azure_devops_branch_file_contentGet the content of a file directly from a branch. By default returns the complete file as plain text. Set returnPlainText=false to get content in chunks with metadata. Has a 5-minute timeout for large files.
Parameters not published.
azure_devops_create_pr_commentCreate a comment on a pull request
Parameters not published.
azure_devops_linked_work_itemsGet all linked work items with their full details
Parameters not published.
azure_devops_projectsList all Azure DevOps projects in your organization. Returns project details including ID, name, description, visibility, and state. Results are automatically truncated if they exceed size limits.
Parameters not published.
azure_devops_pull_request_by_idGet detailed information about a specific pull request. Returns complete PR data including title, description, status, reviewers, work items, commits, policy evaluations, and merge status. Useful for getting the full context of a PR. Response includes all associated metadata.
Parameters not published.
azure_devops_pull_request_changesGet detailed code changes for a pull request
Parameters not published.
azure_devops_pull_request_file_contentGet the content of a specific file in a pull request. By default returns the complete file as plain text. Set returnPlainText=false to get content in chunks with metadata. Has a 5-minute timeout for large files.
Parameters not published.
azure_devops_pull_request_threadsGet all comment threads in a pull request. Returns thread details including comments, status, relationships, and file annotations. Supports both file-specific and general comments. Results include thread context and metadata.
Parameters not published.
azure_devops_pull_requestsList all pull requests in a repository. Returns comprehensive PR information including title, description, status, reviewers, work items, commits, and thread counts. Supports filtering and pagination. Results are automatically truncated if they exceed size limits.
Parameters not published.
azure_devops_repositoriesList all Git repositories in an Azure DevOps project. Returns repository details including ID, name, project info, default branch, size, and URLs. Supports both project-specific and organization-wide repository listing. Results are automatically truncated if they exceed size limits.
Parameters not published.
Show all 20 tools
azure_devops_test_casesList all test cases for a test suite
Parameters not published.
azure_devops_test_planGet a test plan by ID
Parameters not published.
azure_devops_test_plansList all test plans in a project. Returns test plan details including ID, name, area path, and iteration path. Results are automatically truncated if they exceed size limits while preserving essential metadata.
Parameters not published.
azure_devops_test_suiteGet detailed information about a specific test suite by ID. Returns suite details, test cases, configurations, and related information. Supports all test suite types (static, requirement-based, query-based).
Parameters not published.
azure_devops_test_suitesList all test suites for a test plan
Parameters not published.
azure_devops_work_itemGet detailed information about a specific work item by ID. Returns work item fields, relations, history, and metadata. Supports all work item types (bugs, tasks, user stories, etc).
Parameters not published.
azure_devops_work_item_attachmentsGet all attachments associated with a work item. Returns attachment details including file name, size, creator, timestamps, and download URLs. Supports all attachment types including images, documents, and binary files. Results include metadata for each attachment.
Parameters not published.
azure_devops_work_item_commentsGet comments for a specific work item
Parameters not published.
azure_devops_work_item_linksGet all links and relationships for a work item. Returns detailed link information including link types, target work items, and relationship attributes. Supports all link types (Parent/Child, Related, Predecessor/Successor, etc). Results include full context of work item relationships.
Parameters not published.
azure_devops_work_itemsGet detailed information for multiple work items by their IDs. Returns complete work item data including fields, relations, history, and metadata for each item. Useful for bulk retrieval of work items. Response is automatically truncated if it exceeds size limits while preserving essential data.
Parameters not published.
Ask AI
Ask AI about Cursor Azure Devops MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- !No dynamic code executionSource scan found eval or shell execution. Review how tool inputs reach it before granting credentials.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
Releases
README
Cursor Azure DevOps MCP Server
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.
Features
- Get Azure DevOps projects
- Retrieve work items by ID
- Fetch multiple work items
- List repositories in a project
- Get pull requests for a repository
- View pull request details and threads
- Retrieve work item attachments (images, PDFs, and other files)
- Get work item comments with metadata (including mentions and reactions)
- Get detailed code changes for pull requests (view file contents before and after changes)
- Create comments on pull requests (with support for replying to existing comments)
- Test Plan Management:
- List all test plans in a project
- Get test plan details by ID
- List test suites in a test plan
- Get test suite details by ID
- List test cases in a test suite
- Smart Response Handling:
- Automatic truncation of large responses to fit AI model limits
- Preservation of essential fields in truncated responses
- Metadata about truncation status and original size
- Project Configuration:
- Default project support from configuration
- Fallback to configuration when project is not specified
- Proper error handling for missing project information
Changelog
Version 1.0.3
Added
- Test Plan Management Support:
- New tool:
azure_devops_test_plans- List all test plans for a project - New tool:
azure_devops_test_plan- Get a test plan by ID - New tool:
azure_devops_test_suites- List all test suites for a test plan - New tool:
azure_devops_test_suite- Get a test suite by ID - New tool:
azure_devops_test_cases- List all test cases for a test suite
- New tool:
Enhanced
- Response Size Management:
- Added intelligent response truncation (max 50KB by default)
- Preserved essential fields in truncated responses
- Added truncation metadata in responses
- Project Configuration:
- Added support for default project from configuration
- Improved project parameter handling in all test-related methods
- Added proper error handling for missing project information
Fixed
- Parameter ordering in test suite methods to comply with TypeScript requirements
- Error handling improvements in test-related API calls
- Response formatting for large test suite responses
Installation
Global Installation
npm install -g cursor-azure-devops-mcp
Local Installation
npm install cursor-azure-devops-mcp
Configuration
The server can be configured using multiple sources, with the following priority:
- Command line arguments
- VSCode/Cursor IDE settings
- Environment variables /
.envfile - Default values
Command Line Arguments
You 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 |
VSCode/Cursor IDE Settings
You can configure the server in your VSCode or Cursor IDE settings:
- Global settings:
~/.vscode/settings.jsonor~/.cursor/settings.json - Workspace settings:
.vscode/settings.jsonor.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"
}
}
Environment Variables
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.
Usage
Running with npx
The easiest way to use this MCP server is with npx:
npx cursor-azure-devops-mcp
Setting up in Cursor IDE (Version 0.46.9+)
Cursor IDE supports two methods for connecting to MCP servers: Command mode and SSE mode.
Option 1: Command Mode (Recommended)
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-mcpIf 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:
- Make sure you have the latest version of the package installed
- Try reinstalling the package:
npm install -g cursor-azure-devops-mcp - Check that your
.envfile is correctly set up with your Azure DevOps credentials
Option 2: SSE Mode (Alternative)
Note: 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-serveror
npx cursor-azure-devops-mcp-sseThis 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"
Windows Users
If you're using Windows and experiencing issues with the command mode, try this format:
cmd /k npx cursor-azure-devops-mcp
mcp.json installation
{
"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"
]
}
}
Using in Your Code
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
// ...
Available Tools
| 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) |
Test Management Tools
The test management tools provide comprehensive access to Azure DevOps test plans, suites, and cases:
- Automatic Project Handling: All test tools support using the default project from configuration
- Smart Response Truncation: Large responses are automatically truncated to fit AI model limits while preserving essential information
- Metadata Preservation: Even in truncated responses, important metadata like IDs, names, and relationships are preserved
- Error Handling: Comprehensive error handling with detailed error messages
Example Usage:
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:
- First retrieve the test plans for your project using
azure_devops_test_plans - Use a specific test plan ID to get test suites with
azure_devops_test_suites - Finally, get test cases for a specific suite using
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."
}
README fetched from the repository 7 days ago. The original is authoritative.