Azure DevOps工具服务器

一个为AI助手提供41种Azure DevOps工具访问的MCP服务器,覆盖管道、Git仓库、拉取请求、发布、看板、工作项、测试管理和Wiki等功能。

  • by iimsaurav
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 iimsaurav/azure-devops-mcp

使用说明

Azure DevOps MCP服务器

一 MCP(模型上下文协议) 暴露的服务器 41个Azure DevOps工具 AI助手——涵盖管道、Git存储库、拉取请求、发布、板、工作项、测试管理和wiki。

认证:Azure Entra设备代码流--无需应用程序注册。

它能做什么

类别 工具 亮点
管道和建筑 6 列出管道、查看运行/日志、触发构建、浏览构建工件
发布和批准 6 列出/创建发布,查看发布详细信息,列出/批准/拒绝批准
Git存储库 6 列出存储库、浏览分支、查看提交、读取文件内容、比较分支
拉取请求 6 列出/创建/更新PR,阅读评论线程,添加评论(内联或通用)
板和工作项目 10 列出板、获取/创建/更新/删除工作项、注释、WIQL查询、保存的查询
测试管理 3 列出测试运行,查看测试结果,获取代码覆盖率
维基 3 列出Wiki、阅读页面、创建/更新页面
总计41

先决条件

  • Python 3.10+
  • 访问Azure DevOps组织(dev.ai.com)

安装

来自PyPI(推荐)

pip install azure-devops-mcp-server

或与 紫外线:

uv pip install azure-devops-mcp-server

来源

git clone <your-repo-url>
cd azure-devops-mcp
pip install -e .

快速开始

安装后,请执行以下3个步骤:

步骤1:安装

pip install azure-devops-mcp-server

步骤2:添加到您的AI编辑器

打开编辑器的MCP配置文件并添加服务器。以下是VS Code作为示例(.vscode/mcp.json):

选项A——使用PAT(最简单,无浏览器提示):

{
  "servers": {
    "azure-devops": {
      "command": "azure-devops-mcp",
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/YOUR-ORG",
        "AZURE_DEVOPS_PAT": "YOUR-PERSONAL-ACCESS-TOKEN"
      }
    }
  }
}

要创建PAT,请执行以下操作: Azure DevOps→ 用户设置→ 个人访问令牌→ 新令牌.

选项B——带设备代码流(不需要PAT):

首先,从您的终端登录一次:

export AZURE_DEVOPS_ORG_URL=https://dev.azure.com/YOUR-ORG
azure-devops-mcp auth login

这将打开您的浏览器,您登录,令牌将在本地缓存。然后添加到编辑器中——不需要PAT:

{
  "servers": {
    "azure-devops": {
      "command": "azure-devops-mcp",
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/YOUR-ORG"
      }
    }
  }
}

令牌缓存在 ~/.azure-devops-mcp/token_cache.json 自动刷新(约90天)。 跑 azure-devops-mcp auth status 检查您的登录状态。

第三步:使用它

打开你的人工智能助手(Copilot Chat、Claude等),问:

List all pipelines in my project

服务器处理身份验证和API调用-AI工具自动看到41个Azure DevOps命令。


配置

设置这些环境变量(通过shell, .env 文件或MCP客户端配置):

