使用说明
Azure DevOps MCP服务器
这是一个模型上下文协议(MCP)服务器,通过标准化的接口提供对Azure DevOps资源和工具的访问。
特性
服务器提供以下Azure DevOps工具:
- get_workitems -使用WIQL查询检索工作项
- 获取存储 -列出Git存储库
- get_pullrequests -从存储库获取拉取请求
- get_builds -检索构建管道信息
- get_commits -从仓库获取Git提交
- 创建工作项 -创建新的工作项(bug、功能、任务等)
先决条件
- Azure DevOps帐户:您需要访问Azure DevOps组织
- 个人访问令牌:生成具有以下范围的PAT:
- 工作项(读写)
- 代码(读取)
- 构建(读取)
- 发布(阅读)
安装说明
1.配置环境变量
编辑 .env 在项目根目录中创建文件并替换占位符值:
# Your Azure DevOps organization name (e.g., "mycompany" for dev.azure.com/mycompany)
AZURE_DEVOPS_ORG=your-actual-organization
# Your Azure DevOps project name
AZURE_DEVOPS_PROJECT=your-actual-project
# Your Azure DevOps Personal Access Token
AZURE_DEVOPS_TOKEN=your-actual-personal-access-token
2.生成个人访问令牌
- 转到您的Azure DevOps组织:
https://dev.azure.com/{your-org}/_usersSettings/tokens - 点击“新建令牌”
- 设置以下范围:
- 工作项:读写
- 代码:阅读
- 构建:阅读
- 发布:阅读
- 复制生成的令牌并将其添加到您的
.env文件
3.测试服务器
运行服务器以测试您的配置:
# Activate virtual environment
source azure-mcp-venv/bin/activate
# Run the server
python main.py
如果成功,您应该看到: 🚀 Azure DevOps MCP Server running...
运行MCP服务器
选项1:终端交互客户端(建议用于VPN环境)
如果您使用VPN或无法通过VS Code连接,您可以直接从终端使用交互式MCP客户端:
# Navigate to the project directory
cd /Users/kshitijijari/Desktop/MySpace/MCP/azure-devops-mcp-server
# Activate the virtual environment
source azure-mcp-venv/bin/activate
# Run the interactive MCP client
python mcp_client.py
这将启动一个包含以下选项的交互式菜单:
- 列出可用工具 -查看所有可用的Azure DevOps工具
- 获取工作项 -运行自定义WIQL查询
- 获取存储库 -列出Git存储库
- 获取构建 -查看构建管道信息
- 获取pull请求 -查看存储库中的PR
- 获取提交 -查看Git提交
- 创建工作项 -创建新工作项
- 退出
选项2:直接MCP服务器
直接运行MCP服务器(用于MCP客户端):
# Navigate to the project directory
cd /Users/kshitijijari/Desktop/MySpace/MCP/azure-devops-mcp-server
# Activate the virtual environment
source azure-mcp-venv/bin/activate
# Run the MCP server
python main.py
选项3:使用启动脚本
# Make the script executable
chmod +x start_mcp_server.sh
# Run the startup script
./start_mcp_server.sh
添加到MCP客户端(VS代码/光标)
选项1:使用提供的配置
复制 mcp_config.json 将文件保存到MCP客户端配置目录并更新环境变量:
{
"mcpServers": {
"azure-devops": {
"command": "python",
"args": [
"/Users/kshitijijari/Desktop/MySpace/MCP/azure-devops-mcp-server/main.py"
],
"env": {
"AZURE_DEVOPS_ORG": "your-actual-organization",
"AZURE_DEVOPS_PROJECT": "your-actual-project",
"AZURE_DEVOPS_TOKEN": "your-actual-personal-access-token"
}
}
}
}
选项2:手动配置
将此添加到MCP客户端配置中:
{
"mcpServers": {
"azure-devops": {
"command": "python",
"args": ["/absolute/path/to/your/azure-devops-mcp-server/main.py"],
"env": {
"AZURE_DEVOPS_ORG": "your-organization",
"AZURE_DEVOPS_PROJECT": "your-project",
"AZURE_DEVOPS_TOKEN": "your-personal-access-token"
}
}
}
}
选项3:使用启动脚本
您还可以使用提供的启动脚本:
{
"mcpServers": {
"azure-devops": {
"command": "/Users/kshitijijari/Desktop/MySpace/MCP/azure-devops-mcp-server/start_mcp_server.sh",
"env": {
"AZURE_DEVOPS_ORG": "your-organization",
"AZURE_DEVOPS_PROJECT": "your-project",
"AZURE_DEVOPS_TOKEN": "your-personal-access-token"
}
}
}
}
使用示例
终端交互客户端示例
使用交互式MCP客户端时(python mcp_client.py),您可以:
使用自定义查询获取工作项:
- 输入WIQL查询,如下所示:
SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.AssignedTo] = 'John Doe' - 或者对最近的工作项使用默认查询
获取存储库:
- 可选择按存储库名称筛选
- 查看所有可用的Git存储库
获取构建:
- 按构建定义ID筛选
- 按状态筛选(正在进行、已完成、全部)
- 设置自定义限制
创建工作项:
- 选择工作项类型(Bug、功能、任务、用户故事、Epic)
- 设置标题、描述、受让人、区域路径和迭代路径
MCP客户端集成示例
配置后,您可以在MCP客户端中使用Azure DevOps工具:
获取工作项
{
"name": "get_workitems",
"arguments": {
"query": "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.TeamProject] = @project",
"limit": 10
}
}
获取存储库
{
"name": "get_repositories",
"arguments": {}
}
创建工作项
{
"name": "create_workitem",
"arguments": {
"work_item_type": "Bug",
"title": "New bug report",
"description": "Description of the bug",
"assigned_to": "user@example.com"
}
}
故障排除
常见问题
- 认证错误:验证您的个人访问令牌是否正确,是否具有所需的范围
- 未找到组织/项目:检查您的组织和项目名称拼写是否正确
- 权限不足:确保您的PAT具有您尝试执行的操作所需的权限
调试模式
要启用调试日志记录,请在中修改日志记录级别 main.py:
logging.basicConfig(level=logging.DEBUG)
安全说明
- 永远不要承诺你的
.env文件或个人访问令牌到版本控制 - 在生产中使用环境变量或安全配置管理
- 定期轮换您的个人访问令牌
- 设置令牌范围时使用最小特权原则
支持
对于问题或疑问:
- 查看Azure DevOps API文档
- 验证您的令牌权限
- 直接使用Azure DevOps REST API测试您的连接
