remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
The server provides tools for interacting with Git repositories in Azure DevOps, including listing repositories, branches, commits, creating pull requests, and more.
Node.js is listed as a prerequisite for running the server, but it's not what the server integrates with.
The MCP server is built with TypeScript, but it doesn't integrate with TypeScript as a service.
Azure DevOps MCP 集成
Azure DevOps 的强大集成,可通过模型上下文协议 (MCP) 服务器无缝访问工作项、存储库、项目、板和冲刺。
概述
该服务器提供便捷的 API,用于与 Azure DevOps 服务交互,使 AI 助手和其他工具能够管理工作项、代码存储库、看板、冲刺等。它基于模型上下文协议构建,提供与 Azure DevOps 通信的标准化接口。
演示
特征
该集成分为八个主要工具类别:
工作项工具
- 使用 WIQL 查询列出工作项
- 通过 ID 获取工作项详细信息
- 搜索工作项
- 获取最近更新的工作项
- 获取分配的工作项目
- 创建新的工作项
- 更新现有工作项
- 向工作项添加评论
- 更新工作项状态
- 分配工作项
- 在工作项之间创建链接
- 批量创建/更新工作项
看板和冲刺工具
- 获取团队公告板
- 获取板列
- 获取棋盘物品
- 在棋盘上移动卡片
- 获得冲刺
- 获取当前冲刺
- 获取冲刺工作项
- 获得冲刺能力
- 获取团队成员
项目工具
- 列出项目
- 获取项目详细信息
- 创建新项目
- 获取区域
- 获取迭代次数
- 创建区域
- 创建迭代
- 获取流程模板
- 获取工作项类型
- 获取工作项类型字段
Git 工具
- 列出存储库
- 获取存储库详细信息
- 创建存储库
- 列出分支
- 搜索代码
- 浏览存储库
- 获取文件内容
- 获取提交历史记录
- 列出拉取请求
- 创建拉取请求
- 获取拉取请求详细信息
- 获取拉取请求评论
- 批准拉取请求
- 合并拉取请求
测试能力工具
- 运行自动化测试
- 获取测试自动化状态
- 配置测试代理
- 创建测试数据生成器
- 管理测试环境
- 获取测试不稳定性分析
- 获取测试差距分析
- 运行测试影响分析
- 获取测试健康仪表板
- 运行测试优化
- 创建探索性会议
- 记录探索性测试结果
- 将发现结果转换为工作项
- 获取探索性测试统计数据
DevSecOps 工具
- 运行安全扫描
- 获取安全扫描结果
- 追踪安全漏洞
- 生成安全合规性报告
- 整合 SARIF 结果
- 运行合规性检查
- 获取合规状态
- 创建合规性报告
- 管理安全策略
- 追踪安全意识
- 轮换机密
- 审计秘密使用情况
- 配置保险库集成
工件管理工具
- 列出工件源
- 获取包版本
- 发布包
- 推广套餐
- 删除包版本
- 列出容器镜像
- 获取容器镜像标签
- 扫描容器镜像
- 管理容器策略
- 管理通用包
- 创建包下载报告
- 检查包依赖关系
人工智能辅助开发工具
- 获得 AI 驱动的代码审查
- 建议代码优化
- 识别代码异味
- 获取预测性错误分析
- 获取开发人员生产力指标
- 获取预测工作量估算
- 获取代码质量趋势
- 建议工作项改进
- 建议自动化机会
- 创建智能警报
- 预测构建失败
- 优化测试选择
安装
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 azuredevops-mcp:
先决条件
- Node.js(v16 或更高版本)
- TypeScript(v4 或更高版本)
- 具有个人访问令牌 (PAT) 或适当的本地凭据的 Azure DevOps 帐户
设置
- 克隆存储库:Copy
- 安装依赖项:Copy
- 配置环境变量(创建
.env
文件或者直接设置):对于 Azure DevOps Services(云):对于 Azure DevOps Server(本地):CopyCopy - 构建项目:如果您遇到 TypeScript 错误但仍想继续:CopyCopy
- 启动服务器:Copy
配置
个人访问令牌(PAT)
对于 Azure DevOps 服务(云),您需要创建具有适当权限的个人访问令牌:
- 转到你的 Azure DevOps 组织
- 点击右上角的个人资料图标
- 选择“个人访问令牌”
- 点击“新代币”
- 为其命名并选择适当的范围:
- 工作项目:阅读和写作
- 代码:读取和写入
- 项目和团队:阅读和写作
- 构建:阅读
- 发布:阅读
对于 Azure DevOps Server(本地),您有三种身份验证选项:
- 个人访问令牌(PAT):
- 与云设置类似,但在本地实例中创建 PAT
- 设置
AZURE_DEVOPS_AUTH_TYPE=pat
- NTLM 身份验证:
- 使用您的 Windows 域凭据
- 设置
AZURE_DEVOPS_AUTH_TYPE=ntlm
- 提供用户名、密码和域名
- 基本身份验证:
- 使用您的本地凭证
- 设置
AZURE_DEVOPS_AUTH_TYPE=basic
- 提供用户名和密码
Azure DevOps Services 与 Azure DevOps Server
此集成支持云托管的 Azure DevOps Services 和本地 Azure DevOps Server:
Azure DevOps 服务(云)
- 使用组织 URL 和 PAT 进行简单设置
- 默认配置预期格式:
https://dev.azure.com/your-organization
- 始终使用 PAT 身份验证
.env.cloud.example
中提供的示例配置文件
Azure DevOps 服务器(本地)
- 需要对服务器 URL、收集和身份验证进行额外配置
- URL 格式根据您的服务器设置而有所不同:
https://your-server/tfs
- 需要指定集合名称
- 支持多种身份验证方法(PAT、NTLM、Basic)
- 可能需要针对旧服务器版本的 API 版本规范
.env.on-premises.example
中提供的示例配置文件
主要区别
特征 | Azure DevOps 服务 | Azure DevOps 服务器 |
---|---|---|
URL 格式 | https://dev.azure.com/org | https://server/tfs |
收藏 | 不要求 | 必需的 |
身份验证方法 | 仅限 PAT | PAT、NTLM、基础 |
API 版本 | 最新(自动) | 可能需要规范 |
联系 | 始终保持互联网连接 | 可以气隙 |
示例配置
将.env.cloud.example
或.env.on-premises.example
复制到.env
并根据需要更新值。
环境变量
可以使用以下环境变量配置服务器:
多变的 | 描述 | 必需的 | 默认 |
---|---|---|---|
AZURE_DEVOPS_ORG_URL | 您的 Azure DevOps 组织或服务器的 URL | 是的 | - |
AZURE_DEVOPS_项目 | 默认使用的项目 | 是的 | - |
AZURE_DEVOPS_IS_ON_PREMISES | 是否使用 Azure DevOps Server | 不 | 错误的 |
AZURE_DEVOPS_COLLECTION | 本地集合名称 | 不* | - |
AZURE_DEVOPS_API_版本 | 本地 API 版本 | 不 | - |
AZURE_DEVOPS_AUTH_TYPE | 身份验证类型(pat/ntlm/basic) | 不 | 拍 |
AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN | 个人访问令牌 | 不** | - |
AZURE_DEVOPS_用户名 | NTLM/Basic 身份验证的用户名 | 不** | - |
AZURE_DEVOPS_密码 | NTLM/基本身份验证的密码 | 不** | - |
AZURE_DEVOPS_DOMAIN | NTLM 身份验证的域 | 不 | - |
允许的工具 | 要启用的工具方法的逗号分隔列表 | 不 | 所有工具 |
* 如果AZURE_DEVOPS_IS_ON_PREMISES=true
则为必填项 ** 根据所选的身份验证类型为必填项
使用 ALLOWED_TOOLS 进行工具过滤
ALLOWED_TOOLS
环境变量允许您限制可用的工具方法。这完全是可选的 - 如果未指定,则将启用所有工具。
格式:以逗号分隔的方法名称列表,其中不带空格。
例子:
这只会启用指定的工作项方法,同时禁用所有其他方法。
用法
服务器运行后,您可以使用 MCP 协议与其交互。该服务器公开了多种用于不同 Azure DevOps 功能的工具。
可用工具
**注意:**默认情况下,
index.ts
文件中仅注册了部分工具,以简化初始实现。有关如何注册其他工具的信息,请参阅工具注册部分。
示例:列出工作项
示例:创建工作项
示例:列出存储库
示例:创建拉取请求
建筑学
该项目结构如下:
src/
Interfaces/
:参数和响应的类型定义Services/
:用于与 Azure DevOps API 交互的服务类Tools/
:向客户端公开功能的工具实现index.ts
:注册工具并启动服务器的主入口点config.ts
:配置处理
服务层
服务层处理与 Azure DevOps API 的直接通信:
WorkItemService
:工作项操作BoardsSprintsService
:板和冲刺操作ProjectService
:项目管理运营GitService
:Git 仓库操作TestingCapabilitiesService
:测试能力操作DevSecOpsService
:DevSecOps 操作ArtifactManagementService
:Artifact管理操作AIAssistedDevelopmentService
:AI辅助开发运营
工具层
工具层包装服务并为 MCP 协议提供一致的接口:
WorkItemTools
:工作项操作工具BoardsSprintsTools
:用于板和冲刺操作的工具ProjectTools
:项目管理操作工具GitTools
:Git操作工具TestingCapabilitiesTools
:用于测试功能操作的工具DevSecOpsTools
:DevSecOps 操作工具ArtifactManagementTools
:用于工件管理操作的工具AIAssistedDevelopmentTools
:AI辅助开发操作工具
工具注册
MCP 服务器要求在index.ts
文件中明确注册工具。默认情况下,仅注册所有可能工具中的一小部分,以确保初始实现的可管理性。
要注册更多工具:
- 打开
src/index.ts
文件 - 按照现有工具的模式添加新的工具注册
- 构建并重启服务器
存储库中的TOOL_REGISTRATION.md
文件提供了有关工具注册的综合指南。
**注意:**注册工具时,请务必使用正确的参数类型,尤其是枚举值。Interfaces
Interfaces
中的类型定义定义了每个参数的预期类型。使用错误的类型(例如,对枚举值使用z.string()
而不是z.enum()
)会导致构建期间出现 TypeScript 错误。
注册新工具的示例:
故障排除
常见问题
身份验证错误
- 确保您的个人访问令牌有效并具有所需的权限
- 检查组织 URL 是否正确
构建期间的 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 并包含适当的测试。
You must be authenticated.
Tools
该服务器提供便捷的 API,用于与 Azure DevOps 服务交互,使 AI 助手和其他工具能够管理工作项、代码库、看板、冲刺等。它基于模型上下文协议构建,提供与 Azure DevOps 通信的标准化接口。
- Overview
- Demo
- Features
- Installation
- Configuration
- Usage
- Architecture
- Tool Registration
- Troubleshooting
- Contributing