MCP Azure DevOps分析服务器
MCP(模型上下文协议)服务器,为AI助手提供Azure DevOps的强大分析功能。此服务器使AI能够分析工作项、团队、区域,提供数据质量见解,并为Azure DevOps配置提供智能指导。
特性
核心分析(12个工具)
- 跨组织中的所有项目或特定项目进行查询
- 列出Azure DevOps组织中的所有项目
- 查询Azure DevOps区域、团队和用户(整个组织或每个项目)
- 通过灵活的筛选访问工作项快照
- 解决区域、团队和工作项之间的关系
- 对Azure DevOps Analytics执行自定义OData查询
- 通过基于时间的过滤获取冲刺/迭代数据
- 使用周期时间和交付周期指标跟踪工作项历史记录
- 检索团队成员信息
- 完全分页和过滤支持
高性能
- 本地存储管理 -在本地缓存大型数据集以进行高效分析
- 数据质量分析 -识别未分配的工作项、孤立数据、重复项
- 洞察力提取 -生成团队生产力指标、速度趋势
- 健康报告 -全面的项目健康评估
- AI教练 -指导用户完成Azure DevOps配置
综合分析套件(12+分析工具)
核心指标
- Sprint指标 -计算速度、消耗和冲刺健康状况
- 流量指标 -测量周期时间、交付周期、WIP和吞吐量
- DORA指标 -跟踪部署频率、变更交付周期、MTTR和变更失败率
- 累积流量 -生成CFD数据以识别工作流程瓶颈
- 历史数据 -收集和分析历史指标以进行趋势分析
- 交货预测 -根据历史速度预测交货日期
高级分析(新)
- 交付周期分析 (
analyze_lead_time)-多期交付周期分析(2周、30天、60天、一年),包括百分位数和趋势检测 - 循环时间分析 (
analyze_cycle_time)-按团队/区域/用户/类型细分的综合周期时间指标 - 吞吐量分析 (
analyze_throughput)-基线计算、投影和尖峰检测 - 失效载荷分析 (
analyze_failure_load)-缺陷率、缺陷密度、逃逸率、MTTR计算 - 卡龄分析 (
analyze_card_age)-带老化检测的工作项年龄分布 - 积压增长分析 (
analyze_backlog_growth)-增长率、峰值检测和容量预测 - 仪表板指标 (
get_dashboard_metrics)-综合仪表板的综合指标
灵活过滤
所有分析工具都支持通过以下方式进行灵活过滤:
- 团队 -按特定团队名称筛选
- 区域路径 -按区域层次结构筛选
- 用户 -按指定用户筛选
- 工作项类型 -按类型筛选(用户故事、Bug、任务等)
- 状态 -按工作项状态筛选
- 标签 -按工作项标签筛选
- 日期范围 -自定义日期范围筛选
- 迭代路径 -按冲刺/迭代筛选
MCP配置
要将此服务器与Claude或其他AI助手一起使用,请将其添加到您的MCP配置中:
MCP配置示例
创建或更新您的MCP配置文件(例如。, claude_desktop_config.json):
{
"mcpServers": {
"azure-devops-analytics": {
"command": "node",
"args": ["path/to/mcp-azure-devops-analytics/dist/index.js"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
"AZURE_DEVOPS_PAT": "your-personal-access-token",
"AZURE_DEVOPS_PROJECT": "your-project-name",
"MCP_ANALYTICS_CACHE_DIR": "/absolute/path/to/analytics/cache"
}
}
}
}或者,您可以使用npx:
{
"mcpServers": {
"azure-devops-analytics": {
"command": "npx",
"args": ["mcp-azure-devops-analytics"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
"AZURE_DEVOPS_PAT": "your-personal-access-token",
"MCP_ANALYTICS_CACHE_DIR": "/absolute/path/to/analytics/cache"
}
}
}
}设置
先决条件
- 已安装Node.js 18+
- 启用分析的Azure DevOps组织
- 具有分析读取权限的个人访问令牌(PAT)
安装
- 克隆此存储库
- 安装依赖项:
npm install- 创建一个
.env文件基于.env.example:
cp .env.example .env- 在中配置Azure DevOps设置
.env:
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization
AZURE_DEVOPS_PAT=your-personal-access-token
AZURE_DEVOPS_PROJECT=your-project-name # Optional - leave empty to query all projects
MCP_ANALYTICS_CACHE_DIR=.mcp-analytics-cache # Working directory for analytics cache工作目录配置
MCP服务器使用本地工作目录存储:
- 缓存分析数据以实现更快的查询
- 趋势分析的历史指标
- 用于复杂多步骤分析的会话数据
- 生成JSON、CSV和Markdown格式的报告
工作目录是通过以下方式配置的 MCP_ANALYTICS_CACHE_DIR 环境变量:
- 默认:
.mcp-analytics-cache在当前目录中 - 推荐:使用绝对路径进行生产部署
- 结构:自动组织到不同数据类型的子目录中
目录结构示例:
.mcp-analytics-cache/
├── cache/ # Temporary cached data
├── sessions/ # Active analysis sessions
├── reports/ # Generated reports
├── analysis/ # Analysis results
└── metrics/ # Historical metrics data
├── daily/ # Daily aggregations
├── weekly/ # Weekly rollups
└── monthly/ # Monthly summaries建筑
npm run build跑步
发展:
npm run dev生产:
npm start测试
单元测试
运行单元测试(不需要Azure DevOps连接):
npm test # Run unit tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Run tests with coverage report集成测试
集成测试需要有效的Azure DevOps连接。设置您的 .env 文件包含:
AZURE_DEVOPS_ORG_URL:您的Azure DevOps组织URLAZURE_DEVOPS_PAT:具有Analytics读取权限的有效个人访问令牌AZURE_DEVOPS_PROJECT:(可选)测试的默认项目
验证您的配置:
npm run validate # Test connection and verify credentials运行集成测试:
npm run test:integration # Run integration tests only
npm run test:all # Run both unit and integration tests备注:如果在中找不到有效凭据,将自动跳过集成测试 .env 文件。
可用工具
get_项目
获取Azure DevOps组织中的所有项目。
获取_区域
获取所有项目或特定项目的区域。
参数:
project:要查询的可选特定项目名称
get_teams
让团队参与所有项目或特定项目。
参数:
project:要查询的可选特定项目名称
用户名
让用户跨所有项目或特定项目。
参数:
project:要查询的可选特定项目名称
get_work_item_snapshots
使用可选的过滤和分页功能获取工作项快照。
参数:
project:要查询的可选特定项目名称top:要退回的物品数量skip:分页时要跳过的项目数filter:OData筛选器表达式select:以逗号分隔的要选择的字段列表orderby:订购字段
get_work_items_by_area
获取特定区域路径的工作项。
参数:
areaPath:过滤工作项的区域路径project:要查询的可选特定项目名称
get_team_areas
获取与特定团队相关的区域。
参数:
teamName:团队名称project:要查询的可选特定项目名称
get_area_team_workitem_关系
了解区域、团队和工作项之间的关系。
参数:
areaPath:要分析的可选特定区域路径project:要查询的可选特定项目名称
查询分析
对Azure DevOps Analytics执行自定义OData查询。
参数:
query:OData查询字符串project:要查询的可选特定项目名称
MCP客户端配置
要将此服务器与MCP客户端(例如Claude Desktop)一起使用,请在MCP客户端配置中添加以下内容:
{
"mcpServers": {
"azure-devops-analytics": {
"command": "node",
"args": ["path/to/dist/index.js"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
"AZURE_DEVOPS_PAT": "your-pat",
"AZURE_DEVOPS_PROJECT": "your-project", // Optional - default project
"MCP_ANALYTICS_CACHE_DIR": "path/to/cache" // Optional - working directory
},
"workingDirectory": "path/to/mcp-azure-devops-analytics"
}
}
}工作目录结构
服务器为分析操作创建本地缓存目录:
.mcp-analytics-cache/
├── cache/ # Temporary cached data (auto-expires)
├── analysis/ # Analysis results
├── reports/ # Generated reports (JSON, CSV, Markdown)
├── mappings/ # Team-area relationship mappings
└── sessions/ # Multi-step operation tracking人工智能分析问题
MCP服务器使AI助手能够回答有关Azure DevOps数据的复杂分析问题。以下是一些你可以问的强大查询:
团队绩效分析
交付周期分析
- “TeamAlpha在过去2周、30天、60天和一年的平均交付周期是多少?”
- “显示前端区域所有团队的交付周期趋势”
- “本季度哪个团队的交付周期表现最好?”
- “用户故事与Bug的P50、P75和P95交付周期是多少?”
周期时间洞察
- “计算按高优先级项目筛选的TeamBeta的周期时间指标”
- “比较不同工作项类型之间的循环时间”
- “按开发人员显示上一个sprint的周期时间细分”
- “在过去的6个月里,我们的月经周期是在改善还是在缩短?”
吞吐量和速度
- “根据下一个冲刺的基线预测,我们团队的吞吐量是多少?”
- “确定过去90天的吞吐量峰值及其可能的原因”
- “按团队计算平均吞吐量,并显示哪些团队超出/低于基线”
- “我们的速度趋势和未来3次冲刺的预测速度是多少?”
质量和技术债务
失效载荷分析
- “我们目前的故障负载是多少?随着时间的推移,它是如何变化的?”
- 计算每个团队的错误率、缺陷密度和逃逸率
- “对于关键错误,我们的平均解决时间(MTTR)是多少?”
- “按优先级和严重程度显示故障负载明细”
卡年龄和工作项健康状况
- “目前正在进行的用户故事的平均年龄是多少?”
- “确定已打开超过60天的所有工作项”
- “显示积压项目的年龄分布”
- “由于年龄过大,哪些工作项目需要注意?”
积压和容量规划
积压增长分析
- “每天/每周/每月添加到积压中的新卡的平均数量是多少?”
- “确定积压工作增加的峰值及其时间模式”
- “我们的积压工作增长速度是否快于我们的完成率?”
- “根据当前趋势预测下个月的积压量”
容量和预测
- “根据我们的速度,我们什么时候能完成当前的积压工作?”
- “我们有足够的容量来应对即将发布的版本吗?”
- “我们的在制品(WIP)限制遵守情况是什么?”
- “预测下一个里程碑的交付日期”
DORA指标和DevOps绩效
部署和交付指标
- “计算我们的DORA指标:部署频率、变更交付周期、MTTR和变更失败率”
- “我们的部署频率与上个季度相比如何?”
- “我们从承诺到生产的平均交付周期是多少?”
- “跟踪过去6个月的变更失败率趋势”
跨团队比较
比较分析
- “比较项目中所有团队的交付周期和周期时间”
- “相对于团队规模,哪个团队的速度最高?”
- “按质量指标(错误率、逃逸率)对团队进行排名”
- “显示所有团队的生产力趋势”
自定义分析查询
复杂过滤示例
// Analyze lead time for a specific team and work item type
{
"tool": "analyze_lead_time",
"arguments": {
"project": "MyProject",
"filter": {
"teamName": "TeamAlpha",
"workItemType": "User Story",
"dateRange": {
"start": "2024-01-01",
"end": "2024-12-31"
}
}
}
}
// Get failure load for high-priority items only
{
"tool": "analyze_failure_load",
"arguments": {
"project": "MyProject",
"filter": {
"tags": ["high-priority", "customer-reported"]
}
}
}
// Analyze backlog growth for a specific area
{
"tool": "analyze_backlog_growth",
"arguments": {
"project": "MyProject",
"filter": {
"areaPath": "MyProject\\Frontend",
"workItemType": "User Story"
}
}
}仪表板和报告
综合仪表盘
- “生成一个包含速度、周期时间、吞吐量、质量、DORA和团队健康指标的完整仪表板”
- “创建每周团队绩效报告”
- “构建一个显示项目健康指标的执行仪表板”
- “生成一份包含所有关键指标的冲刺回顾报告”
查询示例
获取所有项目
{
"tool": "get_projects"
}从特定项目中获取区域
{
"tool": "get_areas",
"arguments": {
"project": "MyProject"
}
}从所有项目中获取处于活动状态的工作项
{
"tool": "get_work_item_snapshots",
"arguments": {
"filter": "State eq 'Active'",
"select": "WorkItemId,Title,AssignedUser,ProjectSK",
"top": 20
}
}从特定项目中获取工作项
{
"tool": "get_work_item_snapshots",
"arguments": {
"project": "MyProject",
"filter": "State eq 'Active'",
"select": "WorkItemId,Title,AssignedUser",
"top": 20
}
}获得区域团队关系
{
"tool": "get_area_team_workitem_relationships",
"arguments": {
"areaPath": "ProjectName\\AreaPath"
}
}自定义分析查询
{
"tool": "query_analytics",
"arguments": {
"query": "WorkItems?$filter=WorkItemType eq 'Bug' and State ne 'Closed'&$top=50"
}
}测试
集成测试
该项目包括全面的集成测试,用于验证与Azure DevOps Analytics的实际连接。这些测试:
- 验证API连接 -确保您的PAT和组织URL有效
- 测试所有查询方法 -根据真实的Azure DevOps数据验证每个工具
- 检查数据关系 -测试区域团队工作项关系解决方案
- 验证筛选和分页 -确保OData查询正常工作
- 测试跨项目查询 -验证组织范围内的数据访问
运行集成测试
- 创建一个
.env使用您的Azure DevOps凭据创建文件:
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization
AZURE_DEVOPS_PAT=your-personal-access-token
AZURE_DEVOPS_PROJECT=optional-default-project- 确保您的PAT具有以下权限:
- 分析(阅读) - 工作项(已读) - 项目和团队(阅读)
- 验证您的配置:
npm run validate这将测试您的连接并显示可用项目。
- 运行集成测试:
npm run test:integration集成测试验证什么
- 项目:列出组织中的所有项目
- 区域:获取区域路径并验证层次结构
- 团队:检索团队信息和配置
- 用户:从组织获取用户数据
- 工作项:测试查询、筛选和分页
- 关系:验证复杂的区域团队工作项关系
- 自定义查询:测试OData查询执行
- 错误处理:确保对无效请求的优雅处理
集成测试提供详细的控制台输出,显示:
- 检索到的项目数
- 每个查询的示例数据
- 性能指标(每个测试有30-60秒的超时时间)
- 如果身份验证失败,请清除错误消息
许可证
麻省理工学院