变量 必填 描述
AZURE_DEVOPS_ORG_URL 是 您的Azure DevOps组织URL(例如。, https://dev.azure.com/your-organization)
AZURE_DEVOPS_PROJECT 否 默认项目(可根据每次工具调用进行覆盖)

认证

服务器支持 4种身份验证方法,从环境变量中自动检测到:

方法1:个人访问令牌(PAT)——最简单

最适合:脚本、个人使用、CI/CD管道。

变量 描述
AZURE_DEVOPS_PAT 你的 个人访问令牌
"env": {
  "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/my-org",
  "AZURE_DEVOPS_PAT": "your-pat-here"
}

方法2:服务主体(客户端凭据)——适用于应用程序

最适合:注册的Azure AD应用程序、服务到服务、自动化工作流。

变量 描述
AZURE_CLIENT_ID Azure AD应用注册中的应用程序(客户端)ID
AZURE_CLIENT_SECRET 应用程序的客户端机密
AZURE_TENANT_ID Azure AD租户ID
"env": {
  "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/my-org",
  "AZURE_CLIENT_ID": "your-app-id",
  "AZURE_CLIENT_SECRET": "your-secret",
  "AZURE_TENANT_ID": "your-tenant-id"
}

方法3:托管身份——适用于Azure托管环境

最适合:在Azure虚拟机、应用服务、Azure功能、AKS上运行。没有要管理的凭据。

pip install azure-devops-mcp-server[managed-identity]
变量 描述
AZURE_USE_MANAGED_IDENTITY 设置为 true 以启用
AZURE_CLIENT_ID (可选) 用户分配的托管身份的客户端ID
"env": {
  "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/my-org",
  "AZURE_USE_MANAGED_IDENTITY": "true"
}

方法4:设备代码流——交互式(默认)

最适合:本地运行的开发人员。无需PAT或应用程序注册。

推荐: 在配置AI编辑器之前,从终端进行预身份验证:

export AZURE_DEVOPS_ORG_URL=https://dev.azure.com/my-org
azure-devops-mcp auth login    # Opens browser, caches token
azure-devops-mcp auth status   # Verify login state

浏览器会自动打开。登录后,令牌将缓存在 ~/.azure-devops-mcp/token_cache.json 自动刷新(约90天)。

如果你跳过 auth login,服务器将在第一次API调用时通过stderr进行提示,但大多数AI编辑器不显示stderr,因此强烈建议进行预验证。

优先:帕特→ 客户端凭据→ 管理身份→ 设备代码。第一种方法检测到获胜。

设置环境变量

有三种方法可以传递您的配置:

选项A——在AI编辑器的MCP配置中 (推荐)

每个MCP兼容编辑器都有一个 "env" 块在其配置中。这是最简单的方法——只需在那里添加变量。请参阅 整合 下面的部分提供了特定于编辑器的示例。

选项B——通过a .env 文件

创建一个 .env 工作目录中的文件(使用 .env.example 作为模板):

AZURE_DEVOPS_ORG_URL=https://dev.azure.com/my-org
AZURE_DEVOPS_PAT=my-pat-token

服务器在启动时通过以下方式自动加载 python-dotenv.

选项C——通过shell环境 (CI/CD、Docker、手动运行)

export AZURE_DEVOPS_ORG_URL=https://dev.azure.com/my-org
export AZURE_DEVOPS_PAT=my-pat-token
azure-devops-mcp

整合

通过pip安装后 azure-devops-mcp 命令在PATH中可用。配置您的AI工具:

VS代码(GitHub复制/复制聊天)

添加 .vscode/mcp.json 在您的工作区中(或用户设置下的JSON) mcp.servers):

{
  "servers": {
    "azure-devops": {
      "command": "azure-devops-mcp",
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
        "AZURE_DEVOPS_PROJECT": "your-default-project"
      }
    }
  }
}

克劳德桌面

添加到您的Claude Desktop配置文件中:

  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "azure-devops": {
      "command": "azure-devops-mcp",
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
        "AZURE_DEVOPS_PROJECT": "your-default-project"
      }
    }
  }
}

克劳德码(Cortex码)

claude mcp add azure-devops -- azure-devops-mcp

然后在shell或Claude配置中设置环境变量。

光标

添加 .cursor/mcp.json 在您的工作空间中:

{
  "mcpServers": {
    "azure-devops": {
      "command": "azure-devops-mcp",
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
        "AZURE_DEVOPS_PROJECT": "your-default-project",
        "AZURE_TENANT_ID": "your-tenant-id-or-organizations"
      }
    }
  }
}

帆板运动

添加 ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "azure-devops": {
      "command": "azure-devops-mcp",
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
        "AZURE_DEVOPS_PROJECT": "your-default-project"
      }
    }
  }
}

任何兼容MCP的客户端

服务器通过以下方式进行通信 标准.将任何MCP客户端指向:

azure-devops-mcp

从源代码运行(备选)

如果你克隆了仓库而不是通过pip安装:

{
  "servers": {
    "azure-devops": {
      "command": "uv",
      "args": ["run", "python", "-m", "azure_devops_mcp"],
      "cwd": "/path/to/azure-devops-mcp",
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
        "AZURE_DEVOPS_PROJECT": "your-default-project"
      }
    }
  }
}

全部41个工具

管道和建筑文物

