Azure DevOps MCP 服务器

Azure DevOps MCP Server 是一个本地 MCP 服务器,用于在代码编辑器中直接执行 Azure DevOps 任务,支持项目管理、工作项管理、代码仓库操作、测试计划管理等多种功能。

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

使用说明

⭐ Azure DevOps MCP 服务器

轻松安装适用于 VS Code 或 VS Code Insiders 的 Azure DevOps MCP 服务器:

这个TypeScript项目提供了一个 本地 Azure DevOps 的 MCP 服务器,使您能够直接从代码编辑器执行各种 Azure DevOps 任务。

📄 目录

  1. 📺 概述
  2. 🏆 期望
  3. ⚙️ 支持的工具
  4. 🔌 安装与入门指南
  5. 🌏 使用域名
  6. 📝 故障排除
  7. 🎩 示例与最佳实践
  8. 🙋‍♀️ 常见问题解答
  9. 📌 贡献

📺 概述

Azure DevOps MCP 服务器将 Azure DevOps 上下文带给您的代理。尝试使用以下提示:

  • “列出我的ADO项目”
  • “为‘Contoso’列出ADO构建版本”
  • “列出‘Contoso’的ADO存储库”
  • “列出‘Contoso’的测试计划”
  • “列出‘Contoso’项目的团队”
  • “列出项目‘Contoso’的迭代列表”
  • “列出我负责的‘Contoso’项目的工作项”
  • “列出‘Contoso’项目和‘Contoso 团队’在当前迭代中的工作项”
  • “列出‘Contoso’项目中的所有维基”
  • “创建一个维基页面‘/Architecture/Overview’,内容关于系统设计”
  • “更新维基页面‘/Getting Started’,添加新的入门指南”
  • 从“文档”维基获取wiki页面“/API/Authentication”的内容

🏆 期望

Azure DevOps MCP 服务器由简洁、简单、专注且易于使用的工具构建而成,每个工具都针对特定场景设计。我们有意避免使用那些试图包罗万象的复杂工具。我们的目标是在 REST API 之上提供一个轻量级的抽象层,使数据访问变得直接,并让语言模型处理复杂的推理任务。

⚙️ 支持的工具

与这些 Azure DevOps 服务进行交互:

🧿 核心

  • 核心项目团队列表获取指定 Azure DevOps 项目的团队列表。
  • 核心项目列表检索您 Azure DevOps 组织中的项目列表。
  • **获取核心身份标识符(或:获取核心身份ID)**为一组唯一名称检索 Azure DevOps 身份 ID。

⚒️ 工作

  • 工作列表团队迭代获取项目中特定团队的迭代列表。
  • 创建工作迭代在指定的 Azure DevOps 项目中创建新的迭代。
  • 工作分配迭代次数为项目中的特定团队分配现有的迭代。

