Bitbucket拉取请求管理服务

Bitbucket Server MCP是一个通过MCP协议与Bitbucket Server API交互的服务,提供创建、合并、评论拉取请求等功能,适用于团队代码审查和版本控制场景。

  • by kartikpatpatwingify
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 kartikpatpatwingify/bitbucket-server-mcp-server

使用说明

比特桶服务器MCP

MCP(模型上下文协议)服务器,用于Bitbucket服务器拉取请求管理。该服务器提供工具和资源,通过MCP协议与Bitbucket服务器API进行交互。

需求

  • Node.js>=16

安装

通过Smithery安装

通过以下方式自动安装Claude Desktop的Bitbucket服务器 史密瑟里:

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

手动安装

npm install

构建

npm run build

特性

服务器为Bitbucket服务器集成提供了以下工具:

create_pull_request

创建新的pull请求。

参数:

  • project:Bitbucket项目密钥(如果设置,默认为Bitbucket_DEFAULT_project)
  • repository:存储库slug(如果设置,默认为BITBUCKET_DEFAULT_Repository)
  • title (必填):PR标题
  • description:PR描述
  • sourceBranch (必填):源分支名称
  • targetBranch (必填):目标分支机构名称
  • reviewers:审阅者用户名数组

get_pull_request

检索特定拉取请求的详细信息。

参数:

  • project:Bitbucket项目密钥(如果设置,默认为Bitbucket_DEFAULT_project)
  • repository:存储库slug(如果设置,默认为BITBUCKET_DEFAULT_Repository)
  • prId (必填):拉取请求ID

merge_pull_request

合并拉取请求。

参数:

  • project:Bitbucket项目密钥(如果设置,默认为Bitbucket_DEFAULT_project)
  • repository:存储库slug(如果设置,默认为BITBUCKET_DEFAULT_Repository)
  • prId (必填):拉取请求ID
  • message:合并提交消息
  • strategy:其中之一:
    • merge-commit (默认)
    • squash
    • fast-forward

decline_pull_request

拒绝拉取请求。

参数:

  • project:Bitbucket项目密钥(如果设置,默认为Bitbucket_DEFAULT_project)
  • repository:存储库slug(如果设置,默认为BITBUCKET_DEFAULT_Repository)
  • prId (必填):拉取请求ID
  • message:下降原因

add_comment

向pull请求添加注释。

参数:

  • project:Bitbucket项目密钥(如果设置,默认为Bitbucket_DEFAULT_project)
  • repository:存储库slug(如果设置,默认为BITBUCKET_DEFAULT_Repository)
  • prId (必填):拉取请求ID
  • text (必填):评论文本
  • parentId:答复的父评论ID

get_diff

检索拉取请求的差异。

参数:

  • project:Bitbucket项目密钥(如果设置,默认为Bitbucket_DEFAULT_project)
  • repository:存储库slug(如果设置,默认为BITBUCKET_DEFAULT_Repository)
  • prId (必填):拉取请求ID
  • contextLines:上下文行数(默认值:10)

get_reviews

获取拉取请求的审核历史,包括批准和审核。

参数:

  • project:Bitbucket项目密钥(如果设置,默认为Bitbucket_DEFAULT_project)
  • repository:存储库slug(如果设置,默认为BITBUCKET_DEFAULT_Repository)
  • prId (必填):拉取请求ID

push_files

将单个提交中的多个文件推送到存储库分支。

参数:

  • project:Bitbucket项目密钥(如果设置,默认为Bitbucket_DEFAULT_project)
  • repository:存储库slug(如果设置,默认为BITBUCKET_DEFAULT_Repository)
  • branch (必填):要推送的分支机构名称
  • message (必填):提交消息
  • files (必填):文件对象数组,每个对象包含:
    • path (必需):相对于存储库根的文件路径
    • content (必填):要推送到文件的内容

依赖项

  • @modelcontextprotocol/sdk -用于MCP协议实现的SDK
  • axios -API请求的HTTP客户端
  • winston -日志框架

配置

服务器需要在VSCode MCP设置文件中进行配置。以下是一个示例配置:

{
  "mcpServers": {
    "bitbucket": {
      "command": "node",
      "args": ["/path/to/bitbucket-server/build/index.js"],
      "env": {
        "BITBUCKET_URL": "https://your-bitbucket-server.com",
        // Authentication (choose one):
        // Option 1: Personal Access Token
        "BITBUCKET_TOKEN": "your-access-token",
        // Option 2: Username/Password
        "BITBUCKET_USERNAME": "your-username",
        "BITBUCKET_PASSWORD": "your-password",
        // Optional: Default project
        "BITBUCKET_DEFAULT_PROJECT": "your-default-project",
        // Optional: Default repository
        "BITBUCKET_DEFAULT_REPOSITORY": "your-default-repository"
      }
    }
  }
}

环境变量

  • BITBUCKET_URL (必填):您的Bitbucket服务器实例的基本URL
  • 身份验证(需要以下之一):
    • BITBUCKET_TOKEN:个人访问令牌
    • BITBUCKET_USERNAME 和 BITBUCKET_PASSWORD:基本身份验证凭据
  • BITBUCKET_DEFAULT_PROJECT:在工具调用中未指定时使用的默认项目密钥
  • BITBUCKET_DEFAULT_REPOSITORY:在工具调用中未指定时使用的默认存储库slug

日志记录

服务器将所有操作记录到 bitbucket.log 使用Winston进行调试和监控。