Azure DevOps集成服务器

一个实现Model Context Protocol(MCP)的服务器,提供与Azure DevOps服务的集成,用于管理项目、构建、仓库和工作项。

  • by ameitg
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ameitg/az-devops-mcp-server

使用说明

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(用于开发)

🛠️ 安装和设置

  1. 克隆存储库:
git clone <repository-url>
cd az-devops-mcp-server
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build
  1. 配置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个人访问令牌

  1. 转到您的Azure DevOps组织
  2. 点击您的个人资料图片→ 个人访问令牌
  3. 点击“新建令牌”
  4. 设置适当的范围(通常是开发的“完全访问”)
  5. 复制生成的令牌

光标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

在游标中使用

服务器构建和配置后:

  1. 重新启动游标 加载MCP配置
  2. 直接询问Cursor 要使用Azure DevOps工具:
    • “列出eazypetition中的所有工作项”
    • “为用户身份验证创建新任务”
    • “显示申请人仪表板任务的状态”
    • “列出我的Azure DevOps组织中的所有项目”

可用工具

MCP服务器提供以下工具:

1. list_projects

列出Azure DevOps组织中的所有项目。

参数: 无

2. list_work_items

使用WIQL查询列出工作项。

参数:

  • project:项目名称或ID
  • query:WIQL查询字符串(可选)

3. create_work_item

创建新工作项。

参数:

  • project:项目名称或ID
  • type:工作项类型(例如,Bug、任务、用户故事)
  • title:工作项标题
  • description:工作项描述(可选)

4. list_builds

列表为特定项目构建。

参数:

  • project:项目名称或ID

5. list_repositories

列出特定项目的Git存储库。

参数:

  • project:项目名称或ID

📚 示例用法

在游标中使用(推荐)

只需让Cursor执行Azure DevOps操作:

  • “列出eazypetition中的所有工作项”
  • “创建一个名为“用户身份验证”的新任务”
  • “显示申请人仪表板任务的状态”
  • “列出我的Azure DevOps组织中的所有项目”
  • “为登录问题创建错误报告”

直接工具调用(高级)

如果您需要直接调用工具:

  1. 列出项目:

    list_projects()
    
  2. 列出工作项:

    list_work_items(project: "eazypetition")
    
  3. 创建工作项:

    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

🐛 故障排除

常见问题

  1. 身份验证失败:

    • 验证您的个人访问令牌是否有效
    • 检查令牌是否具有必要的权限
    • 确保组织URL正确
  2. 未找到项目:

    • 验证项目名称/ID是否正确
    • 确保您有权访问该项目
  3. 生成API错误:

    • 检查项目是否具有生成定义
    • 验证生成权限
  4. 服务器无法启动:

    • 验证是否已安装所有依赖项
    • 检查Node.js版本(需要16+)
    • 确保环境变量设置正确
  5. 光标无法连接:

    • 验证MCP配置语法
    • 确保配置后重新启动Cursor
    • 检查服务器命令路径是否正确

调试模式

为了调试,您可以运行带有额外日志记录的服务器:

DEBUG=* npm run dev

测试连接

要验证您的MCP服务器是否正常工作:

  1. 构建项目:

    npm run build
    
  2. 启动服务器:

    npm start
    
  3. 在Cursor中,询问:

    • “列出eazypetition中的所有工作项”
    • “显示我的Azure DevOps项目”

🔒 安全考虑

  • 从不提交个人访问令牌 到版本控制
  • 使用环境变量进行敏感配置
  • 定期轮换您的个人访问令牌
  • 为令牌授予最低限度的必要权限
  • 服务器在本地运行,并通过stdio进行通信

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件。

🆘 支持

对于问题和疑问:

  • 检查故障排除部分
  • 查看Azure DevOps API文档
  • 在存储库中打开问题

📚 参考文献