使用说明
比特桶MCP
用于与Bitbucket云和服务器API集成的模型上下文协议(MCP)服务器。此MCP服务器使Cursor等AI助手能够与您的Bitbucket存储库、拉取请求和其他资源进行交互。
安全第一
这是一个安全可靠的包——不使用DELETE操作,因此没有数据丢失的风险。 每个pull请求都使用CodeQL进行分析,以确保代码保持安全。
概述
查看 官方npm包 该服务器实现了模型上下文协议标准,为AI助手提供对Bitbucket数据和操作的访问。它包括以下工具:
- 列出和检索存储库
- 获取存储库详细信息
- 获取拉取请求
- 还有更多。..
安装
--自从有人问起,在许多情况下,我们看到“BITBUCKET_USERNAME”通常是您的电子邮件
使用NPX(推荐)
使用此MCP服务器的最简单方法是通过NPX,它允许您在不全局安装的情况下运行它:
# Option A (recommended): API URL + explicit workspace
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
# Option B (legacy-compatible): web URL only; workspace is auto-extracted
BITBUCKET_URL="https://bitbucket.org/your-workspace" \
BITBUCKET_USERNAME="your-username" \
BITBUCKET_PASSWORD="your-app-password" \
npx -y bitbucket-mcp@latest
手动安装
或者,您可以全局安装它,也可以将其作为项目的一部分安装:
# Install globally
npm install -g bitbucket-mcp
# Or install in your project
npm install bitbucket-mcp
然后运行它:
# If installed globally (Option A)
BITBUCKET_URL="https://api.bitbucket.org/2.0" \
BITBUCKET_WORKSPACE="your-workspace" \
BITBUCKET_USERNAME="your-username" \
BITBUCKET_PASSWORD="your-app-password" \
bitbucket-mcp
# If installed globally (Option B - legacy-compatible)
BITBUCKET_URL="https://bitbucket.org/your-workspace" \
BITBUCKET_USERNAME="your-username" \
BITBUCKET_PASSWORD="your-app-password" \
bitbucket-mcp
# If installed in your project (Option 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
# If installed in your project (Option B - legacy-compatible)
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应用程序密码
- 登录您的Bitbucket账户
- 前往“个人设置”>“应用密码”
- 使用以下权限创建新的应用程序密码:
- 存储库:阅读
- 拉取请求:读取、写入
- 管道:读取(管道操作所需)
- 复制生成的密码并将其用作
BITBUCKET_PASSWORD环境变量
故障排除
401身份验证错误
如果您遇到401身份验证错误,请检查以下内容:
- 验证您的应用程序密码:确保您使用的是应用程序密码,而不是您的常规Bitbucket密码
- 验证应用程序密码权限:您的应用程序密码至少需要“存储库:读取”权限
- 尝试API URL格式:如果仍有401个错误,请尝试使用直接的API URL格式:
BITBUCKET_URL="https://api.bitbucket.org/2.0"
- 测试API访问:通过直接测试Bitbucket API来验证您的凭据是否有效:
# Test with curl (replace with your actual values)
curl -u "your-username:your-app-password" \
"https://api.bitbucket.org/2.0/repositories/your-workspace"
Atlassian API密钥
- 将Atlassian API密钥放入
BITBUCKET_PASSWORD变量,不是BITBUCKET_TOKEN - 将您的Bitbucket电子邮件用作
BITBUCKET_USERNAME而不是您的常规用户名
作为参考,您可以查看 API令牌文档
获取帮助
如果您遇到问题:
- 检查 Bitbucket REST API文档 获取API详细信息
- 查看 Bitbucket云文档 寻求一般帮助
与Cursor集成
要将此MCP服务器与Cursor集成,请执行以下操作:
- 打开的游标
- 前往“设置”>“扩展”
- 点击“模型上下文协议”
- 添加新的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"]
}
- 保存配置
- 使用Cursor中的“/bitbucket”命令访问bitbucket存储库并拉取请求
使用带有游标的本地构建
如果您正在本地开发并想测试您的更改:
"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存储库和拉取请求交互的工具。以下是可用操作的完整列表:
分页
除非另有说明,否则列表工具接受以下可选参数:
pagelen:每页项目数(Bitbucketpagelen).默认值为10,上限为100。page:要获取的基于1的Bitbucket页码。如果省略,则返回第一页。all:何时true(以及page未提供),服务器自动跟随Bitbucketnext链接,直到所有项目都被提取或达到1000个条目的安全上限。limit:弃用的别名pagelen保持向后兼容性。
使用这些旋钮在大型集合中翻页,而不会碰到CLI截断。
存储库操作
listRepositories
列出工作区中的存储库。
参数:
workspace(可选):Bitbucket工作区名称name(可选):按部分名称匹配筛选存储库- 中描述的分页控件 分页
getRepository
获取特定存储库的详细信息。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞
拉取请求操作
getPullRequests
获取对存储库的拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞state(可选):拉取请求状态(OPEN,MERGED,DECLINED,SUPERSEDED)- 中描述的分页控件 分页
createPullRequest
创建新的pull请求。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞title:拉取请求标题description:拉取请求描述sourceBranch:源分支名称targetBranch:目标分支名称reviewers(可选):审阅者用户名列表draft(可选):是否将pull请求创建为草稿
getPullRequest
获取特定拉取请求的详细信息。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID- 中描述的分页控件 分页
- 中描述的分页控件 分页
- 中描述的分页控件 分页
- 中描述的分页控件 分页
updatePullRequest
更新拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID- 中描述的分页控件 分页
- 中描述的分页控件 分页
- 各种可选更新参数(标题、描述等)
getPullRequestActivity
获取拉取请求的活动日志。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
approvePullRequest
批准拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
unapprovePullRequest
从拉取请求中删除批准。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
declinePullRequest
拒绝拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDmessage(可选):拒绝原因
mergePullRequest
合并拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDmessage(可选):合并提交消息strategy(可选):合并策略(merge-commit,squash,fast-forward)
requestChanges
请求对pull请求进行更改。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
removeChangeRequest
从pull请求中删除更改请求。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
createDraftPullRequest
创建新的草稿拉取请求。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞title:拉取请求标题description:拉取请求描述sourceBranch:源分支名称targetBranch:目标分支名称reviewers(可选):审阅者用户名列表
注: 这相当于打电话 createPullRequest 和 draft: true.
publishDraftPullRequest
发布一个拉取请求草案,以备审查。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
convertTodraft
将常规拉取请求转换为草稿状态。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
拉取请求注释操作
getPullRequestComments
列出对拉取请求的评论。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
addPullRequestComment
对拉取请求创建注释(常规或内联)。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDcontent:以markdown格式评论内容inline(可选):用于评论特定行的内联评论信息
内联注释格式:
这 inline 参数允许您在pull请求diff中的特定代码行上创建注释:
{
"path": "src/file.ts",
"to": 15, // Line number in NEW version (for added/modified lines)
"from": 10 // Line number in OLD version (for deleted/modified lines)
}
示例:
- 一般性意见:省略
inline通用pull请求注释的参数 - 对新线的评论:仅限使用
to参数 - 对删除行的评论:仅限使用
from参数 - 对修改行的评论:两者都使用
from和to参数
用途:
// General comment
addPullRequestComment(workspace, repo, pr_id, "Great work!");
// Inline comment on new line 25
addPullRequestComment(workspace, repo, pr_id, "Consider error handling here", {
path: "src/service.ts",
to: 25,
});
getPullRequestComment
获取拉取请求的特定注释。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDcomment_id:评论ID
updatePullRequestComment
更新对拉取请求的评论。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDcomment_id:评论IDcontent:更新评论内容
deletePullRequestComment
删除pull请求上的注释。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDcomment_id:评论ID
resolveComment
解析pull请求上的注释线程。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDcomment_id:评论ID
reopenComment
在pull请求中重新打开已解析的评论线程。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDcomment_id:评论ID
拉取请求差异操作
getPullRequestDiff
获取拉取请求的差异。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
getPullRequestDiffStat
获取拉取请求的差异统计信息。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
getPullRequestPatch
获取拉取请求的补丁。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
拉取请求任务操作
getPullRequestTasks
列出拉取请求中的任务。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
createPullRequestTask
根据拉取请求创建任务。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDcontent:任务内容comment(可选):与任务关联的注释IDpending(可选):任务是否待定
getPullRequestTask
获取拉取请求上的特定任务。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDtask_id:任务ID
updatePullRequestTask
根据拉取请求更新任务。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDtask_id:任务IDcontent(可选):更新任务内容state(可选):更新任务状态
deletePullRequestTask
删除拉取请求中的任务。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求IDtask_id:任务ID
其他拉取请求操作
getPullRequestCommits
列出拉取请求的提交。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
getPullRequestStatuses
列出拉取请求的提交状态。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pull_request_id:拉取请求ID
管道作业
listPipelineRuns
列出存储库的管道运行。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞- 中描述的分页控件 分页
status(可选):按状态过滤管道(PENDING,IN_PROGRESS,SUCCESSFUL,FAILED,ERROR,STOPPED)target_branch(可选):按目标分支过滤管道trigger_type(可选):按触发类型过滤管道(manual,push,pullrequest,schedule)
getPipelineRun
获取特定管道运行的详细信息。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pipeline_uuid:管道UUID- 中描述的分页控件 分页
runPipeline
触发新的管道运行。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞target:管道目标配置(对象为ref_type,ref_name,可选commit_hash,selector_type,selector_pattern)variables(可选):管道变量数组(对象key,value,可选secured字段)
stopPipeline
停止正在运行的管道。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pipeline_uuid:管道UUID
getPipelineSteps
列出管道运行的步骤。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pipeline_uuid:管道UUID
getPipelineStep
获取特定管道步骤的详细信息。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pipeline_uuid:管道UUIDstep_uuid:步骤UUID
getPipelineStepLogs
获取特定管道步骤的日志。
参数:
workspace:Bitbucket工作区名称repo_slug:存储库段塞pipeline_uuid:管道UUIDstep_uuid:步骤UUID
发展
先决条件
- Node.js 18或更高版本
- npm或纱线
设置
# Clone the repository
git clone https://github.com/MatanYemini/bitbucket-mcp.git
cd bitbucket-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev
发布到MCP注册表
当您准备发布新的服务器版本时,请使用官方的模型上下文协议发布指南。存储库包括 指南所期望的一切:
- 这样构建项目
dist/index.js是最新的:npm run build - 生成注册表清单(内容如下
package.json并发出registry/bitbucket-mcp.manifest.json):npm run registry:manifest - 跟随 发布服务器指南
用以下命令推送清单
smithery publish或指南中推荐的工作流程。
生成的清单捕获了CLI命令(node dist/index.js),所有记录的配置选项,以及返回的指针
此README用于安装说明,因此可以直接提交给MCP注册表。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
