使用说明

项目简介

本项目是一个 MCP (Model Context Protocol) 服务器,旨在为 LLM (大型语言模型) 客户端提供与 Bitbucket Server 交互的能力,专注于 Pull Request (PR) 的管理。通过此服务器,LLM 可以自动化执行如创建、获取、合并、评论 PR 等操作,从而提升软件开发流程的效率。

主要功能点

  • Pull Request 管理: 支持创建、获取、合并和拒绝 Pull Request。
  • 评论功能: 允许 LLM 向 Pull Request 添加评论。
  • Diff 和 Review 信息: 提供获取 Pull Request 的代码差异 (diff) 和审查 (review) 历史记录的功能。
  • 灵活配置: 支持 Personal Access Token 或用户名/密码两种认证方式连接 Bitbucket Server。
  • 可扩展性: 基于 MCP 协议标准构建,易于集成到各种支持 MCP 协议的 LLM 客户端。

安装步骤

  1. 手动安装 (推荐)

    首先确保你的环境中已安装 Node.js (>= 16)。

    # 克隆仓库(如果尚未克隆)
    git clone https://github.com/garc33/bitbucket-server-mcp-server.git
    cd bitbucket-server-mcp-server
    
    # 安装依赖
    npm install
    
    # 构建项目
    npm run build
  2. 通过 Smithery 安装 (适用于 Claude Desktop 等 Smithery 客户端)

    如果你的 LLM 客户端支持 Smithery,可以使用以下命令自动安装:

    npx -y @smithery/cli install @garc33/bitbucket-server-mcp-server --client claude

服务器配置

要将此 MCP 服务器连接到 LLM 客户端,你需要在客户端的 MCP 服务器配置中添加以下 JSON 配置。请根据你的实际情况修改占位符:

{
  "mcpServers": {
    "bitbucket": {
      "command": "node",
      "args": ["/path/to/bitbucket-server/build/index.js"],
      "env": {
        "BITBUCKET_URL": "YOUR_BITBUCKET_URL",  // 【必填】你的 Bitbucket Server 实例的根 URL,例如 "https://your-bitbucket-server.com"
        "BITBUCKET_TOKEN": "YOUR_BITBUCKET_TOKEN", // 【可选,推荐】Bitbucket Server Personal Access Token,用于身份验证
        "BITBUCKET_USERNAME": "YOUR_BITBUCKET_USERNAME", // 【可选,如果未使用 TOKEN】Bitbucket Server 用户名
        "BITBUCKET_PASSWORD": "YOUR_BITBUCKET_PASSWORD", // 【可选,如果未使用 TOKEN】Bitbucket Server 密码
        "BITBUCKET_DEFAULT_PROJECT": "YOUR_DEFAULT_PROJECT" // 【可选】默认 Bitbucket 项目 Key,如果工具调用时未指定项目,则使用此默认值
      }
    }
  }
}

注意:

  • 请将 '/path/to/bitbucket-server/build/index.js' 替换为 'index.js' 文件在你的系统中的实际路径。如果你按照手动安装步骤操作,并且在项目根目录下启动客户端,可以使用相对路径 'build/index.js'。
  • 身份验证: 推荐使用 'BITBUCKET_TOKEN' 进行身份验证。如果选择用户名和密码方式,请配置 'BITBUCKET_USERNAME' 和 'BITBUCKET_PASSWORD'。 至少需要配置一种身份验证方式。
  • 环境变量: 确保在 LLM 客户端启动 MCP 服务器时,这些环境变量能够被正确传递。

基本使用方法

配置完成后,在你的 LLM 客户端中,你可以调用以下工具来操作 Bitbucket Server 的 Pull Request:

  • 'create_pull_request': 创建新的 Pull Request
  • 'get_pull_request': 获取 Pull Request 的详细信息
  • 'merge_pull_request': 合并 Pull Request
  • 'decline_pull_request': 拒绝 Pull Request
  • 'add_comment': 添加评论到 Pull Request
  • 'get_diff': 获取 Pull Request 的代码差异
  • 'get_reviews': 获取 Pull Request 的审查历史

每个工具的具体参数和使用方式,请参考仓库 README.md 文件中 "Features" 部分的详细描述。 在 LLM 客户端中,你可以根据工具的名称和参数,构建相应的请求来调用这些功能。

信息

分类

开发者工具