Azure DevOps MCP服务器

项目简介

本项目是一个基于Model Context Protocol (MCP) 标准实现的服务器,旨在为大型语言模型 (LLM) 客户端提供与Azure DevOps平台集成的能力。通过该服务器,LLM可以安全、可控地访问和操作Azure DevOps中的项目、代码仓库、分支、文件、拉取请求、工作项等资源,实现DevOps流程的智能化。

主要功能点

  • 项目管理: 获取Azure DevOps项目列表。
  • 代码仓库管理:
    • 获取项目下的代码仓库列表。
    • 创建新的代码仓库。
    • 分支管理:获取分支列表、创建和更新分支。
    • 文件内容管理:获取和更新文件内容、推送文件。
    • 代码提交管理:获取提交记录。
  • 拉取请求管理: 创建新的拉取请求。
  • 工作项 (Issue) 管理: 添加工作项评论。
  • 代码搜索: 在代码仓库中搜索代码。
  • 工作项搜索: 在项目中搜索工作项。
  • 用户搜索: 在组织中搜索用户。
  • 代码仓库 Fork: Fork 代码仓库。

安装步骤

  1. 克隆仓库

    git clone https://github.com/allanbrunobr/mcp-servers-modified.git
    cd mcp-servers-modified/azure-devops
  2. 安装依赖 确保已安装 Node.js 和 npm,然后运行:

    npm install
  3. 设置环境变量 需要设置以下环境变量才能连接到您的 Azure DevOps 组织:

    • 'AZURE_DEVOPS_ORG_URL': 您的 Azure DevOps 组织 URL,例如 'https://dev.azure.com/your-organization-name'。
    • 'AZURE_DEVOPS_API_TOKEN': 您的 Azure DevOps Personal Access Token (PAT)。您需要在 Azure DevOps 中生成一个具有相应权限的 PAT。
  4. 构建项目 (如果仓库中没有 'dist' 目录,则需要构建)

    npm run build

服务器配置

MCP客户端需要配置以下信息来启动和连接 Azure DevOps MCP 服务器。

{
  "serverName": "azure-devops-server",
  "command": "node",
  "args": [
    "dist/index.js"
  ],
  "env": {
    "AZURE_DEVOPS_ORG_URL": "<您的 Azure DevOps 组织 URL>",  //  请替换为您的 Azure DevOps 组织 URL
    "AZURE_DEVOPS_API_TOKEN": "<您的 Azure DevOps PAT>"    //  请替换为您的 Azure DevOps Personal Access Token
  }
}

配置参数说明:

  • 'serverName': 服务器名称,设置为 "azure-devops-server"。
  • 'command': 启动服务器的命令,这里使用 'node' 运行 JavaScript 文件。
  • 'args': 命令参数,指定服务器入口文件路径 'dist/index.js'。
  • 'env': 环境变量,用于配置 Azure DevOps 连接信息。
    • 'AZURE_DEVOPS_ORG_URL': 必填。您的 Azure DevOps 组织 URL。
    • 'AZURE_DEVOPS_API_TOKEN': 必填。用于身份验证的 Azure DevOps Personal Access Token。请确保该 PAT 具有访问您 Azure DevOps 组织资源的权限。

注意: 请将 '<您的 Azure DevOps 组织 URL>' 和 '<您的 Azure DevOps PAT>' 替换为您的实际 Azure DevOps 组织 URL 和 Personal Access Token。 为了安全起见,建议将环境变量配置在客户端的配置环境中,而不是硬编码在配置文件中。

基本使用方法

  1. 启动 MCP 服务器 (通过 MCP 客户端配置启动)。
  2. LLM 客户端可以通过 MCP 协议与服务器通信,发送 JSON-RPC 请求调用工具。
  3. 使用 'ListToolsRequest' 请求获取服务器支持的工具列表及其描述和参数。
  4. 使用 'CallToolRequest' 请求调用具体的工具,并传递相应的参数。
  5. 服务器将执行相应的 Azure DevOps 操作,并将结果以 JSON-RPC 响应返回给客户端。

例如,要获取 Azure DevOps 项目列表,LLM 客户端可以调用 'get_projects' 工具。要获取特定代码仓库的文件内容,可以调用 'get_file_content' 工具,并提供 'project_id', 'repository_id', 'file_path', 'branch' 等参数。 具体工具的使用方法和参数请参考工具的 'description' 和 'inputSchema'。

信息

分类

开发者工具