@nisegami/mcp-server-azure-devops v0.1.50
Azure DevOps MCP Server
A Model Context Protocol (MCP) server implementation for Azure DevOps, allowing AI assistants to interact with Azure DevOps APIs through a standardized protocol.
Upstream
This project was forked from Tiberriver256/mcp-server-azure-devops to add support for working with Time Logs and other fixes for our esoteric environment.
Overview
This server implements the Model Context Protocol (MCP) for Azure DevOps, enabling AI assistants like Claude to interact with Azure DevOps resources securely. The server acts as a bridge between AI models and Azure DevOps APIs, providing a standardized way to:
- Access and manage projects, work items, repositories, and more
- Create and update work items, branches, and pull requests
- Execute common DevOps workflows through natural language
- Access repository content via standardized resource URIs
- Safely authenticate and interact with Azure DevOps resources
Server Structure
The server is structured around the Model Context Protocol (MCP) for communicating with AI assistants. It provides tools for interacting with Azure DevOps resources including:
- Projects
- Work Items
- Repositories
- Pull Requests
- Branches
- Pipelines
Core Components
- AzureDevOpsServer: Main server class that initializes the MCP server and registers tools
- Feature Modules: Organized by feature area (work-items, projects, repositories, etc.)
- Request Handlers: Each feature module provides request identification and handling functions
- Tool Handlers: Modular functions for each Azure DevOps operation
- Configuration: Environment-based configuration for organization URL, PAT, etc.
The server uses a feature-based architecture where each feature area (like work-items, projects, repositories) is encapsulated in its own module. This makes the codebase more maintainable and easier to extend with new features.
Getting Started
Prerequisites
- Node.js (v16+)
- npm or yarn
- Azure DevOps account with appropriate access
- Authentication credentials (see Authentication Guide for details):
- Personal Access Token (PAT), or
- Azure Identity credentials, or
- Azure CLI login
Running with NPX
Usage with VS Code Copilot
To integrate with VS Code Copilot, add the following configurations to your configuration file at C:\Users\username\AppData\Roaming\Code\User\settings.json.
Personal Access Token (PAT) Authentication
{
"mcp": {
"inputs": [],
"servers": {
"azureDevOps": {
"command": "npx",
"args": ["-y", "@nisegami/mcp-server-azure-devops@latest"],
"env": {
"AZURE_DEVOPS_USERNAME": "your-username",
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
"AZURE_DEVOPS_AUTH_METHOD": "pat",
"AZURE_DEVOPS_PAT": "<YOUR_PAT>",
"AZURE_DEVOPS_DEFAULT_PROJECT": "your-project-name",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}
}For detailed configuration instructions and more authentication options, see the Authentication Guide.
Usage with Claude Desktop/Cursor AI
To integrate with Claude Desktop or Cursor AI, add the following configurations to your configuration file.
Personal Access Token (PAT) Authentication
{
"mcpServers": {
"azureDevOps": {
"command": "npx",
"args": ["-y", "@nisegami/mcp-server-azure-devops"],
"env": {
"AZURE_DEVOPS_USERNAME": "your-username",
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
"AZURE_DEVOPS_AUTH_METHOD": "pat",
"AZURE_DEVOPS_PAT": "<YOUR_PAT>",
"AZURE_DEVOPS_DEFAULT_PROJECT": "your-project-name",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}For detailed configuration instructions and more authentication options, see the Authentication Guide.
Authentication Methods
This server supports multiple authentication methods for connecting to Azure DevOps APIs. For detailed setup instructions, configuration examples, and troubleshooting tips, see the Authentication Guide.
Supported Authentication Methods
- Personal Access Token (PAT) - Simple token-based authentication
Example configuration files for each authentication method are available in the examples directory.
Troubleshooting Authentication
For detailed troubleshooting information for each authentication method, see the Authentication Guide.
Common issues include:
- Invalid or expired credentials
- Insufficient permissions
- Network connectivity problems
- Configuration errors
Authentication Implementation Details
For technical details about how authentication is implemented in the Azure DevOps MCP server, see the Authentication Guide and the source code in the src/auth directory.
Available Tools
The Azure DevOps MCP server provides a variety of tools for interacting with Azure DevOps resources. For detailed documentation on each tool, please refer to the corresponding documentation.
User Tools
get_me: Get details of the authenticated user (id, displayName, email)
Organization Tools
list_organizations: List all accessible organizations
Project Tools
list_projects: List all projects in an organizationget_project: Get details of a specific projectget_project_details: Get comprehensive details of a project including process, work item types, and teams
Repository Tools
list_repositories: List all repositories in a projectget_repository: Get details of a specific repositoryget_repository_details: Get detailed information about a repository including statistics and refsget_file_content: Get content of a file or directory from a repository
Work Item Tools
get_work_item: Retrieve a work item by IDcreate_work_item: Create a new work itemupdate_work_item: Update an existing work itemlist_work_items: List work items in a projectmanage_work_item_link: Add, remove, or update links between work items
Pipelines Tools
list_pipelines: List pipelines in a projectget_pipeline: Get details of a specific pipelinetrigger_pipeline: Trigger a pipeline run with customizable parameters
Wiki Tools
get_wikis: List all wikis in a projectget_wiki_page: Get content of a specific wiki page as plain text
Time Log Tools
create_time_log: Create a new time log entry for a work itemread_time_logs: Read time log entries with optional filtering
Pull Request Tools
create_pull_request- Create a new pull requestlist_pull_requests- List pull requests in a repositoryadd_pull_request_comment- Add a comment to a pull requestget_pull_request_comments- Get comments from a pull requestupdate_pull_request- Update an existing pull request (title, description, status, draft state, reviewers, work items)
For comprehensive documentation on all tools, see the Tools Documentation.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for contribution guidelines.
Star History
License
MIT