使用说明
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()- 创建新的测试用例
模块化的益处
- **关注点分离(或译为:职责分离)**每个模块都有特定的职责
- 可维护性更容易修改和调试单个组件
- 可重用性客户端和解析器可以在其他项目中重复使用
- 可测试性每个模块都可以独立进行测试
- 可读性更小、更集中的文件更容易理解
- 可扩展性易于添加新的工作项类型或工具
要求
- 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文件。