MatanYemini
服务介绍
Bitbucket MCP
一个用于与Bitbucket Cloud和Server API集成的模型上下文协议(MCP)服务器。此MCP服务器使像Cursor这样的AI助手能够与您的Bitbucket仓库、拉取请求和其他资源进行交互。
安全第一
这是一个安全且负责任的包——不使用DELETE操作,因此没有数据丢失的风险。
每个拉取请求都会通过CodeQL进行分析,以确保代码的安全性。
概览
查看官方npm包
该服务器实现了模型上下文协议标准,为AI助手提供访问Bitbucket数据和操作的能力。它包括以下工具:
- 列出和检索仓库
- 获取仓库详情
- 获取拉取请求
- 等等...
安装
使用NPX(推荐)
使用NPX是最简单的方式来运行这个MCP服务器,这允许您无需全局安装即可运行它:
bash
通过环境变量运行
BITBUCKET_URL="https://bitbucket.org/your-workspace"
BITBUCKET_USERNAME="your-username"
BITBUCKET_PASSWORD="your-app-password"
npx -y bitbucket-mcp@latest
手动安装
或者,您可以全局安装或作为项目的一部分安装:
bash
全局安装
npm install -g bitbucket-mcp
或者在您的项目中安装
npm install bitbucket-mcp
然后这样运行它:
bash
如果是全局安装
BITBUCKET_URL="https://bitbucket.org/your-workspace"
BITBUCKET_USERNAME="your-username"
BITBUCKET_PASSWORD="your-app-password"
bitbucket-mcp
如果是在项目中安装
BITBUCKET_URL="https://bitbucket.org/your-workspace"
BITBUCKET_USERNAME="your-username"
BITBUCKET_PASSWORD="your-app-password"
npx bitbucket-mcp
配置
环境变量
使用以下环境变量配置服务器:
| 变量 | 描述 | 是否必需 |
|---|---|---|
BITBUCKET_URL |
Bitbucket基础URL(例如:"https://bitbucket.org/your-workspace") | 是 |
BITBUCKET_USERNAME |
您的Bitbucket用户名 | 是* |
BITBUCKET_PASSWORD |
您的Bitbucket应用密码 | 是* |
BITBUCKET_TOKEN |
您的Bitbucket访问令牌(可替代用户名/密码) | 否 |
BITBUCKET_WORKSPACE |
当未指定时使用的默认工作区 | 否 |
- 必须提供
BITBUCKET_TOKEN或同时提供BITBUCKET_USERNAME和BITBUCKET_PASSWORD。
创建Bitbucket应用密码
- 登录到您的Bitbucket账户
- 转到个人设置 > 应用密码
- 创建一个新的应用密码,并赋予以下权限:
- 仓库:读取
- 拉取请求:读取、写入
- 复制生成的密码并将其用作
BITBUCKET_PASSWORD环境变量
与Cursor集成
要将此MCP服务器与Cursor集成,请执行以下步骤:
- 打开Cursor
- 转到设置 > 扩展
- 单击“模型上下文协议”
- 添加新的MCP配置:
json
"bitbucket": {
"command": "npx",
"env": {
"BITBUCKET_URL": "https://bitbucket.org/your-workspace",
"BITBUCKET_USERNAME": "your-username",
"BITBUCKET_PASSWORD": "your-app-password"
},
"args": ["-y", "bitbucket-mcp@latest"]
}5. 保存配置
6. 在 Cursor 中使用 "/bitbucket" 命令访问 Bitbucket 仓库和拉取请求
使用本地构建与 Cursor
如果您正在本地开发并希望测试您的更改:
json
"bitbucket-local": {
"command": "node",
"env": {
"BITBUCKET_URL": "https://bitbucket.org/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:仓库 slugstate(可选):拉取请求状态(OPEN、MERGED、DECLINED、SUPERSEDED)limit(可选):要返回的最大拉取请求数量
createPullRequest
创建新的拉取请求。
参数:
workspace:Bitbucket 工作区名称repo_slug:仓库 slugtitle:拉取请求标题description:拉取请求描述sourceBranch:源分支名称targetBranch:目标分支名称reviewers(可选):审查者用户名列表
getPullRequest
获取特定拉取请求的详细信息。
参数:
workspace:Bitbucket 工作区名称repo_slug:仓库 slugpull_request_id:拉取请求 ID
updatePullRequest
更新拉取请求。
参数:
workspace:Bitbucket 工作区名称repo_slug:仓库 slugpull_request_id:拉取请求 ID- 各种可选更新参数(标题、描述等)
getPullRequestActivity
获取拉取请求的活动日志。
参数:
workspace:Bitbucket 工作区名称repo_slug:仓库 slugpull_request_id:拉取请求 ID
approvePullRequest
批准拉取请求。
参数:
workspace:Bitbucket 工作区名称repo_slug:仓库 slugpull_request_id:拉取请求 ID
unapprovePullRequest
从拉取请求中移除批准。
参数:
workspace:Bitbucket 工作区名称repo_slug:仓库 slugpull_request_id:拉取请求 ID
declinePullRequest
拒绝拉取请求。
参数:
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:拉取请求 ID
removeChangeRequest
从拉取请求中移除更改请求。
参数:
workspace:Bitbucket 工作区名称repo_slug:仓库 slugpull_request_id:拉取请求 ID
拉取请求评论操作
getPullRequestComments
列出拉取请求上的评论。
参数:
workspace:Bitbucket 工作区名称repo_slug:仓库 slugpull_request_id:拉取请求 ID
createPullRequestComment
在拉取请求上创建评论。
参数:- workspace: Bitbucket 工作区名称
repo_slug: 仓库标识符pull_request_id: 拉取请求 IDcontent: 评论内容inline(可选): 行内评论信息
getPullRequestComment
获取特定拉取请求上的评论。
参数:
workspace: Bitbucket 工作区名称repo_slug: 仓库标识符pull_request_id: 拉取请求 IDcomment_id: 评论 ID
updatePullRequestComment
更新拉取请求上的评论。
参数:
workspace: Bitbucket 工作区名称repo_slug: 仓库标识符pull_request_id: 拉取请求 IDcomment_id: 评论 IDcontent: 更新后的评论内容
deletePullRequestComment
删除拉取请求上的评论。
参数:
workspace: Bitbucket 工作区名称repo_slug: 仓库标识符pull_request_id: 拉取请求 IDcomment_id: 评论 ID
resolveComment
解决拉取请求上的评论线程。
参数:
workspace: Bitbucket 工作区名称repo_slug: 仓库标识符pull_request_id: 拉取请求 IDcomment_id: 评论 ID
reopenComment
重新打开已解决的拉取请求上的评论线程。
参数:
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
开发
前提条件
- Node.js 18 或更高版本
- npm 或 yarn
设置
bash
克隆仓库
git clone https://github.com/MatanYemini/bitbucket-mcp.git
cd bitbucket-mcp
安装依赖
npm install
构建项目
npm run build
以开发模式运行
npm run dev