关于 Azure DevOps
这是一个社区维护的 MCP 服务,可将 AI 助手连接到 Azure DevOps 项目、代码库、工作项、拉取请求、流水线和 Wiki。它尤其适用于本地部署的 Azure DevOps Server,并提供常见开发工作流所需的工具。
主要功能
- 01浏览和管理项目及工作项
- 02读取代码库文件并创建分支或提交
- 03搜索代码、Wiki 和工作项
- 04管理拉取请求和评论
- 05检查、运行和查看流水线执行情况
适用场景
- 01通过 AI 助手更新工作项
- 02审阅代码库内容并搜索代码
- 03创建拉取请求或参与讨论
- 04检查流水线运行、日志和构件
MCP 相关
该服务将 Azure DevOps 操作作为 MCP 工具提供,并通过资源 URI 暴露代码库内容。它支持 PAT、Azure Identity 和 Azure CLI 认证;本地部署的 Azure DevOps Server 使用 PAT 认证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @billg118/mcp-server-azure-devopsAZURE_DEVOPS_ORG_URLAzure DevOps organization URL, e.g. https://dev.azure.com/your-organizationAZURE_DEVOPS_AUTH_METHOD密钥Authentication method: 'pat', 'azure-identity' (default), or 'azure-cli'AZURE_DEVOPS_PAT密钥Personal Access Token (required when AZURE_DEVOPS_AUTH_METHOD is 'pat')AZURE_DEVOPS_DEFAULT_PROJECTDefault project to use when none is specified本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
49收录的工具列表 · 更新于 6 天前
此工具无需参数。
详细介绍
Azure DevOps MCP Server
Azure DevOps 的模型上下文协议(MCP)服务实现,可让 AI 助手通过标准化协议与 Azure DevOps API 交互。
在寻找官方服务吗? Microsoft 维护着由产品支持的 Azure DevOps MCP,地址为 microsoft/azure-devops-mcp。如果你使用 Azure DevOps Services(云端),请从这里开始。
如果你需要 Azure DevOps Server(本地部署) 支持(尤其是可能与 Microsoft 的 MCP 不兼容的旧版本),或需要官方服务尚未提供的功能,那么这个社区服务仍然很适合你。更多背景信息请参阅 Discussion #237。有关此服务的差异化优势和计划,请参阅 ROADMAP.md。
概述
此服务为 Azure DevOps 实现了 模型上下文协议(MCP),让 Claude 等 AI 助手能够安全地与 Azure DevOps 资源交互。服务充当 AI 模型与 Azure DevOps API 之间的桥梁,提供标准化的方式来:
- 访问和管理项目、工作项、代码仓库等
- 创建和更新工作项、分支和拉取请求
- 通过自然语言执行常见的 DevOps 工作流
- 通过标准化的资源 URI 访问代码仓库内容
- 安全地验证身份并与 Azure DevOps 资源交互
服务结构
此服务围绕模型上下文协议(MCP)构建,用于与 AI 助手通信。它提供了与 Azure DevOps 资源交互的工具,包括:
- 项目
- 工作项
- 代码仓库
- 拉取请求
- 分支
- 流水线
核心组件
- AzureDevOpsServer:主服务类,用于初始化 MCP 服务并注册工具
- 功能模块:按功能领域组织(work-items、projects、repositories 等)
- 请求处理器:每个功能模块都提供请求识别和处理函数
- 工具处理器:用于处理每项 Azure DevOps 操作的模块化函数
- 配置:基于环境的配置,用于设置组织 URL、PAT 等
此服务采用基于功能的架构,每个功能领域(如 work-items、projects、repositories)都封装在各自的模块中。这使代码库更易于维护,也更便于扩展新功能。
入门
先决条件
- Node.js(v16+)
- npm 或 yarn
- 具有相应访问权限的 Azure DevOps 账户
- 身份验证凭据(详情请参阅身份验证指南):
- 个人访问令牌(PAT),或
- Azure Identity 凭据,或
- Azure CLI 登录
通过 npm(npx)运行
如果你只想运行已发布的服务包,无需克隆或构建此代码库:
npx -y @billg118/mcp-server-azure-devops
在本地运行(从源代码运行)
从此代码库的检出目录运行:
npm ci
cp .env.example .env # then edit values
npm run build
npm start # runs: node dist/index.js
用于迭代开发(自动重新加载):
npm run dev # runs src/index.ts via tsx watch
与 Claude Desktop/Cursor AI 配合使用
若要与 Claude Desktop 或 Cursor AI 集成,请将以下配置之一添加到配置文件中。
Azure Identity 身份验证
请确保已通过 az login 登录 Azure CLI,然后添加以下配置:
{
"mcpServers": {
"azureDevOps": {
"command": "npx",
"args": ["-y", "@billg118/mcp-server-azure-devops"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
"AZURE_DEVOPS_AUTH_METHOD": "azure-identity",
"AZURE_DEVOPS_DEFAULT_PROJECT": "your-project-name"
}
}
}
}
个人访问令牌(PAT)身份验证
{
"mcpServers": {
"azureDevOps": {
"command": "npx",
"args": ["-y", "@billg118/mcp-server-azure-devops"],
"env": {
"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"
}
}
}
}
Azure DevOps Server(本地部署)需要使用 PAT 进行身份验证。示例:
{
"mcpServers": {
"azureDevOps": {
"command": "npx",
"args": ["-y", "@billg118/mcp-server-azure-devops"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://server:8080/tfs/DefaultCollection",
"AZURE_DEVOPS_AUTH_METHOD": "pat",
"AZURE_DEVOPS_PAT": "<YOUR_PAT>",
"AZURE_DEVOPS_DEFAULT_PROJECT": "your-project-name"
}
}
}
}
有关详细的配置说明和更多身份验证选项,请参阅身份验证指南。
身份验证方法
此服务支持多种身份验证方法,用于连接 Azure DevOps API。如需查看详细的设置说明、配置示例和故障排除提示,请参阅身份验证指南。
支持的身份验证方法
- 个人访问令牌(PAT) - 基于令牌的简单身份验证
- Azure Identity(DefaultAzureCredential) - 使用 Azure Identity SDK 的灵活身份验证
- Azure CLI - 使用 Azure CLI 登录进行身份验证
每种身份验证方法的配置文件示例均可在示例目录中找到。
Azure DevOps Server(本地部署)仅支持 PAT 身份验证。Azure Identity 和 Azure CLI 适用于 Azure DevOps Services。
环境变量
如需查看完整的环境变量列表及其说明,请参阅身份验证指南。
主要环境变量包括:
| 变量 | 描述 | 必需 | 默认值 |
|---|---|---|---|
AZURE_DEVOPS_AUTH_METHOD | 身份验证方法(pat、azure-identity 或 azure-cli),不区分大小写 | 否 | azure-identity |
AZURE_DEVOPS_ORG_URL | Azure DevOps 组织或 Server 集合的完整 URL(例如,https://server:8080/tfs/DefaultCollection) | 是 | - |
AZURE_DEVOPS_PAT | 个人访问令牌(用于 PAT 身份验证) | 仅 PAT 身份验证时必需 | - |
AZURE_DEVOPS_DEFAULT_PROJECT | 未指定时使用的默认项目 | 否 | - |
AZURE_DEVOPS_API_VERSION | 直接调用 REST API 的工具所使用的 REST api-version(各版本的值) | 否 | 7.1 |
AZURE_TENANT_ID | Azure AD 租户 ID(用于服务主体) | 仅服务主体适用 | - |
AZURE_CLIENT_ID | Azure AD 应用程序 ID(用于服务主体) | 仅服务主体适用 | - |
AZURE_CLIENT_SECRET | Azure AD 客户端密钥(用于服务主体) | 仅服务主体适用 | - |
LOG_LEVEL | 日志级别(debug、info、warn、error) | 否 | info |
身份验证故障排除
如需查看各身份验证方法的详细故障排除信息,请参阅身份验证指南。
常见问题包括:
- 凭据无效或已过期
- 权限不足
- 网络连接问题
- 配置错误
身份验证实现详情
如需了解 Azure DevOps MCP 服务中身份验证实现方式的技术详情,请参阅身份验证指南以及 src/auth 目录中的源代码。
可用工具
Azure DevOps MCP 服务提供多种工具,可用于与 Azure DevOps 资源交互。有关每种工具的详细文档,请参阅相应文档。
用户工具
get_me:获取已通过身份验证的用户的详细信息(id、displayName、email)(仅限 Azure DevOps Services)
组织工具
list_organizations:列出所有可访问的组织(仅限 Azure DevOps Services)
项目工具
list_projects:列出组织中的所有项目get_project:获取特定项目的详细信息get_project_details:获取项目的全面详细信息,包括流程、工作项类型和团队
仓库工具
list_repositories:列出项目中的所有仓库get_repository:获取特定仓库的详细信息get_repository_details:获取仓库的详细信息,包括统计数据和引用get_file_content:获取仓库中文件或目录的内容get_repository_tree:列出仓库中任意路径和深度的文件树create_branch:从现有分支创建新分支create_commit:使用统一差异或搜索/替换指令,将多个文件更改提交到分支
工作项工具
get_work_item:按 ID 检索工作项create_work_item:创建工作项update_work_item:更新现有工作项list_work_items:列出项目中的工作项manage_work_item_link:添加、移除或更新工作项之间的链接create_work_item_attachment:上传文件并将其附加到工作项get_work_item_attachment:下载工作项的附件delete_work_item_attachment:删除工作项的附件
搜索工具
search_code:在项目的仓库中搜索代码search_wiki:在项目的 Wiki 页面中搜索内容search_work_items:在 Azure DevOps 的项目中搜索工作项
管道工具
list_pipelines:列出项目中的管道get_pipeline:获取特定管道的详细信息list_pipeline_runs:列出管道的近期运行记录,并可选择筛选条件get_pipeline_run:获取运行的详细信息和构件摘要download_pipeline_artifact:将单个构件文件下载为文本pipeline_timeline:检索运行的阶段和作业时间线get_pipeline_log:检索原始或 JSON 格式的日志内容trigger_pipeline:使用可自定义参数触发管道运行
Wiki 工具
get_wikis:列出项目中的所有 Wikiget_wiki_page:以纯文本形式获取特定 Wiki 页面的内容
拉取请求工具
create_pull_request- 创建新的拉取请求get_pull_request- 根据 ID 获取拉取请求list_pull_requests- 列出仓库中的拉取请求add_pull_request_comment- 为拉取请求添加评论get_pull_request_comments- 获取拉取请求的评论update_pull_request- 更新现有拉取请求(标题、描述、状态、草稿状态、审核者、工作项)get_pull_request_changes- 列出拉取请求中的变更和策略评估状态get_pull_request_checks- 汇总状态检查、策略评估及其相关流水线
如需所有工具的完整文档,请参阅工具文档。
贡献
欢迎贡献!请参阅 CONTRIBUTING.md 了解贡献指南。
Star 历史
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。