使用说明

项目简介

Azure Revisor MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于为 Azure DevOps 平台上的代码 Pull Request (PR) 提供代码评审辅助功能。它通过 MCP 协议向 LLM 客户端暴露工具,使得 LLM 能够理解代码变更内容,并在 PR 上进行评论,从而提升代码评审的效率和智能化水平。

主要功能点

  • 获取Pull Request代码差异 (Get pull request diff): 允许 LLM 获取指定 Azure DevOps Pull Request 的代码变更内容 (diff),为代码理解和分析提供上下文信息。
  • 创建评论 (Create thread comment): 允许 LLM 在指定的 Azure DevOps Pull Request 的特定文件和行号上创建评论,方便 LLM 将评审意见反馈到代码变更中。

安装步骤

  1. 克隆仓库:

    git clone [email protected]:mikhael-abdallah/mcp-revisor-server.git
    cd mcp-revisor-server
  2. 安装依赖: 确保你已安装 Node.js (v18 或更高版本) 和 pnpm。然后运行:

    pnpm install
  3. 配置 Azure PAT: 在项目根目录下创建 '.env' 文件,并设置 'AZURE_PAT' 环境变量为你的 Azure DevOps Personal Access Token。你需要创建一个具有 'vso.code_full' 权限的 PAT。

    AZURE_PAT=你的Azure_PAT

服务器配置

MCP 客户端需要配置以下 JSON 以连接到 Azure Revisor MCP Server。

{
  "mcpServers": {
    "azure-revisor": {  // server name,客户端可以自定义,用于标识该服务器
      "url": "http://localhost:3000/sse" // MCP服务器的SSE endpoint URL
    }
  }
}

配置参数说明:

  • 'azure-revisor': 服务器名称,可以自定义,在客户端用于唯一标识此 MCP 服务器连接配置。
  • 'url': MCP 服务器的 SSE (Server-Sent Events) 端点 URL。默认情况下,Azure Revisor MCP Server 运行在 'http://localhost:3000',并提供 '/sse' 作为 SSE 端点。

MCP客户端启动命令和参数 (仅供参考): 由于 MCP 客户端通常内置了对 MCP 服务器的集成,用户一般无需手动配置启动命令和参数。但为了完整性,如果需要手动配置,以下是可能的参考:

  • command: 'node' (假设 Node.js 可执行文件在 PATH 环境变量中)
  • args: 'dist/index.js' (假设你已经使用 'pnpm run build' 构建了项目,并且 'index.js' 文件位于 'dist' 目录下)

请注意: 实际 MCP 客户端的配置方式可能有所不同,请参考你使用的 MCP 客户端的文档。通常只需要配置 'mcpServers' 中的 JSON 即可。

基本使用方法

  1. 启动服务器: 首先构建项目:

    pnpm run build

    然后启动服务器:

    pnpm start

    服务器成功启动后,会监听 'http://localhost:3000' 端口。

  2. 配置 MCP 客户端: 将上述提供的服务器配置 JSON 添加到你的 MCP 客户端配置中 (例如 Cursor IDE 的 'settings.json' 文件)。确保将 'url' 配置为 'http://localhost:3000/sse'。

  3. 在 MCP 客户端中使用: 在 MCP 客户端中,你可以通过 Prompt 模板或者直接调用 Tool 的方式来使用 Azure Revisor MCP Server 提供的功能。例如,你可以使用 README.md 中提供的 'SuggestedPrompt' 作为 Prompt 模板,并指示 LLM 使用 'Get pull request diff' 和 'Create thread comment' 工具来辅助代码评审。

    示例 Prompt:

    You are a senior code reviewer... (完整 Prompt 内容参考 README.md 中的 SuggestedPrompt)
    ...

    在 Prompt 中,你可以指示 LLM 调用 'Get pull request diff' 工具来获取指定 Pull Request 的代码变更,然后分析代码并使用 'Create thread comment' 工具在 PR 上添加评论。

    工具调用示例 (在 Prompt 中指示 LLM 使用):

    // 获取 Pull Request 代码差异
    call_tool("Get pull request diff", { "pullRequestUrl": "https://dev.azure.com/organization/project/_git/repository/pullrequest/pullRequestNumber" })
    
    // 创建评论
    call_tool("Create thread comment", { "pullRequestUrl": "https://dev.azure.com/organization/project/_git/repository/pullrequest/pullRequestNumber", "filePath": "src/index.ts", "lineNumber": 10, "commentContent": "这里代码可以优化一下..." })

    请注意: 'call_tool' 语法仅为示例,实际 MCP 客户端的工具调用方式可能有所不同,请参考你使用的 MCP 客户端的文档。

信息

分类

开发者工具