Bitbucket MCP服务器

Bitbucket MCP服务器是一个安全、自托管的模型上下文协议(MCP)服务器,专为企业、隔离网络和私有网络环境设计,提供高性能和零运行时依赖。

  • by SvitEM
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 SvitEM/bitbucket-mcp-server

使用说明

Bitbucket MCP服务器-企业安全版

用于Bitbucket服务器/数据中心的安全、自托管模型上下文协议(MCP)服务器 --专为企业、气隙和专用网络环境而设计。内置Rust,可实现最大的安全性、性能和零运行时依赖性。


🎯 为什么选择MCP服务器?

功能 此服务器 其他MCP服务器
部署 单二进制 Node.js+npm依赖
安全 Rust内存安全 JavaScript运行时漏洞
依赖项 运行时为零 100多个npm包
气隙 ✅ 完全支持 ❌ 需要npm注册表
SSL/TLS 自定义CA支持 有限
权限 精细读/写/删除 全部或无
审计跟踪 安全审计依赖关系 供应链风险

非常适合:

  • 🔒 企业环境 有严格的安全政策
  • 🏢 企业网络 防火墙后面
  • ✈️ 气隙系统 没有互联网接入
  • 🛡️ 要求 (SOC2、ISO27001、GDPR)
  • 📦 最小攻击面 要求

🚀 快速开始

安装(30秒)

# Global install
npm install -g @bitbucket-mcp/server

# Or run without install
npx @bitbucket-mcp/server

配置Claude桌面

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "bitbucket": {
      "command": "npx",
      "args": ["-y", "@bitbucket-mcp/server"],
      "env": {
        "BITBUCKET_BASE_URL": "https://bitbucket.your-company.com",
        "BITBUCKET_USERNAME": "service-account",
        "BITBUCKET_PASSWORD": "your-personal-access-token",
        "BITBUCKET_SSL_VERIFY": "true",
        "BITBUCKET_ALLOW_READ": "true",
        "BITBUCKET_ALLOW_WRITE": "false",
        "BITBUCKET_ALLOW_DELETE": "false"
      }
    }
  }
}

🔐 安全特性

企业级安全

特性 描述
内存安全 Rust可防止缓冲区溢出、释放后使用、数据争用
零供应链风险 没有运行时需要妥协的npm依赖
经审计的依赖关系 所有防锈板条箱均已扫描 cargo-audit
精细权限 单独的读/写/删除控件
自签名SSL 支持内部CA证书
无遥测 零数据收集,完全离线

安全配置

{
  "env": {
    // Require SSL verification (default: true)
    "BITBUCKET_SSL_VERIFY": "true",
    
    // Read-only mode for maximum security
    "BITBUCKET_ALLOW_READ": "true",
    "BITBUCKET_ALLOW_WRITE": "false",
    "BITBUCKET_ALLOW_DELETE": "false",
    
    // Use personal access token instead of password
    "BITBUCKET_PASSWORD": "your-pat-token"
  }
}

合规就绪

  • ✅ SOC2:审计跟踪、访问控制、传输中的加密
  • ✅ ISO27001:安全开发、依赖关系管理
  • ✅ GDPR 数据保护:无数据保留,内部部署
  • ✅ 健康保险流通与责任法案:支持专用网络部署

🛠️ 可用工具(19个MCP工具)

项目

工具 描述 权限
list_projects 列出所有分页项目 阅读
get_project 按键获取项目详细信息 阅读

仓库

工具 描述 权限
list_repos 列出项目中的存储库 阅读
get_repo 获取存储库详细信息 阅读

拉取请求

工具 描述 权限
list_prs 列出带过滤器的拉取请求(状态、作者) 阅读
get_pr 获取拉取请求详细信息 阅读
create_pr 创建新的pull请求 WRITE
update_pr 更新拉取请求标题/描述 写入
merge_pr 合并拉取请求 删除
decline_pr 拒绝拉取请求 删除
pr_diff 获取拉取请求差异 读取
pr_changes 获取拉取请求文件更改 读取

分支

工具 描述 权限
list_branches 列出存储库分支 阅读
create_branch 从ref WRITE创建新分支
compare_branches 比较分支之间的提交 阅读

提交

工具 描述 权限
list_commits 列出带有过滤器的存储库提交 阅读
get_commit 获取提交详细信息 阅读

文件

