返回市场
Azure开发运营-MCP

Azure开发运营-MCP

作者:RyanCardin1550 星标更新:2025-07-26

项目介绍

技术文档摘要

Azure DevOps MCP 集成

星标历史

星标历史图表

这是一个强大的集成工具,通过模型上下文协议(MCP)服务器提供对工作项、仓库、项目、看板和冲刺的无缝访问。

概述

此服务器提供了一个方便的API,用于与Azure DevOps服务进行交互,使AI助手和其他工具能够管理工作项、代码仓库、看板、冲刺等。它基于模型上下文协议构建,提供了与Azure DevOps通信的标准接口。

演示

Azure DevOps MCP 演示

功能

集成被组织成八个主要工具类别:

工作项工具

  • 使用WIQL查询列出工作项
  • 根据ID获取工作项详细信息
  • 搜索工作项
  • 获取最近更新的工作项
  • 获取分配给你的工作项
  • 创建新的工作项
  • 更新现有工作项
  • 在工作项中添加评论
  • 更新工作项状态
  • 分配工作项
  • 在工作项之间创建链接
  • 批量创建或更新工作项

看板和冲刺工具

  • 获取团队看板
  • 获取看板列
  • 获取看板项
  • 移动看板上的卡片
  • 获取冲刺
  • 获取当前冲刺
  • 获取冲刺工作项
  • 获取冲刺容量
  • 获取团队成员

项目工具

  • 列出项目
  • 获取项目详细信息
  • 创建新项目
  • 获取区域
  • 获取迭代
  • 创建区域
  • 创建迭代
  • 获取过程模板
  • 获取工作项类型
  • 获取工作项类型字段

Git 工具

  • 列出仓库
  • 获取仓库详细信息
  • 创建仓库
  • 列出分支
  • 搜索代码
  • 浏览仓库
  • 获取文件内容
  • 获取提交历史
  • 列出拉取请求
  • 创建拉取请求
  • 获取拉取请求详细信息
  • 获取拉取请求评论
  • 审批拉取请求
  • 合并拉取请求

测试能力工具

  • 运行自动化测试
  • 获取测试自动化状态
  • 配置测试代理
  • 创建测试数据生成器
  • 管理测试环境
  • 获取测试不稳定性分析
  • 获取测试差距分析
  • 运行测试影响分析
  • 获取测试健康仪表盘
  • 运行测试优化
  • 创建探索性会话
  • 记录探索性测试结果
  • 将发现转换为工作项
  • 获取探索性测试统计信息

DevSecOps 工具

  • 运行安全扫描
  • 获取安全扫描结果
  • 跟踪安全漏洞
  • 生成安全合规报告
  • 集成SARIF结果
  • 运行合规检查
  • 获取合规状态
  • 创建合规报告
  • 管理安全策略
  • 跟踪安全意识
  • 旋转密钥
  • 审计密钥使用情况
  • 配置金库集成

构件管理工具

  • 列出构件源
  • 获取包版本
  • 发布包
  • 升级包
  • 删除包版本
  • 列出容器镜像
  • 获取容器镜像标签
  • 扫描容器镜像
  • 管理容器策略
  • 管理通用包
  • 创建包下载报告
  • 检查包依赖关系

AI 辅助开发工具

  • 获取由AI驱动的代码审查
  • 建议代码优化
  • 识别代码异味
  • 获取预测性错误分析
  • 获取开发者生产力指标
  • 获取预测性工作量估计
  • 获取代码质量趋势
  • 建议工作项细化
  • 建议自动化机会
  • 创建智能警报
  • 预测构建失败
  • 优化测试选择

安装

快速开始(推荐)

最简单的方式是通过NPX使用Azure DevOps MCP服务器:

npx @ryancardin/azuredevops-mcp-server@latest

无需安装或构建步骤!只需设置环境变量并运行即可。

一键安装到Cursor

点击下方按钮直接在Cursor中安装Azure DevOps MCP服务器:

将Azure DevOps MCP添加到Cursor

重要: 在Cursor中安装后,必须在Cursor MCP配置中更新实际的Azure DevOps详细信息。

了解更多关于Cursor深度链接的信息,请访问https://docs.cursor.com/deeplinks

其他安装方法

全局NPM安装

npm install -g @ryancardin/azuredevops-mcp-server
azuredevops-mcp-server

通过Smithery (Claude桌面)

npx -y @smithery/cli install @RyanCardin15/azuredevops-mcp --client claude

开发设置

为了开发或定制:

  1. 克隆仓库:

    git clone https://github.com/RyanCardin15/AzureDevOps-MCP.git
    cd AzureDevOps-MCP
    
  2. 安装依赖:

    npm install
    
  3. 构建项目:

    npm run build
    
  4. 本地运行:

    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=

其他身份验证方法(本地部署)

# NTLM身份验证
AZURE_DEVOPS_AUTH_TYPE=ntlm
AZURE_DEVOPS_USERNAME=your-username
AZURE_DEVOPS_PASSWORD=your-password
AZURE_DEVOPS_DOMAIN=your-domain

