项目简介

本项目是一个基于 Azure Functions 实现的 MCP (Model Context Protocol) 工具集,旨在将 Azure DevOps 的核心功能(如 Azure Boards 的工作项管理和 Azure Pipelines 的自动化构建)暴露给支持 MCP 的人工智能客户端(如 Copilot 或其他对话式AI平台)。通过这些工具,AI 可以理解并执行与 Azure DevOps 相关的任务。

主要功能点

  • Azure Boards 集成:
    • 列出组织中的 Azure DevOps 项目。
    • 按项目和类型列出工作项(如 Bug, Task, User Story)。
    • 在指定项目中创建新的工作项,可包含标题、描述、负责人和标签。
  • Azure Pipelines 集成:
    • 列出项目中可用的 Pipelines。
    • 触发特定 Pipeline 的运行,可指定分支和参数。
    • 获取指定 Pipeline 运行(构建)的状态和详细信息。
  • MCP 工具框架:
    • 利用 '.NET' 的 MCP 扩展,通过特定属性 ('[McpToolTrigger]', '[McpToolProperty]') 将 Azure Functions 注册为 MCP 工具。
    • 使得外部 MCP 客户端能够发现这些功能并按需调用。

安装步骤

  1. 准备环境: 确保已安装 .NET SDK (兼容项目需求的版本,通常是 .NET 8 或更高) 和 Azure Functions Core Tools。
  2. 克隆仓库: 将项目代码克隆到本地计算机。
  3. 配置 Azure DevOps 连接:
    • 在项目根目录找到 'AzureMcpAgents.Functions/local.settings.json' 文件。
    • 根据您的 Azure DevOps 组织信息更新以下配置项:
      • 'Vss:OrgUrl': Azure DevOps 组织的 URL (例如: 'https://dev.azure.com/your-org')。
      • 'Vss:TenantId': Azure Active Directory 的租户 ID。
      • 'Vss:ClientId': 用于认证 Azure DevOps 的 Azure AD 应用注册的客户端 ID。
    • 确保您的 Azure AD 应用注册具有访问 Azure DevOps 所需的 API 权限(例如 "Work Items Read & Write", "Build Read & Execute")。认证机制通常依赖于 'DefaultAzureCredential' 尝试使用各种凭据链进行认证(如托管标识、环境变量等),配置 'TenantId' 和 'ClientId' 会影响其行为。
    • 'AzureWebJobsStorage' 通常配置为使用本地存储模拟器或实际的 Azure Storage 账户。

服务器配置 (供 MCP 客户端使用)

MCP 客户端需要知道如何启动这个 MCP 服务器进程并与其通信。对于本地开发环境,通常通过标准输入输出流 (Stdio) 进行通信。客户端的配置信息通常包含服务器名称、启动命令及其参数。

例如,一个典型的 MCP 客户端配置(非代码格式)可能看起来像这样:

  • 服务器名称: 'AzureDevOpsMCP' (或任何您喜欢的名称)
  • 启动命令: 'func' (这是 Azure Functions Core Tools 的可执行文件)
  • 命令参数: '["start"]' (这是告诉 'func' 命令启动本地函数主机的参数)

这个配置指示 MCP 客户端执行 'func start' 命令来启动服务器,并预期服务器通过标准输入输出流进行 MCP 协议通信。

基本使用方法

  1. 启动服务器: 在 'AzureMcpAgents.Functions' 目录下运行 'func start' 命令,启动 Azure Functions 本地主机。
  2. 连接 MCP 客户端: 使用配置信息(如上所述)将支持 MCP 的 AI 客户端连接到本地运行的 MCP 服务器。
  3. AI 调用工具: AI 客户端(如 Copilot)会发现服务器暴露的工具(例如 'list_azure_boards_projects', 'create_azure_boards_work_item', 'run_azure_pipeline' 等),并可以在用户对话中根据需要调用这些工具,提供相应的参数(如项目名称、工作项标题、Pipeline ID 等)。
  4. 执行操作并返回结果: 服务器端的 Azure Functions 接收到调用请求,与 Azure DevOps API 交互执行相应的操作,并将结果(通常是 JSON 格式)通过 MCP 协议返回给 AI 客户端。AI 客户端解析结果并以用户友好的方式呈现。

信息

分类

开发者工具