工具 描述 权限
list_files 浏览存储库文件 阅读
get_file_content 在特定提交时获取文件内容 阅读

📦 部署选项

选项1:NPM(推荐)

npm install -g @bitbucket-mcp/server

选项2:直接二进制(气隙)

下载适用于您平台的预构建二进制文件:

平台 二进制 大小
macOS英特尔 bitbucket-mcp-darwin-x64 ~15 MB
macOS ARM bitbucket-mcp-darwin-arm64 ~12 MB
Linux x64 bitbucket-mcp-linux-x64 约18 MB
Linux ARM64 bitbucket-mcp-linux-arm64 ~16 MB
Windows x64 bitbucket-mcp-win32-x64.exe 约20 MB
# Download and run
chmod +x bitbucket-mcp-linux-x64
./bitbucket-mcp-linux-x64

选项3:Docker(即将推出)

FROM scratch
COPY bitbucket-mcp-linux-x64 /bitbucket-mcp
ENTRYPOINT ["/bitbucket-mcp"]

🏢 企业部署

气隙安装

  1. 在连接互联网的机器上下载:

    npm pack @bitbucket-mcp/server
    
  2. 转移到气隙系统 通过安全媒体

  3. 脱机安装:

    npm install -g bitbucket-mcp-server-0.1.0.tgz
    

企业代理支持

{
  "env": {
    "BITBUCKET_BASE_URL": "https://bitbucket.internal.company.com",
    "HTTP_PROXY": "http://proxy.company.com:8080",
    "HTTPS_PROXY": "http://proxy.company.com:8080",
    "NO_PROXY": "localhost,127.0.0.1,.internal.company.com"
  }
}

服务帐户设置

# 1. Create dedicated service account in Bitbucket
# 2. Grant minimal required permissions
# 3. Generate Personal Access Token (PAT)
# 4. Use in configuration (never commit to git!)

🔧 配置参考

环境变量

变量 必填 默认 描述
BITBUCKET_BASE_URL 是 - 比特桶服务器基本URL
BITBUCKET_API_KEY 否 - 承载令牌身份验证的API密钥/PAT(优先于基本身份验证)
BITBUCKET_USERNAME 是 - 基本身份验证的用户名(如果设置了BITBUCKET_API_KEY,则忽略此项)
BITBUCKET_PASSWORD 是 - 用于基本身份验证的密码或PAT(如果设置了BITBUCKET_API_KEY,则忽略此项)
BITBUCKET_SSL_VERIFY 没有 true SSL证书验证
BITBUCKET_ALLOW_READ 没有 true 允许读取操作
BITBUCKET_ALLOW_WRITE 没有 true 允许写入操作
BITBUCKET_ALLOW_DELETE 没有 true 允许删除操作

权限模式

// Read-only (maximum security)
{ "BITBUCKET_ALLOW_READ": "true", "BITBUCKET_ALLOW_WRITE": "false", "BITBUCKET_ALLOW_DELETE": "false" }

// Developer mode (no delete)
{ "BITBUCKET_ALLOW_READ": "true", "BITBUCKET_ALLOW_WRITE": "true", "BITBUCKET_ALLOW_DELETE": "false" }

// Admin mode (full access)
{ "BITBUCKET_ALLOW_READ": "true", "BITBUCKET_ALLOW_WRITE": "true", "BITBUCKET_ALLOW_DELETE": "true" }

🛡️ 安全最佳实践

1.使用个人访问令牌

# ❌ Don't use password
BITBUCKET_PASSWORD="my-actual-password"

# ✅ Use PAT with minimal scope
BITBUCKET_PASSWORD="pat:read-only-projects-repos"

2.启用只读模式

{
  "env": {
    "BITBUCKET_ALLOW_WRITE": "false",
    "BITBUCKET_ALLOW_DELETE": "false"
  }
}

3.限制网络访问

# Bind to localhost only (if supported)
# Or use firewall rules to restrict access
sudo ufw allow from 127.0.0.1 to any port 3000

4.旋转凭证

# Rotate PAT every 90 days
# Monitor Bitbucket audit logs for unusual activity

5.启用SSL验证

{
  "env": {
    "BITBUCKET_SSL_VERIFY": "true"  // Never disable in production
  }
}

🐛 故障排除

SSL证书错误

对于自签名/内部CA证书:

{
  "env": {
    // Option 1: Add to system trust store (recommended)
    // Option 2: Disable verification (NOT recommended for production)
    "BITBUCKET_SSL_VERIFY": "false"
  }
}