# 基本身份验证
AZURE_DEVOPS_AUTH_TYPE=basic
AZURE_DEVOPS_USERNAME=your-username
AZURE_DEVOPS_PASSWORD=your-password

# Entra ID身份验证(需要az CLI)
AZURE_DEVOPS_AUTH_TYPE=entra

客户端配置

Cursor配置

在Cursor 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桌面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服务(云),你需要创建一个具有适当权限的个人访问令牌:

  1. 转到你的Azure DevOps组织
  2. 点击右上角的个人资料图标
  3. 选择“个人访问令牌”
  4. 点击“新建令牌”
  5. 给它命名并选择适当的范围:
    • 工作项:读写
    • 代码:读写
    • 项目和团队:读写
    • 构建:读
    • 发布:读

对于Azure DevOps服务器(本地部署),按照类似的步骤在本地实例中创建PAT。

完整环境变量参考

变量描述是否必需默认值
AZURE_DEVOPS_ORG_URL你的Azure DevOps组织或服务器的URL-
AZURE_DEVOPS_PROJECT默认使用的项目-
AZURE_DEVOPS_IS_ON_PREMISES是否使用Azure DevOps服务器false
AZURE_DEVOPS_COLLECTION本地部署的集合名称否*-
AZURE_DEVOPS_API_VERSION本地部署的API版本-
AZURE_DEVOPS_AUTH_TYPE身份验证类型(pat/ntlm/basic/entra)pat
AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN个人访问令牌(适用于'pat'身份验证)否**-
AZURE_DEVOPS_USERNAMENTLM/基本身份验证用户名否**-
AZURE_DEVOPS_PASSWORDNTLM/基本身份验证密码否**-
AZURE_DEVOPS_DOMAINNTLM身份验证域-
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": "用户故事",
    "title": "实现新功能",
    "description": "作为用户,我希望能够导出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": "添加新功能",
    "description": "此PR添加了导出到PDF的功能"
  }
}

架构

项目结构如下:

  • src/
    • Interfaces/: 参数和响应的类型定义
    • Services/: 与Azure DevOps API交互的服务类
    • Tools/: 向客户端暴露功能的工具实现
    • index.ts: 注册工具并启动服务器的主要入口点
    • config.ts: 配置处理

服务层

服务层负责与Azure DevOps API的直接通信:

  • WorkItemService: 工作项操作
  • BoardsSprintsService: 看板和冲刺操作
  • ProjectService: 项目管理操作
  • GitService: Git仓库操作
  • TestingCapabilitiesService: 测试能力操作
  • DevSecOpsService: DevSecOps操作
  • ArtifactManagementService: 构件管理操作
  • AIAssistedDevelopmentService: AI辅助开发操作

工具层

工具层封装了服务,并为MCP协议提供了一致的接口:

  • WorkItemTools: 工作项操作工具
  • BoardsSprintsTools: 看板和冲刺操作工具
  • ProjectTools: 项目管理操作工具
  • GitTools: Git操作工具
  • TestingCapabilitiesTools: 测试能力操作工具
  • DevSecOpsTools: DevSecOps操作工具
  • ArtifactManagementTools: 构件管理操作工具
  • AIAssistedDevelopmentTools: AI辅助开发操作工具

工具注册

MCP服务器要求工具在index.ts文件中显式注册。默认情况下,只注册了一部分可能的工具,以保持初始实现的可管理性。

要注册更多工具:

  1. 打开src/index.ts文件
  2. 按照现有工具的模式添加新的工具注册
  3. 构建并重启服务器

在存储库中的TOOL_REGISTRATION.md文件中有详细的工具注册指南。

注意: 注册工具时,请小心使用正确的参数类型,特别是枚举值。Interfaces目录中的类型定义指定了每个参数的预期类型。使用错误的类型(例如,使用z.string()而不是z.enum()来表示枚举值)将在构建期间导致TypeScript错误。

注册新工具的示例:

server.tool("searchCode", 
  "搜索仓库中的代码",
  {
    searchText: z.string().describe("要搜索的文本"),
    repositoryId: z.string().optional().describe("仓库ID")
  },
  async (params, extra) => {
    const result = await gitTools.searchCode(params);
    return {
      content: result.content,
      rawData: result.rawData,
      isError: result.isError
    };
  }
);

故障排除

常见问题

身份验证错误

  • 确保您的个人访问令牌有效且具有所需的权限
  • 检查组织URL是否正确

构建期间的TypeScript错误

  • 使用npm run build:ignore-errors跳过TypeScript错误
  • 检查是否有缺失或错误的类型定义

运行时错误

  • 验证指定的Azure DevOps项目是否存在且可访问

贡献

欢迎贡献!以下是贡献方式:

  1. 分叉仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature
  3. 提交更改(git commit -m '添加一些精彩的功能'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开拉取请求

请确保您的代码通过了代码检查,并包含了适当的测试。

在MseeP上验证

[smithery徽章](https://