工具 说明
list_pipelines 列出项目中的所有YAML管道
get_pipeline_runs 获取管道的最近运行记录
get_pipeline_run_logs 获取管道运行的完整日志
trigger_pipeline 使用可选模板参数触发新的管道运行
list_build_artifacts 列出构建产生的工件
get_artifact_download_url 获取特定构建工件的下载URL

发布和批准

工具 说明
list_release_definitions 列出经典的发布定义(发布管道)
list_releases 列表发布,可根据定义进行筛选
get_release 获取发布详细信息,包括环境/阶段状态
create_release 创建具有可选工件版本覆盖的版本
list_release_approvals 列出待定(或其他状态)的发布批准
update_release_approval 批准或拒绝发布批准

Git存储库

工具 说明
list_repositories 列出项目中的所有Git存储库
get_repository 获取有关存储库的详细信息(URL、默认分支等)
list_branches 列出分支,可选择按前缀过滤
get_commits 获取最近的提交,可选择按分支或作者进行筛选
get_file_content 从存储库读取文件内容
compare_branches 比较两个分支(前/后计数+更改的文件)

拉取请求

工具 说明
list_pull_requests 按状态列出PR(活动/完成/放弃)
get_pull_request 获取PR详细信息(审阅者、合并状态等)
create_pull_request 使用可选审阅者和草稿模式创建新的PR
update_pull_request 更新PR状态、标题、描述、自动完成、合并策略
get_pull_request_threads 获取PR上的所有评论帖子
create_pull_request_comment 添加注释(常规注释或特定文件/行上的内联注释)

板和工作项目

工具 说明
list_boards 列出项目/团队的公告板
get_board_work_items 在带有列信息的板上获取工作项
get_work_item 获取完整的工作项详细信息(字段、关系、估计)
create_work_item 创建Bug、用户故事、任务、史诗或功能
update_work_item 更新字段和/或添加关系链接
delete_work_item 删除工作项(回收站或永久)
query_work_items 执行任意WIQL查询
get_work_item_comments 获取工作项的评论
add_work_item_comment 向工作项添加注释
list_saved_queries 列出已保存的查询文件夹和查询
run_saved_query 按ID执行已保存的查询

测试管理

工具 说明
list_test_runs 列出测试运行,可选择按状态筛选
get_test_run_results 获取运行的测试结果(通过/失败/错误详细信息)
get_code_coverage 获取构建的代码覆盖率摘要

维基

工具 说明
list_wikis 列出项目中的所有Wiki
get_wiki_page 按路径获取wiki页面的内容
create_or_update_wiki_page 创建或更新包含markdown内容的wiki页面

示例提示

List all pipelines in the "MyProject" project
Show me the last 5 runs for pipeline 42
List all active pull requests in the "backend-api" repository
Create a pull request from feature/login to main titled "Add login page"
Show me pending release approvals
Approve release approval 1234 with comment "Looks good, deploying to prod"
Query all active bugs assigned to me:
SELECT [System.Id], [System.Title] FROM workitems
WHERE [System.WorkItemType] = 'Bug' AND [System.State] = 'Active'
AND [System.AssignedTo] = @Me
Get the wiki page at /Runbooks/Deployment from the project wiki
Show test results for test run 567 — only failures
Compare the main and develop branches in the "frontend" repo

发展

运行MCP开发检查器以交互方式测试工具:

uv run mcp dev src/azure_devops_mcp/server.py

建筑

azure-devops-mcp/
├── src/azure_devops_mcp/
│   ├── __init__.py            # Package init + version
│   ├── __main__.py            # CLI entry point (azure-devops-mcp command)
│   ├── server.py              # MCP server — registers all 41 tools
│   ├── auth.py                # MSAL device-code auth (no app registration needed)
│   └── clients/
│       ├── pipelines.py       # Pipeline + build artifact API calls
│       ├── releases.py        # Classic release + approval API calls
│       ├── git.py             # Git repos, branches, commits, PRs
│       ├── boards.py          # Boards, work items, comments, saved queries
│       ├── tests.py           # Test runs, results, code coverage
│       └── wiki.py            # Wiki pages
├── .env.example               # Environment variable template
├── pyproject.toml             # Python project config (PyPI metadata + build)
└── README.md

所有客户端模块都包括具有指数回退的重试逻辑 429 Too Many Requests 和 5xx 服务器错误。

许可证

麻省理工学院