📅 工作事项

  • **wit_my_work_items 翻译为中文是:“我的工作项目/任务”(具体翻译可能根据上下文有所调整,但基本意思是指“我负责或参与的工作项目或任务列表”)**获取与已认证用户相关的工作项列表。
  • **wit_list_backlogs 翻译为中文是:“待办事项列表积压”或“待办事项列表中的未完成任务”。这里,“wit_list”可以理解为“待办事项列表”,“backlogs”则指的是“积压”或“未完成的任务”**获取给定项目和团队的待办事项列表。
  • **待处理的工作项列表(或:积压工作项列表)**获取给定项目、团队和待办事项类别下的待办事项列表。
  • **获取工作项(或:获取任务项)**通过ID获取单个工作项。
  • **根据ID批量获取工作项(wit_get_work_items_batch_by_ids)**按ID批量检索工作项列表。
  • 更新工作项通过ID更新具有指定字段的工作项。
  • **创建工作项(wit_create_work_item)**在指定的项目和工作项类型中创建一个新的工作项。
  • **wit_list_work_item_comments 可以翻译为“工作项评论列表”**通过ID获取工作项的评论列表。
  • 获取迭代的工作项获取指定迭代的工作项列表。
  • 添加工作项评论通过ID为工作项添加评论。
  • 添加子工作项为给定的父ID创建一个或多个特定工作项类型的工作项子项。
  • 将工作项链接到拉取请求将单个工作项链接到现有的拉取请求。
  • 获取工作项类型获取特定的工作项类型。
  • **wit_get_query 可以翻译为“获取查询(或查询信息)”。不过,具体的翻译可能还需要根据上下文来确定最准确的表述。在这里,“wit”可能是一个特定系统或工具的缩写,而“get_query”则表示获取查询或查询信息的操作。所以,一个较为通用的翻译是“获取查询(信息)”**通过ID或路径获取查询。
  • 根据ID获取查询结果根据给定的查询ID检索工作项查询的结果。
  • 批量更新工作项批量更新工作项。
  • wit_work_items_link 翻译为中文是:“工作项链接”或“任务项链接”,具体取决于上下文中的“work items”是指工作任务还是其他类型的项目项。在大多数情况下,“工作项”是一个通用的表述,可以指代各种类型的任务或项目条目批量链接工作项。
  • **解除工作项关联(或:取消工作项链接)**从工作项中解除一个或多个链接。
  • 添加文物链接链接到分支、拉取请求、提交和构建等工件。

📁 仓库

  • 按项目列出的仓库列表获取给定项目的仓库列表。
  • 按仓库或项目获取仓库列表的拉取请求获取指定仓库或项目的拉取请求列表。
  • 按仓库列出分支的仓库列表获取给定仓库的分支列表。
  • 按仓库列出我的分支列表根据给定的仓库ID,检索您的分支列表。
  • 按提交获取仓库的拉取请求列表列出与提交相关的拉取请求。
  • 仓库列表拉取请求线程获取拉取请求的评论线程列表。
  • 仓库列表拉取请求线程评论获取拉取请求线程中的评论列表。
  • **通过名称或ID获取仓库(repo_get_repo_by_name_or_id)**通过项目名称和仓库名称或ID获取仓库。
  • 根据名称获取仓库分支通过名称获取分支。
  • 根据ID获取仓库中的拉取请求通过其ID获取拉取请求。
  • 创建仓库拉取请求创建一个新的拉取请求。
  • 创建仓库分支在仓库中创建一个新分支。
  • 仓库更新拉取请求更新现有拉取请求的各个字段(标题、描述、草稿状态、目标分支)。
  • 更新仓库拉取请求评审者为现有的拉取请求添加或移除审查者。
  • 对仓库评论的回复回复拉取请求上的特定评论。
  • repo_resolve_comment 可以翻译为“仓库解析评论”或“问题库解析评论”,具体取决于上下文中的“repo”是指代码仓库还是问题跟踪系统等。在这里,“repo”通常指的是代码仓库(repository),所以“仓库解析评论”可能是一个更常见的翻译。但如果是问题跟踪系统,“问题库解析评论”也是合适的解决拉取请求中的特定评论线程。
  • 仓库搜索提交记录搜索提交记录。
  • 创建仓库拉取请求线程在拉取请求上创建一个新的评论线程。

🚀 管道(或流程)

  • 获取构建定义(或:获取构建配置)的管道获取给定项目的构建定义列表。
  • 获取构建定义修订的管道信息获取特定构建定义的修订历史列表。
  • 获取流水线构建信息获取给定项目的构建列表。
  • 获取构建日志的管道检索特定构建的日志。
  • 通过ID获取构建日志的管道通过日志ID获取特定的构建日志。
  • 获取流水线构建更改获取与特定构建相关的更改。
  • 获取流水线构建状态获取特定构建的状态。
  • 管道更新构建阶段更新特定构建的阶段。
  • 获取管道运行信息为特定管道获取运行机会。
  • 管道列表运行获取特定数据管道的前10000条运行记录。
  • **运行管道的管道(或译为:用于执行管道的管道)**启动管道的新运行。

