Azure DevOps MCP服务器
一个模型上下文协议(MCP)服务器,使用以下方式提供与Azure DevOps服务的集成 stdio传输此服务器允许AI助手与Azure DevOps组织进行交互,以管理项目、构建、存储库和工作项。
🚀 特性
- Azure DevOps集成:完全访问Azure DevOps API
- MCP协议:实现用于游标集成的模型上下文协议
- 标准运输:用于本地Cursor集成的标准输入/输出传输
- 项目管理:列出并探索Azure DevOps项目
- 构建管理:查看生成定义和生成详细信息
- 库管理:列出Git存储库并获取存储库信息
- 工作项管理:使用WIQL查询、查看和创建工作项
- 安全认证:使用个人访问令牌进行安全的API访问
- 环境配置:通过环境变量进行简单配置
📋 先决条件
- Node.js 16或更高版本
- 具有个人访问令牌的Azure DevOps组织
- 游标IDE(用于MCP集成)
- TypeScript(用于开发)
🛠️ 安装和设置
- 克隆存储库:
git clone
cd az-devops-mcp-server- 安装依赖项:
npm install- 构建项目:
npm run build- 配置Azure DevOps凭据:
选项A:环境变量(推荐) 创建一个 .env 项目根目录中的文件:
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/yourorgname
AZURE_DEVOPS_PAT=your-personal-access-token
AZURE_DEVOPS_PROJECT=your-project-name (optional)选项B:光标MCP配置 更新 .cursor/mcp.json 使用您的凭据(请参阅下面的配置部分)
🔧 配置
Azure DevOps个人访问令牌
- 转到您的Azure DevOps组织
- 点击您的个人资料图片→ 个人访问令牌
- 点击“新建令牌”
- 设置适当的范围(通常是开发的“完全访问”)
- 复制生成的令牌
光标MCP配置
创建或更新 .cursor/mcp.json 在您的项目中:
{
"mcpServers": {
"azure-devops": {
"transport": "stdio",
"command": "node",
"args": ["dist/index.js"],
"env": {
"AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/YOUR_ORG_NAME",
"AZURE_DEVOPS_PAT": "YOUR_PERSONAL_ACCESS_TOKEN",
"AZURE_DEVOPS_PROJECT": "YOUR_PROJECT_NAME"
}
}
}
}🚀 用法
启动服务器
直接模式(如果您有.env文件)
# Build and start
npm run build
npm start发展模式
npm run dev在游标中使用
服务器构建和配置后:
- 重新启动游标 加载MCP配置
- 直接询问Cursor 要使用Azure DevOps工具:
- “列出eazypetition中的所有工作项” - “为用户身份验证创建新任务” - “显示申请人仪表板任务的状态” - “列出我的Azure DevOps组织中的所有项目”
可用工具
MCP服务器提供以下工具:
1. list_projects
列出Azure DevOps组织中的所有项目。
参数: 无
2. list_work_items
使用WIQL查询列出工作项。
参数:
project:项目名称或IDquery:WIQL查询字符串(可选)
3. create_work_item
创建新工作项。
参数:
project:项目名称或IDtype:工作项类型(例如,Bug、任务、用户故事)title:工作项标题description:工作项描述(可选)
4. list_builds
列表为特定项目构建。
参数:
project:项目名称或ID
5. list_repositories
列出特定项目的Git存储库。
参数:
project:项目名称或ID
📚 示例用法
在游标中使用(推荐)
只需让Cursor执行Azure DevOps操作:
- “列出eazypetition中的所有工作项”
- “创建一个名为“用户身份验证”的新任务”
- “显示申请人仪表板任务的状态”
- “列出我的Azure DevOps组织中的所有项目”
- “为登录问题创建错误报告”
直接工具调用(高级)
如果您需要直接调用工具:
- 列出项目:
list_projects()- 列出工作项:
list_work_items(project: "eazypetition")- 创建工作项:
create_work_item(project: "eazypetition", type: "Task", title: "New Task", description: "Task description")WIQL查询示例
- 所有活动错误:
SELECT [System.Id] FROM WorkItems WHERE [System.WorkItemType] = 'Bug' AND [System.State] <> 'Closed'- 我分配的工作项目:
SELECT [System.Id] FROM WorkItems WHERE [System.AssignedTo] = @me- 当前sprint中的工作项:
SELECT [System.Id] FROM WorkItems WHERE [System.IterationPath] = 'MyProject\Sprint 1'🛠️ 发展
项目结构
az-devops-mcp-server/
├── .cursor/
│ └── mcp.json # Cursor MCP configuration
├── src/
│ ├── index.ts # Main entry point
│ └── server.ts # Azure DevOps MCP server implementation
├── dist/ # Compiled JavaScript output
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── .env # Environment variables (create from config.env.example)
└── config.env.example # Example environment configuration建筑
npm run build发展模式
npm run dev清洁建筑
npm run clean
npm run build可用脚本
npm start # Start the compiled server
npm run dev # Development mode with hot reload
npm run build # Build the project
npm run clean # Clean build artifacts🐛 故障排除
常见问题
- 身份验证失败:
- 验证您的个人访问令牌是否有效 - 检查令牌是否具有必要的权限 - 确保组织URL正确
- 未找到项目:
- 验证项目名称/ID是否正确 - 确保您有权访问该项目
- 生成API错误:
- 检查项目是否具有生成定义 - 验证生成权限
- 服务器无法启动:
- 验证是否已安装所有依赖项 - 检查Node.js版本(需要16+) - 确保环境变量设置正确
- 光标无法连接:
- 验证MCP配置语法 - 确保配置后重新启动Cursor - 检查服务器命令路径是否正确
调试模式
为了调试,您可以运行带有额外日志记录的服务器:
DEBUG=* npm run dev测试连接
要验证您的MCP服务器是否正常工作:
- 构建项目:
npm run build- 启动服务器:
npm start- 在Cursor中,询问:
- “列出eazypetition中的所有工作项” - “显示我的Azure DevOps项目”
🔒 安全考虑
- 从不提交个人访问令牌 到版本控制
- 使用环境变量进行敏感配置
- 定期轮换您的个人访问令牌
- 为令牌授予最低限度的必要权限
- 服务器在本地运行,并通过stdio进行通信
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件。
🆘 支持
对于问题和疑问:
- 检查故障排除部分
- 查看Azure DevOps API文档
- 在存储库中打开问题
