Azure DevOps MCP集成
星史

Azure DevOps的强大集成,通过模型上下文协议(MCP)服务器提供对工作项、存储库、项目、板和冲刺的无缝访问。
概述
该服务器为与Azure DevOps服务交互提供了一个方便的API,使人工智能助手和其他工具能够管理工作项、代码存储库、板、疾跑等。它基于模型上下文协议构建,为与Azure DevOps通信提供了一个标准化的接口。
演示
特性
集成分为八个主要工具类别:
工作项工具
- 使用WIQL查询列出工作项
- 按ID获取工作项详细信息
- 搜索工作项
- 获取最近更新的工作项
- 获取分配的工作项
- 创建新工作项
- 更新现有工作项
- 向工作项添加注释
- 更新工作项状态
- 分配工作项
- 在工作项之间创建链接
- 批量创建/更新工作项
板子和Sprints工具
- 获取团队公告板
- 获取板柱
- 获取板项
- 移动板上的卡片
- 冲刺
- 获取当前冲刺
- 获取sprint工作项
- 获得冲刺能力
- 获取团队成员
项目工具
- 列出项目
- 获取项目详细信息
- 创建新项目
- 获取区域
- 获取迭代
- 创建区域
- 创建迭代
- 获取流程模板
- 获取工作项类型
- 获取工作项类型字段
Git工具
- 列出存储库
- 获取存储库详细信息
- 创建存储库
- 列出分支
- 搜索代码
- 浏览仓库
- 获取文件内容
- 获取提交历史记录
- 列出拉取请求
- 创建拉取请求
- 获取拉取请求详细信息
- 在pull请求中获取更改的文件
- 获取pull请求注释
- 批准拉取请求
- 合并拉取请求
测试能力工具
- 运行自动化测试
- 获取测试自动化状态
- 配置测试代理
- 创建测试数据生成器
- 管理测试环境
- 获取测试片状分析
- 获取测试差距分析
- 运行测试影响分析
- 获取测试运行状况仪表板
- 运行测试优化
- 创建探索性会话
- 记录探索性测试结果
- 将调查结果转换为工作项
- 获取探索性测试统计数据
DevSecOps工具
- 运行安全扫描
- 获取安全扫描结果
- 跟踪安全漏洞
- 生成安全合规报告
- 整合SARIF结果
- 运行合规性检查
- 获取合规状态
- 创建合规报告
- 管理安全策略
- 跟踪安全意识
- 旋转秘密
- 审核机密使用情况
- 配置vault集成
工件管理工具
- 列出工件提要
- 获取软件包版本
- 发布包
- 推广套餐
- 删除软件包版本
- 列出容器图像
- 获取容器图像标签
- 扫描集装箱图像
- 管理容器策略
- 管理通用包
- 创建包下载报告
- 检查包依赖关系
人工智能辅助开发工具
- 获取AI驱动的代码评论
- 建议代码优化
- 识别代码气味
- 获取预测性错误分析
- 获取开发人员生产力指标
- 获取预测性工作量估算
- 获取代码质量趋势
- 建议改进工作项
- 建议自动化机会
- 创建智能警报
- 预测构建失败
- 优化测试选择
安装
NPX快速入门(推荐)
使用Azure DevOps MCP服务器的最简单方法是通过NPX:
npx @ryancardin/azuredevops-mcp-server@latest无需安装或构建步骤!只需设置环境变量并运行。
光标一键安装
单击下面的按钮直接在Cursor中安装Azure DevOps MCP服务器:

重要提示: 在Cursor中安装后,您必须使用实际的Azure DevOps详细信息更新Cursor MCP配置中的环境变量。
了解有关Cursor深度链接的更多信息,请访问 https://docs.cursor.com/deeplinks
替代安装方法
全球NPM安装
npm install -g @ryancardin/azuredevops-mcp-server
azuredevops-mcp-server通过史密瑟里(克劳德桌面)
npx -y @smithery/cli install @RyanCardin15/azuredevops-mcp --client claude开发环境
对于开发或定制:
- 克隆存储库:
git clone https://github.com/RyanCardin15/AzureDevOps-MCP.git
cd AzureDevOps-MCP- 安装依赖项:
npm install- 构建项目:
npm run build- 在本地运行:
npm start配置
先决条件
- Node.js(v16或更高版本)
- 具有个人访问令牌(PAT)或适当凭据的Azure DevOps帐户
环境变量
使用环境变量配置服务器。你可以在你的shell中设置这些, .env 文件,或在MCP客户端配置中:
适用于Azure DevOps服务(云)
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization
AZURE_DEVOPS_PROJECT=your-default-project
AZURE_DEVOPS_IS_ON_PREMISES=false
AZURE_DEVOPS_AUTH_TYPE=pat
AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token适用于Azure DevOps服务器(内部部署)
AZURE_DEVOPS_ORG_URL=https://your-server/tfs
AZURE_DEVOPS_PROJECT=your-default-project
AZURE_DEVOPS_IS_ON_PREMISES=true
AZURE_DEVOPS_COLLECTION=your-collection
AZURE_DEVOPS_API_VERSION=6.0
AZURE_DEVOPS_AUTH_TYPE=pat
AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token替代身份验证方法(本地)
# NTLM Authentication
AZURE_DEVOPS_AUTH_TYPE=ntlm
AZURE_DEVOPS_USERNAME=your-username
AZURE_DEVOPS_PASSWORD=your-password
AZURE_DEVOPS_DOMAIN=your-domain
# Basic Authentication
AZURE_DEVOPS_AUTH_TYPE=basic
AZURE_DEVOPS_USERNAME=your-username
AZURE_DEVOPS_PASSWORD=your-password
# Entra ID Authentication (requires az CLI)
AZURE_DEVOPS_AUTH_TYPE=entra客户端配置
光标配置
将此添加到光标MCP设置中:
{
"mcpServers": {
"azure-devops": {
"command": "npx",
"args": ["@ryancardin/azuredevops-mcp-server@latest"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
"AZURE_DEVOPS_PROJECT": "your-project",
"AZURE_DEVOPS_IS_ON_PREMISES": "false",
"AZURE_DEVOPS_AUTH_TYPE": "pat",
"AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN": "your-personal-access-token"
}
}
}
}Claude桌面配置
将此添加到您的Claude Desktop MCP配置文件中:
{
"mcpServers": {
"azure-devops": {
"command": "npx",
"args": ["@ryancardin/azuredevops-mcp-server@latest"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
"AZURE_DEVOPS_PROJECT": "your-project",
"AZURE_DEVOPS_IS_ON_PREMISES": "false",
"AZURE_DEVOPS_AUTH_TYPE": "pat",
"AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN": "your-personal-access-token"
}
}
}
}创建个人访问令牌(PAT)
对于Azure DevOps服务(云),您需要创建具有适当权限的个人访问令牌:
- 转到您的Azure DevOps组织
- 点击右上角的个人资料图标
- 选择“个人访问令牌”
- 点击“新建令牌”
- 为其命名并选择适当的范围:
- 工作项目:读写 - 代码:读写 - 项目和团队:读写 - 构建:阅读 - 发布:阅读
对于Azure DevOps Server(本地),请按照类似的步骤在本地实例中创建PAT。
完整的环境变量参考
| 变量 | 描述 | 必填 | 默认 |
|---|---|---|---|
| AZURE_DEVOPS_ORG_URL | 您的AZURE DEVOPS组织或服务器的URL | 是 | - |
| AZURE_DEVOPS_PROJECT | 要使用的默认项目 | 是 | - |
| AZURE_DEVOPS_ISON_前提条件 | 是否使用AZURE DEVOPS服务器 | 否 | false |
| AZURE_DEVOPS_COLLECTION | 本地集合名称 | 否\* | - |
| AZURE_DEVOPS_API_VERSION | 内部部署的API版本 | 否 | - |
| AZURE_DEVOPS_AUTH_TYPE | 身份验证类型(pat/ntlm/basic/entra) | 否 | pat |
| AZURE_DEVOPS_PERSONAL_ACCES_TOKEN | 个人访问令牌(用于“pat”身份验证) | 否\*\* | - |
| AZURE_DEVOPS_USERNAME | NTLM/基本身份验证的用户名 | 否\*\* | - |
| AZURE_DEVOPS_PASSWORD | NTLM/基本身份验证密码 | 否\*\* | - |
| AZURE_DEVOPS_DOMAIN | NTLM身份验证域 | 否 | - |
| ALLOWED_TOOLS | 要启用的工具方法的逗号分隔列表 | 否 | 所有工具 |
\*如果需要 AZURE_DEVOPS_IS_ON_PREMISES=true\ \*\*根据所选的身份验证类型需要
使用ALLOWED_TOOLS进行工具筛选
这 ALLOWED_TOOLS 环境变量允许您限制可用的工具方法。这是完全可选的-如果未指定,将启用所有工具。
格式:逗号分隔的方法名称列表,不含空格。
例子:
ALLOWED_TOOLS=listWorkItems,getWorkItemById,searchWorkItems,createWorkItem这将仅启用指定的工作项方法,而禁用所有其他方法。
Entra ID身份验证
对于Entra ID身份验证,请确保已安装Azure CLI并通过身份验证:
az login只要您通过身份验证,服务器就支持AZ CLI、AZD和Azure PowerShell模块。
用法
服务器运行后,您可以使用MCP协议与它进行交互。该服务器为不同的Azure DevOps功能提供了多种工具。
可用工具
注: 默认情况下,只有一部分工具在 index.ts 文件,以保持初始实现的简单性。请参阅 工具注册 有关如何注册其他工具的信息,请参阅第节。示例:列出工作项
{
"tool": "listWorkItems",
"params": {
"query": "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.State] = 'Active' ORDER BY [System.CreatedDate] DESC"
}
}示例:创建工作项
{
"tool": "createWorkItem",
"params": {
"workItemType": "User Story",
"title": "Implement new feature",
"description": "As a user, I want to be able to export reports to PDF.",
"assignedTo": "john@example.com"
}
}示例:列出存储库
{
"tool": "listRepositories",
"params": {
"projectId": "MyProject"
}
}示例:创建拉取请求
{
"tool": "createPullRequest",
"params": {
"repositoryId": "repo-guid",
"sourceRefName": "refs/heads/feature-branch",
"targetRefName": "refs/heads/main",
"title": "Add new feature",
"description": "This PR adds the export to PDF feature"
}
}建筑
该项目的结构如下:
src/
- Interfaces/:参数和响应的类型定义 - Services/:用于与Azure DevOps API交互的服务类 - Tools/:向客户端公开功能的工具实现 - index.ts:注册工具和启动服务器的主要入口点 - config.ts:配置处理
服务层
服务层处理与Azure DevOps API的直接通信:
WorkItemService:工作项操作BoardsSprintsService:板和冲刺操作ProjectService:项目管理业务GitService:Git存储库操作TestingCapabilitiesService:测试能力操作DevSecOpsService:DevSecOps操作ArtifactManagementService:工件管理操作AIAssistedDevelopmentService:人工智能辅助开发操作
工具层
工具层封装服务,并为MCP协议提供一致的接口:
WorkItemTools:工作项操作工具BoardsSprintsTools:棋盘和短跑操作工具ProjectTools:项目管理操作工具GitTools:Git操作工具TestingCapabilitiesTools:用于测试能力操作的工具DevSecOpsTools:DevSecOps操作工具ArtifactManagementTools:工件管理操作工具AIAssistedDevelopmentTools:人工智能辅助开发操作工具
工具注册
MCP服务器要求在 index.ts 文件。默认情况下,只注册所有可能工具的一个子集,以保持初始实现的可管理性。
要注册更多工具:
- 打开
src/index.ts文件 - 按照现有工具的模式添加新的工具注册
- 构建并重新启动服务器
工具注册的综合指南可在 TOOL_REGISTRATION.md 存储库中的文件。
注: 注册工具时,请注意使用正确的参数类型,特别是枚举值。中的类型定义Interfaces目录定义了每个参数的预期类型。使用错误的类型(例如,使用z.string()而不是z.enum()对于枚举值)将导致构建过程中出现TypeScript错误。
注册新工具的示例:
server.tool("searchCode",
"Search for code in repositories",
{
searchText: z.string().describe("Text to search for"),
repositoryId: z.string().optional().describe("ID of the repository")
},
async (params, extra) => {
const result = await gitTools.searchCode(params);
return {
content: result.content,
rawData: result.rawData,
isError: result.isError
};
}
);故障排除
常见问题
身份验证错误
- 确保您的个人访问令牌有效并具有所需的权限
- 检查组织URL是否正确
unexpected status code: 203
- 这通常表示使用了占位符或不正确的配置值
- 验证
AZURE_DEVOPS_ORG_URL使用您的真实组织URL(不是your-organization) - 验证
AZURE_DEVOPS_PROJECT和AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN是真正的价值
高上下文/令牌消耗
- 限制工具注册
ALLOWED_TOOLS只使用您需要的方法 - 例子:
ALLOWED_TOOLS=listWorkItems,getWorkItemById,listPullRequests,getPullRequestChangedFiles
构建过程中的TypeScript错误
- 使用
npm run build:ignore-errors绕过TypeScript错误 - 检查是否缺少或不正确的类型定义
运行期错误
- 验证指定的Azure DevOps项目是否存在并且可以访问
贡献
欢迎投稿!以下是您如何做出贡献:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
请确保您的代码通过linting并包含适当的测试。

](https://smithery.ai/server/@RyanCardin15/azuredevops-mcp)