⚠️ 警告: 仅禁用受信任的内部服务器的SSL验证。

认证失败

# Check credentials
curl -u username:password https://bitbucket.example.com/rest/api/1.0/projects

# Verify PAT has required permissions
# Check user is not locked/suspended

连接被拒绝

# Verify URL includes protocol
BITBUCKET_BASE_URL="https://bitbucket.example.com"  # ✅
BITBUCKET_BASE_URL="bitbucket.example.com"          # ❌

# Test connectivity
curl -I https://bitbucket.example.com

# Check firewall/proxy rules

权限不足

{
  "env": {
    // Enable only required permissions
    "BITBUCKET_ALLOW_READ": "true",
    "BITBUCKET_ALLOW_WRITE": "false",
    "BITBUCKET_ALLOW_DELETE": "false"
  }
}

🏗️ 建筑

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  Claude Desktop │────▶│  MCP Server      │────▶│  Bitbucket      │
│  (AI Assistant) │     │  (Rust Binary)   │     │  Server/DC      │
└─────────────────┘     └──────────────────┘     └─────────────────┘
        │                       │                        │
        │                       │                        │
   User Requests          Zero Dependencies        REST API 1.0
   Natural Language         Memory Safe              Basic Auth
                            Single Binary            SSL/TLS

为什么是Rust?

  • 内存安全:无缓冲区溢出、空闲后使用或数据争用
  • 演出:本机代码,无GC暂停
  • 安全:经过审核的依赖关系,最小攻击面
  • 可移植性:单个静态二进制文件,无运行时依赖关系

📚 资源


🤝 贡献

我们欢迎捐款!请查看我们的 贡献指南 了解详情。

发展

git clone https://github.com/your-org/bitbucket-mcp-server.git
cd bitbucket-mcp-server

# Build
cargo build --release

# Test
cargo test

# Security audit
cargo audit

🔄 CI/CD和自动发布

自动版本控制

每次连接到一个分支 main 自动:

  1. 依赖机器人 更新依赖项(每周周一)
  2. 创建新标签 带有补丁增量版本(v0.1.0→v0.1.1)
  3. 由Changelog生成 基于 Conventional Commits
  4. 发行公司:GitHub Release 所有平台的二进制
  5. 发布到NPM (如果有代币 NPM_TOKEN)

常规提交

使用提交格式自动确定更改类型:

# Новые функции (minor version)
git commit -m "feat: add branch comparison tool"

# Исправления (patch version)
git commit -m "fix: handle SSL certificate errors"

# Обновления зависимостей (patch version)
git commit -m "deps: update tokio to 1.42"

# Документация (не создает релиз)
git commit -m "docs: update README examples"

工作流程概述

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  Push to main   │────▶│  auto-release.yml│────▶│  Create tag     │
│  (non-.md)      │     │                  │     │  (v0.1.0→0.1.1) │
└─────────────────┘     └──────────────────┘     └────────┬────────┘
                                                          │
┌─────────────────┐     ┌──────────────────┐     ┌────────▼────────┐
│  npm Publish    │◀────│  release.yml     │◀────│  GitHub Release │
│                 │     │  Build & Test    │     │  + Changelog    │
└─────────────────┘     └──────────────────┘     └─────────────────┘

必需的秘密

在GitHub Repository Settings→Secrets→Actions中配置Secrets:

机密 描述 必填
GITHUB_TOKEN 自动创建GitHub✅ Yes
NPM_TOKEN 发表在NPM上的代币❌ Optional

Dependabot配置

dependabot自动更新:

  • Rust依赖 (cargo.toml)-每周
  • NPM依赖 (package.json)-每周
  • GitHub 操作 -每周

所有更新都是作为Pull Request与标签创建的:

  • dependencies + rust / javascript / ci/cd
  • 针对Minor/Patch版本的分组更新

📄 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。


🔍 关键词

MCP服务器、模型上下文协议、Bitbucket服务器、Bitbucket数据中心、企业MCP、安全MCP、自托管MCP、气隙MCP、内部部署MCP、单二进制MCP、Rust MCP服务器、零依赖性、专用网络MCP、企业MCP,符合SOC2、符合ISO27001、Atlassian集成、BitbucketREST API、Claude Desktop MCP、AI集成


Built for enterprise security • Zero runtime dependencies • Air-gapped ready