阿特拉斯比特巴克特数据中心 MCP
这个软件包提供了一个机器理解协议(MCP)服务器,用于与Atlassian Bitbucket数据中心版互动.
互动设置
配置此服务器的最简单方式是内置 setup 子命令 :
npx @atlassian-dc-mcp/bitbucket setup
它会提示主机, API 基础路径, 默认的页面大小, 和 API 令牌, 然后把它们存储在最安全可用的地方 :
- 马科斯 ——登录键链中的符号(服务)
atlassian-dc-mcp账户bitbucket-token; 主机/基准路径/页面大小~/.atlassian-dc-mcp/bitbucket.env(模式)0600) (中文(简体) ). - 链接 - 所有的东西
~/.atlassian-dc-mcp/bitbucket.env带有 POSIX 模式0600(仅供用户阅读/写出). - 窗口 - 所有的东西
%USERPROFILE%\.atlassian-dc-mcp\bitbucket.env。节点通过模式比特,但Windows忽略了它们,因此文件继承了用户配置目录的ACL(通常只能由用户,System和管理员读取).
设置后,您可以在没有任何环境变量的情况下启动服务器 :
{
"mcpServers": {
"atlassian-bitbucket-dc": {
"command": "npx",
"args": ["-y", "@atlassian-dc-mcp/bitbucket"]
}
}
}
环境变量仍然覆盖所存储的值——见 配置来源 见下文.
脚本/ 非交互设置
对于 CI , 远程会话或 shell 脚本, 传递值为旗帜并添加 --non-interactive 以跳过提示 :
npx @atlassian-dc-mcp/bitbucket setup --non-interactive \
--host bitbucket.example.com \
--token "$BITBUCKET_TOKEN"
可用旗帜 : --host编号 :-H, (中文(简体) ), --api-base-path编号 :-b, (中文(简体) ), --token编号 :-t, (中文(简体) ), --default-page-size编号 :-s, (中文(简体) ), --non-interactive编号 :-n, (中文(简体) ), --help编号 :-h内 --non-interactive 模式中,缺失值会回落到现有的配置中,运行退出非零如果主机(或全URL) --api-base-path)和符号无法解决。 当 --token 省略。 运行 npx @atlassian-dc-mcp/bitbucket setup --help 供充分使用.
Claude 桌面配置
要使用 Claude 桌面的 MCP 连接器, 请在您的 Claude 桌面配置中添加以下内容 :
马可斯:
~/Library/Application Support/Claude/claude_desktop_config.json
窗口 :
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"atlassian-bitbucket-dc": {
"command": "npx",
"args": ["-y", "@atlassian-dc-mcp/bitbucket"],
"env": {
"BITBUCKET_HOST": "your-bitbucket-host",
"BITBUCKET_API_TOKEN": "your-token"
}
}
}
}
要在多个工具或MCP主机之间重复使用一个共享的多腾v文件,请将服务器指向绝对文件路径:
{
"mcpServers": {
"atlassian-bitbucket-dc": {
"command": "npx",
"args": ["-y", "@atlassian-dc-mcp/bitbucket"],
"env": {
"ATLASSIAN_DC_MCP_CONFIG_FILE": "/Users/your-user/.config/atlassian-dc-mcp.env"
}
}
}
}
窗口示例 :
{
"mcpServers": {
"atlassian-bitbucket-dc": {
"command": "npx",
"args": ["-y", "@atlassian-dc-mcp/bitbucket"],
"env": {
"ATLASSIAN_DC_MCP_CONFIG_FILE": "C:\\\\Users\\\\your-user\\\\AppData\\\\Roaming\\\\atlassian-dc-mcp.env"
}
}
}
}
注:设置 BITBUCKET_HOST 变量只到域+没有协议的端口(例如, your-instance.atlassian.net) (中文(简体) ). 假设了 https 协议 .
或者,你可以使用 BITBUCKET_API_BASE_PATH 改为 BITBUCKET_HOST 以指定完整的 API 基础 URL,包括协议(例如, https://your-instance.atlassian.net/rest) (中文(简体) ). 注意 /api/latest/ 部分是静态的,并自动添加到代码中,所以不需要将其包含到 BITBUCKET_API_BASE_PATH 数值.
特征
- 访问仓库信息
- 获取文件内容
- 浏览仓库目录和 pagized 文件内容
- 浏览分支并执行
- 获取拉动请求信息
- 检查拉动请求可合并性, 当操作员允许时将拉动请求合并
- 搜索和过滤存储器
参考文献
- Bitbucket 数据中心搜索 REST API - 后面没有记录的终点
bitbucket_searchCode,其请求/答复计划和查询语法陷阱
设置
-
安装依赖性 :
npm install -
创建一个
.env文件在软件包/位点目录中,或将相同的值放入共享的多腾v文件并设定ATLASSIAN_DC_MCP_CONFIG_FILE走向其绝对路径 :BITBUCKET_HOST=your-bitbucket-instance.atlassian.net # OR alternatively use # BITBUCKET_API_BASE_PATH=https://your-bitbucket-instance.atlassian.net/rest # Note: /api/latest/ is added automatically, do not include it BITBUCKET_API_TOKEN=your-personal-access-token # Optional: default page size for paginated read tools (fallback: 25) BITBUCKET_DEFAULT_PAGE_SIZE=25见 配置来源 为全优先链.
合并拉动请求( opt- in)
合并共享分支的地块代码, 无法通过 API 解除, 所以
bitbucket_mergePullRequest实值 甚至没有注册 默认.bitbucket_canMergePullRequest总是可以使用的——它只读,只报告阻碍合并的内容.合并是选入的,仅限于存储操作员名称;模型不能选择或扩大范围:
# Enable merging (default: false) BITBUCKET_MERGE_ENABLED=true # Required: repositories that may be merged, as "PROJECT/repository-slug". # A "PROJECT/*" entry allows every repository in that project. Comma-separated. BITBUCKET_MERGE_ALLOWED_REPOS=PROJ/demo,SANDBOX/* # Optional: restrict which branches may be merged into. A trailing "*" matches a # prefix; bare names are expanded to refs/heads/<name>. Omit to allow any branch # in the allowed repositories. BITBUCKET_MERGE_ALLOWED_TARGET_REFS=develop,refs/heads/release/*启用时应用的护栏 :
- 工具只在国旗设定时激活 财务报告和审定财务报表 至少一个有效的寄存器条目解析;否则将保持未注册,并登录警告. 错误的条目(和 a)
*/*个人拒绝. - 在任何API调用之前,每个请求都会与许可列表相核对——寄存器先是,然后在目标 refs被限制时拉出请求的目标分支.
version是需要的参数(乐观锁定)。 Bitbucket 拒绝一个 stale 版本, 因此一个在您检查后更改的拉取请求不能意外合并 .- 合并前的可合并性检查运行:不发布书面,拒绝冲突或被否决的拉力请求(缺失批准,未完成的任务,失败的构建),并退回否决理由.
- 自动相接(在检查通过前排出合并)没有被曝光.
拒绝拉动请求( opt- in)
拒绝关闭拉动请求而不合并并通知每个审查者,所以
bitbucket_declinePullRequest实值 未登记 或默认。 它有自己的旗帜:允许衰落绝不意味着允许合并,反之亦然.# Enable declining (default: false) BITBUCKET_DECLINE_ENABLED=true # Required: repositories that may be declined in, as "PROJECT/repository-slug". # A "PROJECT/*" entry allows every repository in that project. Comma-separated. BITBUCKET_DECLINE_ALLOWED_REPOS=PROJ/demo,SANDBOX/*与合并相同的护栏申请: 工具仅在国旗被设定时激活 财务报告和审定财务报表 至少一个有效的寄存器解析,在任何 API 调用前检查许可列表,以及
version需要乐观的锁定。 没有任何目标-ref限制——一个拉拉请求本来会降落在哪个分支上,却丝毫没有说放弃它是否安全.bitbucket_reopenPullRequest实值 总是注册 并且不需要配置:它使状态恢复被移除的衰减,所以它是倒行道而不是破坏性道.要创建个人访问符:
- 工具只在国旗设定时激活 财务报告和审定财务报表 至少一个有效的寄存器条目解析;否则将保持未注册,并登录警告. 错误的条目(和 a)
- 在 Bitbucket 中,选择左下方的配置图片
- 选择 管理账户 > 翻译: HTTP 访问符
- 选择 创建符号 并给它一个名字
- 为令牌设定适当的权限
- 复制代币并安全保存(你再也见不到)
配置来源
每个密钥都通过按优先顺序走这些源并取出第一个非空值来解决:
| 优先权 | 来源 | 读取 | 作者: setup |
|---|---|---|---|
| 100个 | process.env (单位:千美元)BITBUCKET_HOST, (中文(简体) ), BITBUCKET_API_BASE_PATH, (中文(简体) ), BITBUCKET_API_TOKEN, (中文(简体) ), BITBUCKET_DEFAULT_PAGE_SIZE(中文(简体) ) | 所有密钥 | —— 说 |
| 80个 | env 文件 - ATLASSIAN_DC_MCP_CONFIG_FILE (绝对路径)或 ./.env | 所有密钥 | —— 说 |
| 页:1 | 主控文件 - ~/.atlassian-dc-mcp/bitbucket.env 关于macOS/Linux, %USERPROFILE%\.atlassian-dc-mcp\bitbucket.env 窗口( 模式) 0600 在 POSIX; Windows 继承用户配置的 ACL) | 所有密钥 | 主机, apiBasePath, 默认PageSize( 总是); 符号( 非darwin 或键链倒置) |
| 第40条 | macOS 键链-服务 atlassian-dc-mcp账户 bitbucket-token | 只指针 | 符号( 只为darwin) |
setup 总是将非机密字段写入主文件, 并先尝试键链以获取符号 。 如果更高优先级的源阴影了被保存的值, setup 打印一个警告,这样您就可以解开内存.
使用量
或用于自动重载的开发:
npm run dev
可用工具
1. bitbucket 获得仓库
从 Bitbucket 数据中心实例中获取寄存器列表 .
参数:
projectKey(弦,可选): 按工程密钥过滤存储器limit(数目,可选): 返回的最大结果数start(数目,可选): 开始索引
2. bitbucket 获取仓库
从 Bitbucket 数据中心实例中获取特定寄存器的细节 .
参数:
projectKey(字符串,要求): 项目密钥( 如"PROJECT")repositorySlug(字符串,要求): 寄存器弹片(例如"repo-name")
3. 块块块
从 Bitbucket 数据中心实例获取寄存器的分支 .
参数:
projectKey(字符串,要求): 项目密钥repositorySlug(字符串,要求): 仓库弹片filterText(弦,可选): 按名称过滤分支limit(数目,可选): 返回的最大结果数start(数目,可选): 开始索引
4. bitbucket getFile 连接
从 Bitbucket 数据中心实例中的仓库获取文件内容 .
参数:
projectKey(字符串,要求): 项目密钥repositorySlug(字符串,要求): 仓库弹片path(字符串,要求): 寄存器中文件的路径at(弦,可选): 分支、 标记或承诺读取文件到( 寄存器默认分支的默认值)
指点 path 在目录中返回目录的 git 树,而不是文件内容.
bitbucket 浏览仓库
列出一个寄存器目录或从文件中读取一行的页面而不克隆寄存器.
参数:
projectKey(字符串,要求): 项目密钥repositorySlug(字符串,要求): 仓库弹片path(弦,可选): 目录或文件路径 。 关闭寄存器根at(弦,可选): 分支、 标记或承诺浏览 at( 寄存器默认分支的默认值)start(数目,可选): 相接开始值 。 使用相应的nextPageStart上次答复的答复limit(数目,可选): 要返回的最大目录条目或文件行( 默认为BITBUCKET_DEFAULT_PAGE_SIZE或者说25(中文(简体) )
目录回复包含下面的页形字段 children; 文件回复包含 lines 和反应根的相接字段。 当相应的 isLastPage 错误, 请再次调用工具 start 设置为 nextPageStart。 。 。 .
5. bitbucket getPull 请求
从 Bitbucket 数据中心实例获取对寄存器的拉动请求 .
参数:
projectKey(字符串,要求): 项目密钥repositorySlug(字符串,要求): 仓库弹片state(字符串,可选):按PR状态过滤(OPEN, MERGED,DECLINED)limit(数目,可选): 返回的最大结果数start(数目,可选): 开始索引
6. bitbucket getDashboard Pull 请求
从Bitbucket仪表板上调取所有寄存器的请求。 用于在您是作者、审查者或参与者的地方找到所有公关,而不指定项目或寄存器.
参数:
role(弦,可选): 按用户角色过滤 —— AUTHOR( 默认), 审查者, 或参与者state(字符串,可选): 由 PR 状态过滤 — OPEN( 默认), DECLINED, 或 MERGEDclosedSince(数字,可选):时间戳以毫秒为单位. 如果状态不是 OPEN, 在此日期后只返回关闭的 PRorder(字符串,可选):结果顺序——新数据(违约)、旧数据(旧数据)或参与者limit(数字,可选):返回的最大结果数。 默认为BITBUCKET_DEFAULT_PAGE_SIZE或者说25。 。 。 .start(数目,可选): 开始索引
7. bitbucket can MorgePul请求
检查是否可以合并拉动请求 。 只读——总是有的.
参数:
projectKey(字符串,要求): 项目密钥repositorySlug(字符串,要求): 仓库弹片pullRequestId(字符串,要求): 拉动请求ID
回返 canMerge, (中文(简体) ), conflicted, (中文(简体) ), outcome,以及 vetoes (每个加一个) summary 财务报告和审定财务报表 detail)这样你就能看到什么是阻碍合并.
8. bitbucket getPull 请求构建
获取 CI/CD 构建拉力请求的状态——任何与 Bitbucket(Jenkins, Bamboo, TeamCity,.)集成的 CI 服务器的构建,工作或管道,报告其源分支的最新承诺,如拉力请求的"Builds"面板所示. 只读——总是有的.
参数:
projectKey(字符串,要求): 项目密钥repositorySlug(字符串,要求): 仓库弹片pullRequestId(字符串,要求): 拉动请求ID
返回 commitId 这些建筑属于, counts 每个州(successful, (中文(简体) ), failed, (中文(简体) ), inProgress, (中文(简体) ), cancelled, (中文(简体) ), unknown),以及 builds,每个带有 state, (中文(简体) ), key, (中文(简体) ), name, (中文(简体) ), url cI 服务器中的运行, description 财务报告和审定财务报表 dateAdded。状态从承诺级构建状态资源中读取,该资源保留了每个承诺的100个最新状态;寄存器范围构建的资源只按键返回一个单一状态,无法列出.
9. bitbucket commercePull 请求
合并拉动请求 。 仅在服务器的合并启用时注册 —— 见 合并拉动请求( opt- in)。 。 。 .
参数:
projectKey(字符串,要求): 项目密钥repositorySlug(字符串,要求): 仓库弹片pullRequestId(字符串,要求): 拉动请求IDversion(数目,需要): 当前拉动请求版本, 从bitbucket_getPullRequest。服务器拒绝一个陈旧版本.strategyId(弦,可选): 合并策略 ID,例如:.no-ff, (中文(简体) ),ff, (中文(简体) ),ff-only, (中文(简体) ),rebase-no-ff, (中文(简体) ),rebase-ff-only, (中文(简体) ),squash, (中文(简体) ),squash-ff-only。默认存储器配置的战略.message(字符串,可选):合并承诺消息. 比特巴克特生成的消息的默认值 .output(弦,可选):ack(违约)或full
10. bitbucket declinePull 请求
递减( 关闭而不合并) 调取请求 。 仅在服务器启用时注册 —— 见 拒绝拉动请求( opt- in)。 。 。 .
参数:
projectKey(字符串,要求): 项目密钥repositorySlug(字符串,要求): 仓库弹片pullRequestId(字符串,要求): 拉动请求IDversion(数目,需要): 当前拉动请求版本, 从bitbucket_getPullRequest。以409。 。 。 .comment(弦,可选): 拒绝的理由,以同一请求作为拉动请求的评论。 最好先发表单独的评论.output(弦,可选):ack(违约)或full
承认带有新的 version,这正是什么 bitbucket_reopenPullRequest 如果必须扭转下降趋势,则需要.
11. bitbucket reopenPull 请求
重新打开已拒绝的拉拉请求,恢复到 OPEN。总是可用的——不需要配置.
参数:
projectKey(字符串,要求): 项目密钥repositorySlug(字符串,要求): 仓库弹片pullRequestId(字符串,要求): 拉动请求IDversion(数目,需要): 当前拉动请求版本, 从bitbucket_getPullRequest。 Stale 版本——或拉出非DECLINED- 被否决409。 。 。 .output(弦,可选):ack(违约)或full
12. bitbucket getBranchDiff (中文(简体) )
在两个分支、标记或承诺之间取得diff,包括拥有 尚未请求拉动。返回与 Bitbucket “compare” 视图相同的比较:从 sourceBranch 但不是从 targetBranch,作为统一的diff.
参数:
projectKey(字符串,要求): 项目密钥repositorySlug(字符串,要求): 仓库弹片sourceBranch(字符串,要求): 源分支,标记或承诺(例如.feature/my-branch(中文(简体) )targetBranch(弦,可选): 目标分支,标记或承诺. 寄存器默认分支的默认值path(弦,可选): 将 diff 限制在一个文件路径中 。 关闭每个已更改文件的 diffcontextLines(弦,可选): 新增/删除的行环绕的上下文行数srcPath(弦,可选): 上一个文件路径, 如果它已被复制、 移动或重命名whitespace(弦,可选): 白空间旗等.ignore-alloutput(弦,可选):unified(默认)使 diff 统一;full返回原始数据RestDiff有效载数
与拉取请求 diff 资源不同,比较资源只说 JSON(Accept: text/plain 答案为 406)),因此结构有效载荷被折叠成一个统一的diff——大约为生JSON尺寸的三分之一.
一旦拉动请求存在, 更喜欢 bitbucket_getPullRequestChanges + 键 bitbucket_getPullRequestDiff。 。 。 .
10. bitbucket 创建框
在寄存器中创建分支, 从分支中拔出, 标记或承诺 .
参数:
projectKey(字符串,要求): 项目密钥repositorySlug(字符串,要求): 仓库弹片name(字符串,要求): 要创建的分支名称, 不包含refs/heads/前缀( 如 ).feature/my-branch(中文(简体) )startPoint(字符串,要求): 分行、标记或承诺新分行来自(例如:.master, (中文(简体) ),refs/heads/master,或犯罪编号)
答复中包含了新分支 id (例如:. refs/heads/feature/my-branch),这是什么 bitbucket_createPullRequest 预期为 fromRefId。 。 。 .
响应形状
- 使用被贴上标签的读取工具
BITBUCKET_DEFAULT_PAGE_SIZE何时limit省略. bitbucket_getPR_CommentsAndAction财务报告和审定财务报表bitbucket_getPullRequestChanges支助output=summary|compact|full默认为compact。 。 。 .bitbucket_postPullRequestComment, (中文(简体) ),bitbucket_createPullRequest, (中文(简体) ),bitbucket_updatePullRequest,以及bitbucket_mergePullRequest支助output=ack|full默认为ack。 。 。 .