使用说明
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 <repository-url>
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文档
- 在存储库中打开问题