高级安全

  • **获取安全警报(advsec_get_alerts)**为存储库检索高级安全警报。
  • 获取安全警报详情获取有关特定高级安全警报的详细信息。

🧪 测试计划

  • **创建测试计划(testplan_create_test_plan)**在项目中创建一个新的测试计划。
  • 创建测试计划中的测试用例创建一个新的测试用例工作项。
  • 将测试用例添加到测试套件中的测试计划将现有测试用例添加到测试套件中。
  • 测试计划列表_测试计划从Azure DevOps项目中检索分页的测试计划列表。支持过滤活动计划并切换详细信息。
  • 测试计划列表中的测试用例在测试计划中获取测试用例列表。
  • 从构建ID显示测试结果的测试计划获取给定项目和构建ID的测试结果列表。
  • 创建测试套件的测试计划在测试计划中创建一个新的测试套件。

📖 维基

  • **wiki_list_wikis 翻译为中文是:“wiki 列表_wikis”(注:这里的“wiki_list”可能表示一个包含多个“wiki”的列表,而“wikis”则是“wiki”的复数形式,所以整个短语可以理解为“wiki 列表(包含多个 wikis)”)。不过,为了更自然地表达,我们也可以将其翻译为“wiki 列表(多个 wikis)”或“wiki 列表及 wikis”**获取组织或项目的维基列表。
  • **获取维基数据(或“从维基获取”)**通过wikiIdentifier获取维基。
  • 维基页面列表检索特定维基和项目中的维基页面列表。
  • 获取维基页面通过路径检索维基页面的元数据。
  • 获取维基页面内容通过wikiIdentifier和路径检索维基页面内容。
  • 在维基上创建或更新页面创建或更新维基页面,支持完整内容。

🔎 搜索

  • 搜索代码获取给定搜索文本的代码搜索结果。
  • 搜索维基获取给定搜索文本的维基搜索结果。
  • 搜索工作项获取给定搜索文本的工作项搜索结果。

🔌 安装与入门指南

为了获得最佳体验,请使用Visual Studio Code和GitHub Copilot。参见 入门文档 使用我们的MCP服务器与其他工具(如Visual Studio 2022、Claude Code和Cursor)一起。

先决条件

  1. 安装 VS Code(Visual Studio Code) 或者 VS Code Insiders(译为“VS 代码内部版”或“VS 代码测试版”,根据语境可灵活选择)
  2. 安装 Node.js 20岁以上
  3. 在空文件夹中打开 VS Code

安装

✨ 一键安装

安装后,选择GitHub Copilot代理模式并刷新工具列表。要了解更多关于代理模式的信息,请参阅 VS Code 文档。

🧨 从公共源安装(推荐)

对于所有Visual Studio Code用户来说,这种安装方法是最简便的。

🎥 表示电影或视频的播放,可以翻译为“🎥(表示)电影或视频播放”。不过,通常我们会直接用“🎥”来传达这个意思,而不需要额外的翻译文字,因为表情符号本身就是一种直观的表达。如果非要给出一个翻译说明,可以是“🎥(电影/视频播放的符号)”。 观看这个快速入门视频,两分钟内即可上手操作!

步骤

在你的项目中,添加一个 .vscode\mcp.json 文件内容如下:

{
  "inputs": [
    {
      "id": "ado_org",
      "type": "promptString",
      "description": "Azure DevOps organization name  (e.g. 'contoso')"
    }
  ],
  "servers": {
    "ado": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@azure-devops/mcp", "${input:ado_org}"]
    }
  }
}

🔥 要获取最新功能,您可以使用我们的夜间构建版本。只需更新您的 mcp.json 配置以使用 @azure-devops/mcp@next以下是一个更新后的示例:

