DevOps用户故事和测试用例管理工具

一个用于Azure DevOps集成的模块化模型上下文协议(MCP)服务器,提供管理用户故事和测试用例的工具。

  • by executeautomation
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 executeautomation/azure-devops-mcp

使用说明

Azure DevOps MCP 服务器

一个用于Azure DevOps集成的模块化模型上下文协议(MCP)服务器,提供管理用户故事和测试用例的工具。

设置

1. 安装依赖项

pip install -r requirements.txt

2. 配置环境变量

复制示例环境文件并填写您的值:

cp .env.example .env

编辑 .env 并设置您的 Azure DevOps 凭据:

# Required
AZURE_DEVOPS_PAT=your_personal_access_token_here

# Optional (with defaults)
AZURE_DEVOPS_ORG=your_org_name
AZURE_DEVOPS_PROJECT=your_project_name

3. 在Claude中配置MCP服务器

在您的Claude MCP设置中添加以下配置:mcp.json):

{
  "AzureDevOps": {
    "command": "python3",
    "args": ["~/main.py"],
    "env": {
      "AZURE_DEVOPS_PAT": "your_personal_access_token_here",
      "AZURE_DEVOPS_ORG": "your_org_name",
      "AZURE_DEVOPS_PROJECT": "your_project_name",
      "AZURE_DEVOPS_DISABLE_SSL_VERIFY": "false"
    }
  }
}

注请将这些值替换为您实际的 Azure DevOps 凭据和路径。

4. 运行服务器(可选 - 用于测试)

python main.py

或者使用 python3:

python3 main.py

环境变量

变量 必填 默认值 描述
AZURE_DEVOPS_PAT ✅ 是 - Azure DevOps 的个人访问令牌
AZURE_DEVOPS_ORG ❌ 不 executeauto Azure DevOps 组织名称
AZURE_DEVOPS_PROJECT ❌ 不是 Udemy Azure DevOps 项目名称
AZURE_DEVOPS_DISABLE_SSL_VERIFY ❌ 不 false 禁用SSL验证(仅用于调试)

注当使用MCP配置与Claude时,您可以直接在(相关环境中)设置这些环境变量 mcp.json 使用文件而不是(使用某物) .env 文件。

可用工具

用户故事工具

  • get_user_stories() - 列出用户故事
  • get_story_details() - 获取详细的故事信息
  • search_stories_by_title() - 按标题搜索故事
  • get_stories_by_state() - 按状态筛选故事
  • update_story() - 更新故事字段
  • create_user_story() - 创作新的故事

测试用例工具

  • get_test_cases() - 列出测试用例
  • get_test_case_details() - 获取详细的测试用例信息
  • search_test_cases_by_title() - 按标题搜索测试用例
  • get_test_cases_by_state() - 按状态过滤测试用例
  • update_test_case() - 更新测试用例字段
  • create_test_case() - 创建新的测试用例

模块化的益处

  1. **关注点分离(或译为:职责分离)**每个模块都有特定的职责
  2. 可维护性更容易修改和调试单个组件
  3. 可重用性客户端和解析器可以在其他项目中重复使用
  4. 可测试性每个模块都可以独立进行测试
  5. 可读性更小、更集中的文件更容易理解
  6. 可扩展性易于添加新的工作项类型或工具

要求

  • Python 3.9及以上版本
  • 一个具有访问工作项和测试计划权限的有效Azure DevOps个人访问令牌(PAT)
  • 访问您的 Azure DevOps 组织的网络连接

特点/特性

  • 模块化架构:客户端、解析器、模型和工具注册相互独立
  • 用于用户故事和测试用例的工具
  • 内置重试和超时配置,确保API调用的健壮性
  • 通过 python-dotenv 提供可选的 .env 支持

项目结构

  • main.py:入口点;初始化FastMCP并注册工具
  • client.py:带认证、重试和超时功能的Azure DevOps REST API客户端
  • user_story_tools.py:用于查询和修改用户故事的工具
  • test_case_tools.py: 用于查询和修改测试用例的工具
  • parsers.py:用于Azure DevOps有效载荷的规范化/解析辅助工具
  • models.py: 轻量级数据模型
  • config.py:环境驱动的配置

使用示例(来自MCP客户端)

  • 列出用户故事:

    • 工具:获取用户故事
    • 参数:{"top": 50}(意为:取前50个)
  • 获取一个特定的故事:

    • 工具:获取故事详情
    • 参数:{"id": 12345}
  • 按标题搜索测试用例:

    • 工具:按标题搜索测试用例
    • 参数:{"query": "登录"}
  • 创建一个新的用户故事:

    • 工具:创建用户故事
    • 参数:{"标题": "作为用户,我希望...", "区域路径": "项目\区域", "迭代路径": "项目\冲刺1"}

故障排除

  • 错误:需要设置 AZURE_DEVOPS_PAT 环境变量
    • 确保在您的环境或.env文件中设置了AZURE_DEVOPS_PAT,或者通过MCP环境提供
  • SSL证书错误
    • 仅在调试时设置 AZURE_DEVOPS_DISABLE_SSL_VERIFY=true(不建议在生产环境中使用)
  • 来自 Azure DevOps 的 401/403 错误
    • 验证PAT(个人访问令牌)的作用范围,并确保AZURE_DEVOPS_ORG和AZURE_DEVOPS_PROJECT的值正确无误

安全注意事项

  • 永远不要将你的个人访问令牌(PAT)提交到源代码控制系统中
  • 建议使用环境变量或本地 .env 文件(该文件被 git 忽略)

做出贡献

  • 提交一个包含更改清晰描述的拉取请求
  • 保持更改的集中性和明确范围;在适用的情况下添加测试

许可证

此项目采用MIT许可证授权。详见LICENSE文件。