{"id":"3990c692-532e-466b-b969-ca8199777b3c","slug":"mcp-server-azure-devops","kind":"mcp","name":"mcp-server-azure-devops","summary":"An MCP server for Azure DevOps","owner":"Tiberriver256","repoUrl":"https://github.com/Tiberriver256/mcp-server-azure-devops","license":"MIT","licenseTier":"permissive","trust":"community","stars":393,"match":null,"fewStars":false,"format":"mcp","createdAt":"2025-02-28T00:05:42.000Z","addedAt":"2026-10-14T03:43:05.195Z","logoUrl":"https://avatars.githubusercontent.com/u/6989492?u=b9a5cb65c9abca67e1314c667ccf70e9472119b3&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["cloud-infra"],"tags":["azure-devops","ai","claude","copilot","cursor","vscode"],"runtime":"node","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-15T02:36:31.033Z","sample":false,"url":"https://conduits.dev/tools/mcp-server-azure-devops","language":"TypeScript","transports":["stdio"],"install":{"npm":"@tiberriver256/mcp-server-azure-devops"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# Azure DevOps MCP Server\n\nA Model Context Protocol (MCP) server implementation for Azure DevOps, allowing AI assistants to interact with Azure DevOps APIs through a standardized protocol.\n\n> **Looking for the official server?** Microsoft maintains a product-supported Azure DevOps MCP at [microsoft/azure-devops-mcp](https://github.com/microsoft/azure-devops-mcp). If you use Azure DevOps Services (cloud), start there.\n>\n> This community server remains a good fit when you need **Azure DevOps Server (on-premises)** support — especially older versions that may not work with Microsoft's MCP — or features not yet available in the official server. See [Discussion #237](https://github.com/Tiberriver256/mcp-server-azure-devops/discussions/237) for more context. See [ROADMAP.md](./ROADMAP.md) for where this server differentiates and what is planned.\n\n## Overview\n\nThis server implements the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) 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:\n\n- Access and manage projects, work items, repositories, and more\n- Create and update work items, branches, and pull requests\n- Execute common DevOps workflows through natural language\n- Access repository content via standardized resource URIs\n- Safely authenticate and interact with Azure DevOps resources\n\n## Server Structure\n\nThe server is structured around the Model Context Protocol (MCP) for communicating with AI assistants. It provides tools for interacting with Azure DevOps resources including:\n\n- Projects\n- Work Items\n- Repositories\n- Pull Requests\n- Branches\n- Pipelines\n\n### Core Components\n\n- **AzureDevOpsServer**: Main server class that initializes the MCP server and registers tools\n- **Feature Modules**: Organized by feature area (work-items, projects, repositories, etc.)\n- **Request Handlers**: Each feature module provides request identification and handling functions\n- **Tool Handlers**: Modular functions for each Azure DevOps operation\n- **Configuration**: Environment-based configuration for organization URL, PAT, etc.\n\nThe 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.\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v16+)\n- npm or yarn\n- Azure DevOps account with appropriate access\n- Authentication credentials (see [Authentication Guide](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/authentication.md) for details):\n  - Personal Access Token (PAT), or\n  - Azure Identity credentials, or\n  - Azure CLI login\n\n### Running from npm (npx)\n\nIf you just want to run the **published** server package, you **do not** need to clone or build this repository:\n\n```bash\nnpx -y @tiberriver256/mcp-server-azure-devops\n```\n\n### Running locally (from source)\n\nFrom a checkout of this repository:\n\n```bash\nnpm ci\ncp .env.example .env   # then edit values\nnpm run build\nnpm start              # runs: node dist/index.js\n```\n\nFor iterative development (auto-reload):\n\n```bash\nnpm run dev            # runs src/index.ts via tsx watch\n```\n\n### Usage with Claude Desktop/Cursor AI\n\nTo integrate with Claude Desktop or Cursor AI, add one of the following configurations to your configuration file.\n\n#### Azure Identity Authentication\n\nBe sure you are logged in to Azure CLI with `az login` then add the following:\n\n```json\n{\n  \"mcpServers\": {\n    \"azureDevOps\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@tiberriver256/mcp-server-azure-devops\"],\n      \"env\": {\n        \"AZURE_DEVOPS_ORG_URL\": \"https://dev.azure.com/your-organization\",\n        \"AZURE_DEVOPS_AUTH_METHOD\": \"azure-identity\",\n        \"AZURE_DEVOPS_DEFAULT_PROJECT\": \"your-project-name\"\n      }\n    }\n  }\n}\n```\n\n#### Personal Access Token (PAT) Authentication\n\n```json\n{\n  \"mcpServers\": {\n    \"azureDevOps\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@tiberriver256/mcp-server-azure-devops\"],\n      \"env\": {\n        \"AZURE_DEVOPS_ORG_URL\": \"https://dev.azure.com/your-organization\",\n        \"AZURE_DEVOPS_AUTH_METHOD\": \"pat\",\n        \"AZURE_DEVOPS_PAT\": \"<YOUR_PAT>\",\n        \"AZURE_DEVOPS_DEFAULT_PROJECT\": \"your-project-name\"\n      }\n    }\n  }\n}\n```\n\nAzure DevOps Server (on-prem) requires PAT authentication. Example:\n\n```json\n{\n  \"mcpServers\": {\n    \"azureDevOps\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@tiberriver256/mcp-server-azure-devops\"],\n      \"env\": {\n        \"AZURE_DEVOPS_ORG_URL\": \"https://server:8080/tfs/DefaultCollection\",\n        \"AZURE_DEVOPS_AUTH_METHOD\": \"pat\",\n        \"AZURE_DEVOPS_PAT\": \"<YOUR_PAT>\",\n        \"AZURE_DEVOPS_DEFAULT_PROJECT\": \"your-project-name\"\n      }\n    }\n  }\n}\n```\n\nFor detailed configuration instructions and more authentication options, see the [Authentication Guide](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/authentication.md).\n\n## Authentication Methods\n\nThis server supports multiple authentication methods for connecting to Azure DevOps APIs. For detailed setup instructions, configuration examples, and troubleshooting tips, see the [Authentication Guide](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/authentication.md).\n\n### Supported Authentication Methods\n\n1. **Personal Access Token (PAT)** - Simple token-based authentication\n2. **Azure Identity (DefaultAzureCredential)** - Flexible authentication using the Azure Identity SDK\n3. **Azure CLI** - Authentication using your Azure CLI login\n\nExample configuration files for each authentication method are available in the [examples directory](https://github.com/tiberriver256/mcp-server-azure-devops/tree/main/docs/examples).\n\nAzure DevOps Server (on-prem) supports PAT authentication only. Azure Identity and Azure CLI are supported for Azure DevOps Services.\n\n## Environment Variables\n\nFor a complete list of environment variables and their descriptions, see the [Authentication Guide](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/authentication.md#configuration-reference).\n\nKey environment variables include:\n\n| Variable                       | Description                                                                        | Required                     | Default          |\n| ------------------------------ | ---------------------------------------------------------------------------------- | ---------------------------- | ---------------- |\n| `AZURE_DEVOPS_AUTH_METHOD`     | Authentication method (`pat`, `azure-identity`, or `azure-cli`) - case-insensitive | No                           | `azure-identity` |\n| `AZURE_DEVOPS_ORG_URL`         | Full URL to your Azure DevOps organization or Server collection (e.g., `https://server:8080/tfs/DefaultCollection`) | Yes                          | -                |\n| `AZURE_DEVOPS_PAT`             | Personal Access Token (for PAT auth)                                               | Only with PAT auth           | -                |\n| `AZURE_DEVOPS_DEFAULT_PROJECT` | Default project if none specified                                                  | No                           | -                |\n| `AZURE_DEVOPS_API_VERSION`     | REST api-version for the tools that call the REST API directly ([per-release values](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/authentication.md#rest-api-version)) | No                           | `7.1`            |\n| `AZURE_TENANT_ID`              | Azure AD tenant ID (for service principals)                                        | Only with service principals | -                |\n| `AZURE_CLIENT_ID`              | Azure AD application ID (for service principals)                                   | Only with service principals | -                |\n| `AZURE_CLIENT_SECRET`          | Azure AD client secret (for service principals)                                    | Only with service principals | -                |\n| `LOG_LEVEL`                    | Logging level (debug, info, warn, error)                                           | No                           | info             |\n\n## Troubleshooting Authentication\n\nFor detailed troubleshooting information for each authentication method, see the [Authentication Guide](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/authentication.md#troubleshooting-authentication-issues).\n\nCommon issues include:\n\n- Invalid or expired credentials\n- Insufficient permissions\n- Network connectivity problems\n- Configuration errors\n\n## Authentication Implementation Details\n\nFor technical details about how authentication is implemented in the Azure DevOps MCP server, see the [Authentication Guide](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/authentication.md) and the source code in the `src/auth` directory.\n\n## Available Tools\n\nThe 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.\n\n### User Tools\n\n- `get_me`: Get details of the authenticated user (id, displayName, email) (Azure DevOps Services only)\n\n### Organization Tools\n\n- `list_organizations`: List all accessible organizations (Azure DevOps Services only)\n\n### Project Tools\n\n- `list_projects`: List all projects in an organization\n- `get_project`: Get details of a specific project\n- `get_project_details`: Get comprehensive details of a project including process, work item types, and teams\n\n### Repository Tools\n\n- `list_repositories`: List all repositories in a project\n- `get_repository`: Get details of a specific repository\n- `get_repository_details`: Get detailed information about a repository including statistics and refs\n- `get_file_content`: Get content of a file or directory from a repository\n- `get_repository_tree`: List a repository's file tree from any path and depth\n- `create_branch`: Create a new branch from an existing one\n- `create_commit`: Commit multiple file changes to a branch using unified diffs or search/replace instructions\n\n### Work Item Tools\n\n- `get_work_item`: Retrieve a work item by ID\n- `create_work_item`: Create a new work item\n- `update_work_item`: Update an existing work item\n- `list_work_items`: List work items in a project\n- `manage_work_item_link`: Add, remove, or update links between work items\n- `create_work_item_attachment`: Upload and attach a file to a work item\n- `get_work_item_attachment`: Download an attachment from a work item\n- `delete_work_item_attachment`: Delete an attachment from a work item\n\n### Search Tools\n\n- `search_code`: Search for code across repositories in a project\n- `search_wiki`: Search for content across wiki pages in a project\n- `search_work_items`: Search for work items across projects in Azure DevOps\n\n### Pipelines Tools\n\n- `list_pipelines`: List pipelines in a project\n- `get_pipeline`: Get details of a specific pipeline\n- `list_pipeline_runs`: List recent runs for a pipeline with optional filters\n- `get_pipeline_run`: Get detailed run information and artifact summaries\n- `download_pipeline_artifact`: Download a single artifact file as text\n- `pipeline_timeline`: Retrieve the stage and job timeline for a run\n- `get_pipeline_log`: Retrieve raw or JSON-formatted log content\n- `trigger_pipeline`: Trigger a pipeline run with customizable parameters\n\n### Wiki Tools\n\n- `get_wikis`: List all wikis in a project\n- `get_wiki_page`: Get content of a specific wiki page as plain text\n\n### Pull Request Tools\n\n- [`create_pull_request`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#create_pull_request) - Create a new pull request\n- [`get_pull_request`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#get_pull_request) - Get a pull request by ID\n- [`list_pull_requests`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#list_pull_requests) - List pull requests in a repository\n- [`add_pull_request_comment`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#add_pull_request_comment) - Add a comment to a pull request\n- [`get_pull_request_comments`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#get_pull_request_comments) - Get comments from a pull request\n- [`update_pull_request`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#update_pull_request) - Update an existing pull request (title, description, status, draft state, reviewers, work items)\n- [`get_pull_request_changes`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#get_pull_request_changes) - List changes in a pull request and policy evaluation status\n- [`get_pull_request_checks`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#get_pull_request_checks) - Summarize status checks, policy evaluations, and their related pipelines\n\nFor comprehensive documentation on all tools, see the [Tools Documentation](https://github.com/tiberriver256/mcp-server-azure-devops/tree/main/docs/tools).\n\n## Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/CONTRIBUTING.md) for contribution guidelines.\n\n## Star History\n\n[![Star History Chart](https://star-history.dera.page/svg?repos=tiberriver256/mcp-server-azure-devops&type=Date)](https://star-history.dera.page/#tiberriver256/mcp-server-azure-devops&Date)\n\n## License\n\nMIT\n"}