这是一个用于与Bitbucket Cloud和Server API集成的模型上下文协议(MCP)服务器。此MCP服务器使像Cursor这样的AI助手能够与您的Bitbucket仓库、拉取请求和其他资源进行交互。
这是一个安全且负责任的软件包——不使用任何DELETE操作,因此没有数据丢失的风险。 每个拉取请求都会使用CodeQL进行分析,以确保代码的安全性。
[
](https://github.com/MatanY
Yemini/bitbucket-mcp)
查看官方npm包 此服务器实现了模型上下文协议标准,为AI助手提供访问Bitbucket数据和操作的能力。它包括以下工具:
-- 由于被问到,在许多情况下,“BITBUCKET_USERNAME”通常是您的电子邮件
使用此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_URL | Bitbucket 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_USERNAME和BITBUCKET_PASSWORD。
BITBUCKET_PASSWORD环境变量如果您遇到401身份验证错误,请检查以下内容:
BITBUCKET_URL="https://api.bitbucket.org/2.0"
# 使用curl测试(替换为您的实际值)
curl -u "your-username:your-app-password" \
"https://api.bitbucket.org/2.0/repositories/your-workspace"
BITBUCKET_PASSWORD变量中,而不是BITBUCKET_TOKEN。如果您遇到问题:
要将此MCP服务器与Cursor集成:
"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"]
}
如果您正在本地开发并希望测试更改:
"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:仓库sluggetPullRequests获取仓库的拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugstate(可选):拉取请求状态(OPEN,MERGED,DECLINED,SUPERSEDED)limit(可选):返回的最大拉取请求数createPullRequest创建新的拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugtitle:拉取请求标题description:拉取请求描述sourceBranch:源分支名称targetBranch:目标分支名称reviewers(可选):审阅人用户名列表draft(可选):是否创建草稿拉取请求getPullRequest获取特定拉取请求的详细信息。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDupdatePullRequest更新拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDgetPullRequestActivity获取拉取请求的操作日志。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDapprovePullRequest批准拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDunapprovePullRequest从拉取请求中移除批准。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDdeclinePullRequest拒绝拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDmessage(可选):拒绝的原因mergePullRequest合并拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id
:拉取请求IDmessage(可选):合并提交消息strategy(可选):合并策略(merge-commit,squash,fast-forward)requestChanges对拉取请求请求更改。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDremoveChangeRequest从拉取请求中移除更改请求。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDcreateDraftPullRequest创建新的草稿拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugtitle:拉取请求标题description:拉取请求描述sourceBranch:源分支名称targetBranch:目标分支名称reviewers(可选):审阅人用户名列表注意: 这相当于调用createPullRequest并设置draft: true。
publishDraftPullRequest发布草稿拉取请求,使其准备好进行审查。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDconvertToDraft将普通拉取请求转换为草稿状态。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDgetPullRequestComments列出拉取请求上的评论。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDaddPullRequestComment在拉取请求上创建评论(通用或内联)。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDcontent:以markdown格式编写的评论内容inline(可选):针对特定行的内联评论信息内联评论格式:
inline参数允许您在拉取请求差异中的特定代码行上创建评论:
{
"path": "src/file.ts",
"to": 15, // 新版本中的行号(对于添加/修改的行)
"from": 10 // 旧版本中的行号(对于删除/修改的行)
}
示例:
inline参数以创建通用拉取请求评论to参数from参数from和to参数用法:
// 通用评论
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:仓库slugpull_request_id:拉取请求IDcomment_id:评论IDupdatePullRequestComment更新拉取请求上的评论。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDcomment_id:评论IDcontent:更新后的评论内容deletePullRequestComment删除拉取请求上的评论。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDcomment_id:评论IDresolveComment解决拉取请求上的评论线程。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDcomment_id:评论IDreopenComment重新打开已解决的评论线程。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDcomment_id:评论IDgetPullRequestDiff获取拉取请求的差异。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDgetPullRequestDiffStat获取拉取请求的差异统计。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDgetPullRequestPatch获取拉取请求的补丁。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDgetPullRequestTasks列出拉取请求上的任务。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDcreatePullRequestTask在拉取请求上创建任务。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDcontent:任务内容comment(可选):关联任务的评论IDpending(可选):任务是否待处理getPullRequestTask获取拉取请求上的特定任务。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDtask_id:任务IDupdatePullRequestTask更新拉取请求上的任务。
参数:
workspace:Bitbucket工作区名称repo_slug:仓库slugpull_request_id:拉取请求IDtask_id:任务IDcontent(可选):更新的任务内容state(可选):更新的任务状态deletePullRequestTask删除拉取请求上的任务。
参数:
workspace:Bitbucket工作区名称