返回市场
位桶-mcp

位桶-mcp

作者:MatanYemini54 星标更新:2025-11-24

项目介绍

Bitbucket MCP

这是一个用于与Bitbucket Cloud和Server API集成的模型上下文协议(MCP)服务器。此MCP服务器使像Cursor这样的AI助手能够与您的Bitbucket仓库、拉取请求和其他资源进行交互。

安全第一

这是一个安全且负责任的软件包——不使用任何DELETE操作,因此没有数据丢失的风险。 每个拉取请求都会使用CodeQL进行分析,以确保代码的安全性。

CodeQL [GitHub Repository](https://github.com/MatanY Yemini/bitbucket-mcp) License: MIT npm version

概览

查看官方npm包 此服务器实现了模型上下文协议标准,为AI助手提供访问Bitbucket数据和操作的能力。它包括以下工具:

  • 列出和检索仓库
  • 获取仓库详情
  • 获取拉取请求
  • 更多...

安装

-- 由于被问到,在许多情况下,“BITBUCKET_USERNAME”通常是您的电子邮件

使用NPX(推荐)

使用此MCP服务器最简单的方法是通过NPX,这允许您在不全局安装的情况下运行它:

# 选项A(推荐):API URL + 显式工作区
BITBUCKET_URL="https://api.bitbucket.org/2.0" \
BITBUCKET_WORKSPACE="your-workspace" \
BITBUCKET_USERNAME="your-username" \
BITBUCKET_PASSWORD="your-app-password" \
npx -y bitbucket-mcp@latest

# 选项B(兼容旧版):仅web URL;工作区自动提取
BITBUCKET_URL="https://bitbucket.org/your-workspace" \
BITBUCKET_USERNAME="your-username" \
BITBUCKET_PASSWORD="your-app-password" \
npx -y bitbucket-mcp@latest

手动安装

或者,您可以全局安装或作为项目的一部分进行安装:

# 全局安装
npm install -g bitbucket-mcp

# 或者安装在您的项目中
npm install bitbucket-mcp

然后运行它:

# 如果全局安装(选项A)
BITBUCKET_URL="https://api.bitbucket.org/2.0" \
BITBUCKET_WORKSPACE="your-workspace" \
BITBUCKET_USERNAME="your-username" \
BITBUCKET_PASSWORD="your-app-password" \
bitbucket-mcp

# 如果全局安装(选项B - 兼容旧版)
BITBUCKET_URL="https://bitbucket.org/your-workspace" \
BITBUCKET_USERNAME="your-username" \
BITBUCKET_PASSWORD="your-app-password" \
bitbucket-mcp

# 如果安装在您的项目中(选项A)
BITBUCKET_URL="https://api.bitbucket.org/2.0" \
BITBUCKET_WORKSPACE="your-workspace" \
BITBUCKET_USERNAME="your-username" \
BITBUCKET_PASSWORD="your-app-password" \
npx bitbucket-mcp

# 如果安装在您的项目中(选项B - 兼容旧版)
BITBUCKET_URL="https://bitbucket.org/
your-workspace" \
BITBUCKET_USERNAME="your-username" \
BITBUCKET_PASSWORD="your-app-password" \
npx bitbucket-mcp

配置

环境变量

使用以下环境变量配置服务器:

变量描述必需
BITBUCKET_URLBitbucket API基础URL,默认为https://api.bitbucket.org/2.0
BITBUCKET_USERNAME您的Bitbucket用户名是*
BITBUCKET_PASSWORD您的Bitbucket应用密码是*
BITBUCKET_TOKEN您的Bitbucket访问令牌(替代用户名/密码)
BITBUCKET_WORKSPACE默认工作区。如果省略且BITBUCKET_URL包含它,则自动设置
BITBUCKET_ENABLE_DANGEROUS设置为true启用危险工具(例如删除)。默认禁用
BITBUCKET_LOG_DISABLE设置为true/1禁用文件日志
BITBUCKET_LOG_FILE特定日志文件的绝对路径
BITBUCKET_LOG_DIR存储日志的目录(默认为操作系统特定的应用日志目录)
BITBUCKET_LOG_PER_CWD当设置为true时,在每个工作目录子文件夹下嵌套日志

必须提供BITBUCKET_TOKEN或同时提供BITBUCKET_USERNAMEBITBUCKET_PASSWORD

创建Bitbucket应用密码

  1. 登录到您的Bitbucket帐户
  2. 转到个人设置 > 应用密码
  3. 创建一个具有以下权限的新应用密码:
    • 仓库:读取
    • 拉取请求:读取、写入
    • 管道:读取(用于管道操作)
  4. 复制生成的密码并将其用作BITBUCKET_PASSWORD环境变量

故障排除

401身份验证错误

如果您遇到401身份验证错误,请检查以下内容:

  1. 验证您的应用密码:确保您使用的是应用密码,而不是常规的Bitbucket密码
  2. 验证应用密码权限:您的应用密码至少需要“仓库:读取”权限
  3. 尝试API URL格式:如果您仍然收到401错误,请尝试使用直接API URL格式:
BITBUCKET_URL="https://api.bitbucket.org/2.0"
  1. 测试API访问:通过直接测试Bitbucket API来验证您的凭据是否有效:
# 使用curl测试(替换为您的实际值)
curl -u "your-username:your-app-password" \
  "https://api.bitbucket.org/2.0/repositories/your-workspace"
  1. Atlassian API密钥:将Atlassian API密钥放在BITBUCKET_PASSWORD变量中,而不是BITBUCKET_TOKEN

获取帮助

如果您遇到问题:

  1. 查看Bitbucket REST API文档获取API细节
  2. 查看Bitbucket Cloud文档获取一般帮助

与Cursor集成

要将此MCP服务器与Cursor集成:

  1. 打开Cursor
  2. 转到设置 > 扩展
  3. 单击“模型上下文协议”
  4. 添加新的MCP配置:
"bitbucket": {
  "command": "npx",
  "env": {
    "BITBUCKET_URL": "https://api.bitbucket.org/2.0",
    "BITBUCKET_WORKSPACE": "your-workspace",
    "BITBUCKET_USERNAME": "your-username",
    "BITBUCKET_PASSWORD": "your-app-password"
  },
  "args": ["-y", "bitbucket-mcp@latest"]
}
  1. 保存配置
  2. 在Cursor中使用“/bitbucket”命令访问Bitbucket仓库和拉取请求

使用本地构建与Cursor集成

如果您正在本地开发并希望测试更改:

"bitbucket-local": {
  "command": "node",
  "env": {
    "BITBUCKET_URL": "https://api.bitbucket.org/2.0",
    "BITBUCKET_WORKSPACE": "your-workspace",
    "BITBUCKET_USERNAME": "your-username",
    "BITBUCKET_PASSWORD": "your-app-password"
  },
  "args": ["/path/to/your/local/bitbucket-mcp/dist/index.js"]
}

可用工具

此MCP服务器提供了与Bitbucket仓库和拉取请求交互的工具。以下是可用操作的综合列表:

仓库操作

listRepositories

列出工作区中的仓库。

参数:

  • workspace(可选):Bitbucket工作区名称
  • limit(可选):返回的最大仓库数

getRepository

获取特定仓库的详细信息。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug

拉取请求操作

getPullRequests

获取仓库的拉取请求。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • state(可选):拉取请求状态(OPENMERGEDDECLINEDSUPERSEDED
  • limit(可选):返回的最大拉取请求数

createPullRequest

创建新的拉取请求。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • title:拉取请求标题
  • description:拉取请求描述
  • sourceBranch:源分支名称
  • targetBranch:目标分支名称
  • reviewers(可选):审阅人用户名列表
  • draft(可选):是否创建草稿拉取请求

getPullRequest

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

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

updatePullRequest

更新拉取请求。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID
  • 各种可选更新参数(标题、描述等)

getPullRequestActivity

获取拉取请求的操作日志。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

approvePullRequest

批准拉取请求。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

unapprovePullRequest

从拉取请求中移除批准。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

declinePullRequest

拒绝拉取请求。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID
  • message(可选):拒绝的原因

mergePullRequest

合并拉取请求。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id :拉取请求ID
  • message(可选):合并提交消息
  • strategy(可选):合并策略(merge-commitsquashfast-forward

requestChanges

对拉取请求请求更改。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

removeChangeRequest

从拉取请求中移除更改请求。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

createDraftPullRequest

创建新的草稿拉取请求。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • title:拉取请求标题
  • description:拉取请求描述
  • sourceBranch:源分支名称
  • targetBranch:目标分支名称
  • reviewers(可选):审阅人用户名列表

注意: 这相当于调用createPullRequest并设置draft: true

publishDraftPullRequest

发布草稿拉取请求,使其准备好进行审查。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

convertToDraft

将普通拉取请求转换为草稿状态。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

拉取请求评论操作

getPullRequestComments

列出拉取请求上的评论。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

addPullRequestComment

在拉取请求上创建评论(通用或内联)。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID
  • content:以markdown格式编写的评论内容
  • inline(可选):针对特定行的内联评论信息

内联评论格式:

inline参数允许您在拉取请求差异中的特定代码行上创建评论:

{
  "path": "src/file.ts",
  "to": 15, // 新版本中的行号(对于添加/修改的行)
  "from": 10 // 旧版本中的行号(对于删除/修改的行)
}

示例:

  • 通用评论:省略inline参数以创建通用拉取请求评论
  • 新行评论:仅使用to参数
  • 删除行评论:仅使用from参数
  • 修改行评论:同时使用fromto参数

用法:

// 通用评论
addPullRequestComment(workspace, repo, pr_id, "Great work!");

// 内联评论在新行25
addPullRequestComment(workspace, repo, pr_id, "Consider error handling here", {
  path: "src/service.ts",
  to: 25,
});

getPullRequestComment

获取拉取请求上的特定评论。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID
  • comment_id:评论ID

updatePullRequestComment

更新拉取请求上的评论。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID
  • comment_id:评论ID
  • content:更新后的评论内容

deletePullRequestComment

删除拉取请求上的评论。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID
  • comment_id:评论ID

resolveComment

解决拉取请求上的评论线程。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID
  • comment_id:评论ID

reopenComment

重新打开已解决的评论线程。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID
  • comment_id:评论ID

拉取请求差异操作

getPullRequestDiff

获取拉取请求的差异。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

getPullRequestDiffStat

获取拉取请求的差异统计。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

getPullRequestPatch

获取拉取请求的补丁。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

拉取请求任务操作

getPullRequestTasks

列出拉取请求上的任务。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID

createPullRequestTask

在拉取请求上创建任务。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID
  • content:任务内容
  • comment(可选):关联任务的评论ID
  • pending(可选):任务是否待处理

getPullRequestTask

获取拉取请求上的特定任务。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID
  • task_id:任务ID

updatePullRequestTask

更新拉取请求上的任务。

参数:

  • workspace:Bitbucket工作区名称
  • repo_slug:仓库slug
  • pull_request_id:拉取请求ID
  • task_id:任务ID
  • content(可选):更新的任务内容
  • state(可选):更新的任务状态

deletePullRequestTask

删除拉取请求上的任务。

参数:

  • workspace:Bitbucket工作区名称
  • `