mcpField
B
Bitbucket MCP

Bitbucket MCP

本地服务
github.com/FabianSchurig版本控制61 周前更新

关于 Bitbucket MCP

Bitbucket MCP 是面向软件工程师、AI Agent 和 DevSecOps 团队的 Go 版 Bitbucket Cloud 工具集的一部分。其 CLI、MCP 服务和 Terraform Provider 大多由实时 OpenAPI 规范生成,以保持 API 覆盖一致。

主要功能

  1. 01根据 Bitbucket OpenAPI 生成工具
  2. 02CLI 与 Terraform 共用 API 覆盖
  3. 03支持未公开端点的手写模式
  4. 04同步模式并重新生成产物
  5. 05以二进制文件和容器分发 MCP 服务

适用场景

  1. 01让 AI Agent 执行 Bitbucket Cloud 操作
  2. 02使 MCP 工具与变化中的 API 端点保持一致
  3. 03通过自定义模式使用未公开的 Bitbucket 端点

MCP 相关

`bb-mcp` 服务将 Bitbucket Cloud 操作作为 MCP 工具调用提供给 AI Agent。其工具范围由共享 API 模式生成。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"fabianschurig-bitbucket": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BITBUCKET_USERNAME",
"-e",
"BITBUCKET_TOKEN",
"ghcr.io/fabianschurig/bitbucket-mcp:0.20.2"
],
"env": {
"BITBUCKET_USERNAME": "<BITBUCKET_USERNAME>",
"BITBUCKET_TOKEN": "<BITBUCKET_TOKEN>"
}
}
}
}
启动命令docker run -i --rm -e BITBUCKET_USERNAME -e BITBUCKET_TOKEN ghcr.io/fabianschurig/bitbucket-mcp:0.20.2
需要配置的环境变量
BITBUCKET_USERNAMEYour Bitbucket username/ email (required for Basic auth, omit for workspace/repo access tokens)
BITBUCKET_TOKEN密钥Your Bitbucket API token or OAuth2 access token

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/fabianschurig/bitbucket-mcp:0.20.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

bitbucket-cli

CI GitHub Release Terraform Registry Sonar Quality Gate Sonar Maintainability Rating Sonar Vulnerabilities Sonar Technical Debt Sonar Security Rating

基于实时 OpenAPI 规范构建的低维护成本 Bitbucket Cloud 工具:为软件工程师提供 CLI,为 AI Agent 提供 MCP 服务,并为 DevSecOps 团队提供 Terraform provider。

重要

https://github.com/FabianSchurig/bitbucket-cli 是规范仓库。 如果你通过 terraform-provider-bitbucket 镜像发现此项目,请在 bitbucket-cli 仓库中关注、加星、提交问题并参与贡献。

从这里开始

受众最适合的工具从这里开始
DevSecOps 工程师Terraform providerTerraform Registry、生成的 provider 文档、示例:bitbucket_tags
软件工程师 / 计算机科学家bb-cliCLI 使用指南
AI Agent / Agent 平台用户bb-mcpMCP 使用指南

快速链接

安装

Homebrew(macOS 和 Linux)

通过我们的自定义 tap 安装 CLI 工具时,请添加仓库并明确地信任该 formula,以降低供应链风险:

brew tap FabianSchurig/tap
brew trust --formula FabianSchurig/tap/bitbucket-cli
brew install bitbucket-cli

或者安装 MCP 服务:

brew tap FabianSchurig/tap
brew trust --formula FabianSchurig/tap/bitbucket-mcp
brew install bitbucket-mcp

(注意:如果你之前添加过旧的 cask,可以在运行命令前安全地通过 brew untap fabianschurig/tap 取消添加。)

APT(Debian / Ubuntu)

从最新版本下载 .deb 软件包并安装。支持的架构:amd64、arm64。

