Azure DevOps Services
重要
远程Azure DevOps MCP 服务器目前以公共预览版提供。 预览版功能可能有有限的功能,可以在正式发布之前更改。
支持
- 目前,支持仅限于通过本地 MCP 服务器存储库提交的问题。
- 若要提交支持请求,请使用 远程 MCP 服务器问题模板创建问题。
远程Azure DevOps MCP 服务器是不需要本地安装的 Azure DevOps MCP Server的托管版本。 使用可流 HTTP 传输将 AI 助手直接连接到Azure DevOps托管的终结点,而不是在计算机上运行服务器。
远程服务器提供与本地服务器相同的功能,包括访问工作项、拉取请求、管道等,同时消除本地设置复杂性。
远程与本地 MCP 服务器
| 功能 | 远程 MCP 服务器(预览版) | 本地 MCP 服务器 |
|---|---|---|
| 安装 | 无需安装 | 需要 Node.js 20.0+ 和 npx |
| 运输 | 可流式传输 HTTP | 工作室 |
| 身份验证 | Microsoft Entra ID (OAuth) | Azure DevOps PAT 或Microsoft Entra ID |
| 托管 | Azure DevOps托管服务 | 在计算机上本地运行 |
| 配置 | 最小 mcp.json |
特定于环境的设置 |
| 状态 | 公共预览 | 普遍可用 |
先决条件
| 类别 | 要求 |
|---|---|
| Azure DevOps | 连接到 Microsoft Entra ID 的活动 Azure DevOps 组织 |
| 权限 | 项目中的成员身份和对要查询的资源的访问权限 |
| 环境 | 支持的 AI 助手环境(请参阅 支持的环境) |
mcp.json 配置
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http"
}
},
"inputs": []
}
还可以从 URL 中省略组织名称。 但是,如果省略组织名称,则必须在每个工具调用中将其作为上下文提供。
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/",
"type": "http"
}
},
"inputs": []
}
工具集
指定工具集以限制 MCP 服务器可用的工具。 不应与 X-MCP-Tools 结合。
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Toolsets": "repos,wiki,wit"
}
}
},
"inputs": []
}
| 工具集值 | 包含的工具 |
|---|---|
all
(默认值) |
每个工具集中的所有工具 |
repos |
存储库和拉取请求工具 (repo_*) |
wit |
工作项工具 (wit_*) 和 search_workitem |
pipelines |
管道和生成工具 (pipelines_*) |
wiki |
Wiki 工具 (wiki, wiki_upsert_page) 和 search_wiki |
work |
迭代和容量工具 (work_*) |
testplan |
测试计划工具 (testplan_*) |
只读工具
X-MCP-Readonly使用标头将服务器限制为只读操作。 如果想要阻止修改Azure DevOps资源,此限制非常有用。
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Readonly": "true"
}
}
},
"inputs": []
}
合并工具集和只读筛选
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Toolsets": "repos,wiki,wit",
"X-MCP-Readonly": "true"
}
}
},
"inputs": []
}
单个工具
使用X-MCP-Tools标头来仅启用特定工具。 不应与 X-MCP-Toolsets 结合。
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Tools": "core_list_projects, wit_my_work_items, wit_get_work_items_batch_by_ids"
}
}
},
"inputs": []
}
内部人士
当我们试验并引入新工具以及对现有工具的更新时,您可以通过使用 X-MCP-Insiders 标题提前访问这些更改。
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Insiders": "true"
}
}
},
"inputs": []
}
可用工具
注释
此列表可能并不总是反映最新的工具更新。
核心工具
核心工具始终可用。
| 工具 | 说明 |
|---|---|
core_list_projects |
列出组织中的项目 |
core_list_project_teams |
列出项目中的团队 |
工作
| 工具 | 说明 | 只读 |
|---|---|---|
work_list_team_iterations |
列出团队的迭代。 | ✅ |
work_list_iterations |
列出项目中的所有迭代。 | ✅ |
work_get_team_capacity |
获取团队在某次迭代中的容量。 | ✅ |
work_create_iterations |
创建迭代。 | ❌ |
work_assign_iterations |
将迭代分配给团队。 | ❌ |
Repos
| 工具 | 说明 | 只读 |
|---|---|---|
repo_list_repos_by_project |
列出项目中的存储库 | ✅ |
repo_list_pull_requests_by_repo_or_project |
列出拉取请求 | ✅ |
repo_list_branches_by_repo |
列出分支 | ✅ |
repo_list_my_branches_by_repo |
列出当前用户创建的分支 | ✅ |
repo_list_pull_request_threads |
列出拉取请求评论线程 | ✅ |
repo_list_pull_request_thread_comments |
列出拉取请求线程中的注释 | ✅ |
repo_list_pull_requests_by_commits |
通过提交 ID 查找拉取请求 | ✅ |
repo_get_repo_by_name_or_id |
获取存储库详细信息 | ✅ |
repo_get_branch_by_name |
获取分支详细信息 | ✅ |
repo_get_pull_request_by_id |
获取合并请求 | ✅ |
repo_get_file_content |
从存储库的特定分支、标签或提交中获取文件的内容 | ✅ |
repo_list_directory |
列出存储库中目录中的文件和文件夹 | ✅ |
repo_search_commits |
搜索提交 | ✅ |
repo_create_pull_request |
创建拉取请求 | ❌ |
repo_create_branch |
创建分支 | ❌ |
repo_create_pull_request_thread |
向 PR 添加注释线程 | ❌ |
repo_reply_to_comment |
回复 PR 评论 | ❌ |
repo_update_pull_request |
更新拉取请求 | ❌ |
repo_update_pull_request_reviewers |
添加或删除 PR 审阅者 | ❌ |
repo_update_pull_request_thread |
更新 PR 评论线程 | ❌ |
repo_vote_pull_request |
对拉取请求进行投票 | ❌ |
工作项跟踪
| 工具 | 说明 | 只读 |
|---|---|---|
wit_list_backlogs |
列出团队积压工作 | ✅ |
wit_list_backlog_work_items |
列出积压工作项 | ✅ |
wit_get_work_item |
按 ID 获取工作项 | ✅ |
wit_get_work_items_batch_by_ids |
通过 ID 获取多个工作项 | ✅ |
wit_list_work_item_comments |
列出工作项上的注释 | ✅ |
wit_list_work_item_revisions |
列出工作项的修订版本 | ✅ |
wit_get_work_items_for_iteration |
在迭代中列出工作项 | ✅ |
wit_my_work_items |
获取分配给当前用户的工作项 | ✅ |
wit_get_work_item_type |
获取工作项类型 | ✅ |
wit_get_query |
通过 ID 或路径获取查询 | ✅ |
wit_get_query_results_by_id |
运行保存的查询 | ✅ |
wit_query_by_wiql |
执行 WIQL 查询并返回匹配的工作项 | ✅ |
search_workitem |
全文工作项搜索 | ✅ |
wit_add_work_item_comment |
向工作项添加注释 | ❌ |
wit_update_work_item |
更新工作项 | ❌ |
wit_create_work_item |
创建工作项 | ❌ |
wit_update_work_items_batch |
批量更新工作项 | ❌ |
wit_work_items_link |
将工作项链接在一起 | ❌ |
wit_work_item_unlink |
从工作项中删除链接 | ❌ |
wit_add_child_work_items |
创建子工作项 | ❌ |
wit_link_work_item_to_pull_request |
将工作项链接到拉取请求 | ❌ |
wit_add_artifact_link |
向工作项添加工件链接 | ❌ |
注释
wit_query_by_wiql 当前仅对 MCP 预览体验成员开放,前提是使用 X-MCP-Insiders 标头。
Pipelines
| 工具 | 说明 | 只读 |
|---|---|---|
pipelines_get_build_definitions |
列出构建定义 | ✅ |
pipelines_get_build_definition_revisions |
列表定义修订 | ✅ |
pipelines_get_builds |
生成列表 | ✅ |
pipelines_get_build_changes |
获取构建的更改 | ✅ |
pipelines_get_build_status |
获取构建的状态 | ✅ |
pipelines_get_build_log |
获取生成日志 | ✅ |
pipelines_get_build_log_by_id |
获取特定生成日志 | ✅ |
pipelines_get_run |
获取管道运行 | ✅ |
pipelines_list_runs |
列出流水线运行 | ✅ |
pipelines_list_artifacts |
列出构建工件 | ✅ |
pipelines_download_artifact |
下载构建工件 | ✅ |
pipelines_update_build_stage |
更新构建阶段 | ❌ |
pipelines_create_pipeline |
创建管道定义 | ❌ |
pipelines_run_pipeline |
触发管道运行 | ❌ |
维基
Wiki读取操作被整合到一个统一的wiki工具中。 使用 action 参数选择操作。
| 工具 | 说明 | 只读 |
|---|---|---|
wiki(action: list_wikis) |
列出项目或组织中的 Wiki 网站 | ✅ |
wiki(action: get_wiki) |
按标识符获取维基 | ✅ |
wiki(action: list_pages) |
列出 Wiki 中的页面 | ✅ |
wiki(action: get_page) |
获取页面内容和元数据 | ✅ |
search_wiki |
全文维基搜索 | ✅ |
wiki_upsert_page |
创建或更新 Wiki 页面 | ❌ |
测试计划
| 工具 | 说明 | 只读 |
|---|---|---|
testplan_list_test_plans |
列出项目中的测试计划。 | ✅ |
testplan_list_test_suites |
列出测试计划中的测试套件。 | ✅ |
testplan_list_test_cases |
列出套件中的测试用例。 | ✅ |
testplan_show_test_results_from_build_id |
从构建中获取测试结果。 | ✅ |
testplan_create_test_plan |
创建测试计划。 | ❌ |
testplan_create_test_suite |
创建测试套件。 | ❌ |
testplan_create_test_case |
创建测试用例。 | ❌ |
testplan_update_test_case_steps |
更新测试用例步骤。 | ❌ |
testplan_add_test_cases_to_suite |
将测试用例添加到套件。 | ❌ |
搜寻
| 工具 | 说明 | 只读 |
|---|---|---|
search_code |
全文代码搜索。 | ✅ |
search_wiki |
全文维基搜索。 | ✅ |
search_workitem |
全文工作项搜索。 | ✅ |
支持的环境
远程 Azure DevOps MCP 服务器要求您的用户帐户和 Azure DevOps 组织连接到 Microsoft Entra ID。
并非所有 MCP 客户端默认都支持 Entra 身份验证。 某些环境需要额外的步骤来注册客户端应用程序。
当前支持的环境包括:
- Visual Studio Code
- Visual Studio
Visual Studio Code
若要在 Visual Studio Code 中配置远程 MCP 服务器,请执行以下操作:
-
.vscode/mcp.json使用前面显示的 mcp.json 配置将文件添加到存储库。 - 保存文件。
- 在 VS Code 中打开GitHub Copilot。
- 出现提示时,使用Microsoft Entra帐户进行身份验证并选择帐户。
身份验证完成后,将显示可用工具列表。
Visual Studio (2022 及更高版本)
通过将服务器 URL 添加到 MCP 设置,在 Visual Studio 中配置远程 MCP 服务器。 有关详细信息,请参阅 在 Visual Studio 中使用 MCP 服务器。
验证连接
设置后,通过向 AI 助手询问有关Azure DevOps数据的问题,验证远程 MCP 服务器是否正常工作。
示例:
- “列出我的Azure DevOps组织中的项目。
- “显示我分配的工作项。
- “哪些拉取请求需要我的评审?”
如果 AI 助手从Azure DevOps组织返回结果,则远程 MCP 服务器已正确配置。
故障排除
| 問题 | 解决方案 |
|---|---|
| 身份验证失败 | 验证Microsoft Entra凭据,并确认你有权访问Azure DevOps组织。 |
| 找不到服务器 | 检查服务器 URL 格式: https://mcp.dev.azure.com/{organization}. |
| 未返回任何数据 | 确认你对正在查询的项目或资源具有适当的权限。 |
| 预览不可用 | 预览版正在逐步推出。 请稍后查看或联系组织管理员。 |
对于支持,可以在 本地 MCP 服务器 存储库中创建问题。 请务必使用 远程 问题模板。
FAQ
其他客户端(如 GitHub Copilot CLI、Claude Desktop、Claude Code、CodeX 或 Cursor)呢?
其他客户端工具(如 CodeX、Claude Desktop、Claude Code 和 ChatGPT)需要在 Entra 中动态注册 OAuth 客户端 ID,然后才能将其与 MCP 服务器一起使用。 我们正在与 Entra 团队密切合作,以实现此功能。 目前,仅支持Visual Studio和Visual Studio Code。
哪些服务可以使用Azure DevOps MCP 服务器?
对其他服务(包括Azure AI Foundry、Microsoft 365 Copilot和Copilot Studio)的支持尚不可用,但即将添加。
Azure DevOps MCP 服务器是否支持 AgentId?
AgentId 支持即将推出。