{
  "inputs": [
    {
      "id": "ado_org",
      "type": "promptString",
      "description": "Azure DevOps organization name  (e.g. 'contoso')"
    }
  ],
  "servers": {
    "ado": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@azure-devops/mcp@next", "${input:ado_org}"]
    }
  }
}

保存文件,然后点击“开始”。

在聊天中,切换至 代理模式。

点击“选择工具”并选择可用的工具。

打开GitHub Copilot Chat并尝试使用类似这样的提示 List ADO projects首次执行ADO工具时,浏览器会打开并提示您使用您的Microsoft帐户登录。请确保您使用的凭据与所选的Azure DevOps组织相匹配。

💥 我们强烈建议创建一个 .github\copilot-instructions.md 在您的项目中。这将提升您使用 Azure DevOps MCP 服务器结合 GitHub Copilot Chat 的体验。 首先,只需包含“This project uses Azure DevOps. Always check to see if the Azure DevOps MCP server has a tool relevant to the user's request在你的副驾驶指令文件中。

查看 入门文档 将我们的MCP服务器与其他工具(如Visual Studio 2022、Claude Code和Cursor)一起使用。

🌏 使用域名

Azure DevOps提供了广泛的表面积(或功能)。因此,我们的Azure DevOps MCP服务器包含了众多工具。为了保持工具集的可管理性,避免模型混淆,并尊重客户端对加载工具的限制,建议使用域(Domains)来仅加载您需要的区域。域是相关工具的命名组(例如:核心、工作、工作项、存储库、维基)。添加 -d 将参数和域名传递给服务器的参数(args)中 mcp.json 列出要启用的域。

例如,使用 "-d", "core", "work", "work-items" 仅加载与工作项相关的工具(见下例)。

{
  "inputs": [
    {
      "id": "ado_org",
      "type": "promptString",
      "description": "Azure DevOps organization name  (e.g. 'contoso')"
    }
  ],
  "servers": {
    "ado_with_filtered_domains": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@azure-devops/mcp", "${input:ado_org}", "-d", "core", "work", "work-items"]
    }
  }
}

可用的域名有: core, work, work-items, search, test-plans, repositories, wiki, pipelines, advanced-security

我们建议您始终启用 core 工具,以便您能够获取项目级别的信息。

默认情况下,所有域都被加载

📝 故障排除

查看 故障排除指南 用于解决常见问题和记录日志。

🎩 示例与最佳实践

探索我们中的示例提示 示例文档.

要了解最佳实践和技巧,以提升您使用MCP服务器的体验,请参阅 操作指南。

🙋‍♀️ 常见问题解答

关于Azure DevOps MCP Server的常见问题解答,请参阅 常见问题解答。

📌 贡献

我们欢迎贡献!在预览期间,请针对错误、增强功能或文档改进提交问题。

查看我们的 贡献指南 对于:

  • 🛠️ 开发环境设置
  • ✨ 添加新工具
  • 📝 代码风格与测试
  • 🔄 提交请求(Pull Request)流程

🤝 行为准则

这个项目遵循了 微软开源行为准则。 如有疑问,请参阅 常见问题解答(FAQ) 或者联系 open@microsoft.com(可译为:“微软开放邮箱”或保持原样作为邮箱地址,不直接翻译,因为邮箱地址通常保持原样使用)。

📈 项目统计数据

🏆名人堂

感谢所有为这个项目做出贡献的朋友们,让这个项目如此出色! ❤️

使用以下工具生成: contrib.rocks 翻译成中文是“贡献之石”或“贡献平台”(具体翻译可能根据上下文有所调整,但核心意思是强调“贡献”和“平台/基石”的概念)

许可证

根据以下许可协议授权 麻省理工学院许可证.


商标:此项目可能包含微软或第三方的商标或标识。使用微软的商标或标识必须遵守 微软的商标与品牌指南第三方商标受其各自政策的约束。