TAG_URL=$(curl -fsSIL -o /dev/null -w '%{url_effective}' https://github.com/FabianSchurig/bitbucket-cli/releases/latest)
VERSION=${TAG_URL##*/}
VERSION=${VERSION%%\?*}
VERSION=${VERSION%%\#*}
VERSION=${VERSION#v}
ARCH=$(dpkg --print-architecture)
curl -LO "https://github.com/FabianSchurig/bitbucket-cli/releases/download/v${VERSION}/bb-cli_${VERSION}_${ARCH}.deb"
sudo dpkg -i "bb-cli_${VERSION}_${ARCH}.deb"

将 bb-cli 替换为 bb-mcp,即可改为安装 MCP 服务。

RPM(Fedora / RHEL / CentOS)

从最新版本下载 .rpm 软件包并安装。支持的架构:amd64、arm64。

TAG_URL=$(curl -fsSIL -o /dev/null -w '%{url_effective}' https://github.com/FabianSchurig/bitbucket-cli/releases/latest)
VERSION=${TAG_URL##*/}
VERSION=${VERSION%%\?*}
VERSION=${VERSION%%\#*}
VERSION=${VERSION#v}
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
curl -LO "https://github.com/FabianSchurig/bitbucket-cli/releases/download/v${VERSION}/bb-cli_${VERSION}_${ARCH}.rpm"
sudo rpm -i "bb-cli_${VERSION}_${ARCH}.rpm"

将 bb-cli 替换为 bb-mcp,即可改为安装 MCP 服务。

Scoop(Windows)
scoop bucket add bitbucket https://github.com/FabianSchurig/scoop-bucket
scoop install bb-cli
scoop install bb-mcp
Winget(Windows)
winget install FabianSchurig.bb-cli
winget install FabianSchurig.bb-mcp
安装脚本
curl -fsSL https://raw.githubusercontent.com/FabianSchurig/bitbucket-cli/main/install.sh | sh

有关版本选择、二进制文件选项(bb-cli、bb-mcp 或 all)和自定义安装目录,请参阅 install.sh 选项。

其他方法
方法命令
Go 安装go install github.com/FabianSchurig/bitbucket-cli/cmd/bb-cli@latest
Dockerdocker pull ghcr.io/fabianschurig/bitbucket-cli:latest
下载二进制文件GitHub Releases

完整安装详情请参阅 CLI 使用指南 和 MCP 使用指南。

本项目的定位

此代码仓库通过基于实时 Bitbucket OpenAPI 规范生成大部分内容,让 Bitbucket Cloud 工具保持易于维护。

  • 一份 API 描述,三种面向用户的工具:CLI、MCP 和 Terraform 都来自同一套架构生成流程。
  • 精简的手写运行时:身份验证、分发、输出和 Terraform 运行时保持通用,而不是为每个端点添加专用代码。
  • 快速采用规范:新的 Bitbucket 端点通过生成流程接入,无需大规模手动重写。
  • 以维护为先的设计:主要开发工作投入共享生成器和运行时,而非重复的端点代码。
  • 同样支持内部/未公开端点:对于 Bitbucket 公共 OpenAPI 规范中未包含的端点(例如仅通过 https://bitbucket.org/!api/internal/... 暴露的项目级分支限制端点),可以在 schema/ 下手动编写架构。生成器和运行时会以相同方式处理它们——架构路径可以使用绝对 URL,分发器会原样传递这些路径。

架构

flowchart LR
    A[Live Bitbucket OpenAPI spec] --> B[enrich_spec.py]
    B --> C[partition_spec.py]
    C --> D[schema/*-schema.yaml]
    D --> E[oapi-codegen models]
    D --> F[CLI generator]
    D --> G[MCP generator]
    D --> H[Terraform generator]
    E --> I[Shared generated types]
    F --> J[bb-cli]
    G --> K[bb-mcp]
    H --> L[terraform-provider-bitbucket]
    I --> J
    I --> K
    I --> L
    M[Hand-written runtime\nauth, dispatch, output, MCP handler, TF runtime] --> J
    M --> K
    M --> L

具体来说:

  • CLI 将 Bitbucket 操作作为终端命令提供。
  • MCP 将相同操作作为工具调用提供给 AI Agent。
  • Terraform 将操作组映射为通用资源和数据源。
  • 手写代码有意保持精简;端点覆盖由生成代码处理。

CI 流水线

flowchart TD
    A[push / pull_request] --> B[ci.yml]
    A --> C[terraform-tests.yml]
    D[schedule / manual] --> E[schema-sync.yml]
    E --> F[Fetch live spec]
    F --> G[Regenerate code and docs]
    G --> H[Build and test]
    H --> I[Tag new version]
    I --> J[release.yml]
    J --> K[docker.yml]
    I --> L[terraform-release.yml]
    K --> M[Publish to MCP Registry]
  • ci.yml:构建、执行 lint 和 vet、运行 Go 测试,并将分析结果发送到 SonarQube Cloud。
  • terraform-tests.yml:运行基于模拟的 Terraform 验收测试和 terraform test 测试套件,并在存在凭据时运行真实 API 测试。当前真实 API 测试覆盖的端点列表,请参阅 docs/e2e-coverage.md。
  • schema-sync.yml:每日/手动同步实时 Bitbucket 规范、重新生成生成的构件、重建文档、运行所有测试,并在架构发生变化时标记一个版本。
  • release.yml:通过 GoReleaser 发布带标签的二进制版本。
  • docker.yml:为 bb-cli 和 bb-mcp 构建多架构容器镜像,将其推送到 GHCR,发布其 SBOM 和 CVE 报告(参见供应链:SBOM 和 CVE 报告),并将 bb-mcp 服务发布到 MCP Registry。
  • terraform-release.yml:将带标签的源代码同步到 terraform-provider-bitbucket,并发布 Terraform 提供程序版本。
Schema 同步安全性

实时 OpenAPI 文档被视为输入,而非有权因暂时遗漏而删除正常 API 分组的权威来源。以下三种机制可防止每日同步破坏已发布的接口或同步流程本身:

  • 保留分组:当某个分组提取后没有路径时,partition_spec.py 会保留该分组现有的非空 Schema;真正为空或新建的分组仍会照常写入。
  • 稳定的 operationId:ID 会记录在已提交的锁定文件 schema/operation-ids.json 中,以 "<method> <path>" 为键。某个操作的 ID 永远不变,已移除操作的 ID 也会继续保留——因此,同级端点永远无法继承某个 ID,悄然重命名已发布的 CLI 命令、MCP 工具或 CRUDConfig 引用。
  • 保留操作:Atlassian 会定期从已发布的规范中移除已弃用但仍可用的端点。为避免在自动补丁版本发布时丢弃命令,partition_spec.py 会将此类操作从已提交的 Schema 原样沿用,并标注 x-bb-cli-retained: true,以便 Schema 差异准确显示上游停止发布的内容。彻底弃用某个操作需要有意为之:将其从 schema/*-schema.yaml 中删除,随后不变量测试会标记仍引用它的任何手动维护映射(例如 CRUDConfig 中的映射)。

internal/tfprovider/acceptance_test.go 中的验收测试由人工编写,绝不会因 Schema 生成而删除。生成的 Terraform 测试夹具会根据保留的资源分组重新生成;提交或发布任何更改前,Schema 同步构建和测试门禁(包括模拟 Terraform 验收测试套件)都必须通过。生成的真实 API 覆盖率报告可以直观呈现分组覆盖缺失之处,无需手动记录。

供应链:SBOM 和 CVE 报告

每个发布的容器映像都附带一份标准格式的软件物料清单和漏洞报告。两者均基于推送到 GHCR 的确切映像摘要生成。

工件格式获取位置
映像 SBOMSPDX 2.3 JSON对应的 GitHub Release 中的 sbom-bitbucket-cli.spdx.json / sbom-bitbucket-mcp.spdx.json,或作为映像本身的签名证明
映像 CVE 报告Grype JSON + 纯文本表格对应的 GitHub Release 中的 cves-bitbucket-cli.{json,txt} / cves-bitbucket-mcp.{json,txt}
源码 SBOMSPDX JSON由 release.yml 附加到 GitHub Release(涵盖 git 标签,而非映像)

SBOM 还会作为与摘要绑定的签名 GitHub 证明附加到映像,因此使用者无需访问此仓库即可验证并获取它:

gh attestation verify oci://ghcr.io/fabianschurig/bitbucket-mcp:latest --owner FabianSchurig
gh attestation download oci://ghcr.io/fabianschurig/bitbucket-mcp:latest --owner FabianSchurig

运行时映像基于 FROM scratch 构建,仅包含静态二进制文件和 CA 证书,因此 SBOM 有意保持精简,也没有需要修补的操作系统软件包。

漏洞扫描结果还会上传到 GitHub 代码扫描,供维护者查看(类别为 docker-bitbucket-cli 和 docker-bitbucket-mcp);此外,security.yml 中的 govulncheck 会检查 Go 模块树。

与 DrFaust92/terraform-provider-bitbucket 的区别

方面DrFaust92/terraform-provider-bitbucketFabianSchurig/bitbucket
维护模式手工编写的提供程序资源主要根据实时 Bitbucket OpenAPI 规范生成
范围仅 Terraform 提供程序在一个权威仓库中集成 Terraform 提供程序、CLI 和 MCP 服务
API 覆盖模式精选的类型化资源通过分组的通用资源/数据源广泛覆盖端点
更新流程针对每项资源手动开发功能架构同步流水线重新生成代码和文档
资源形式针对具体资源的类型化字段通用参数、响应字段和原始 API 响应
最适用场景规范明确的 Terraform 工作流希望快速覆盖 Bitbucket API,并在 Terraform、shell 和 AI Agent 之间共享工具的团队

本项目专注于广泛覆盖、易于维护,以及为不同接口提供共享基础设施。如果你想要高度手工建模的 Terraform 体验,DrFaust92 提供程序可能会更熟悉。如果你希望通过一条统一维护的流水线,让 Terraform、CLI 和 MCP 与 Bitbucket Cloud 保持同步,那么本仓库正是为此设计的。

文档导航

先通过首页的简短指南开始使用,然后根据需要切换到相应接口的详细文档。

docs/ 下的 Terraform 文档由程序生成。根目录 README 专注于项目概览、链接、架构、维护方式和贡献入口。

维护与贡献

  • 修改生成器或运行时代码前,请阅读 CONTRIBUTING.md。
  • 不要手动编辑生成的文件;应修复生成器或架构源文件。
  • 优先进行能改进共享流水线或所有端点手写运行时的更改。
  • 请在权威的 bitbucket-cli 仓库中提交问题和拉取请求。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。