使用说明
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"]
🏢 企业部署
气隙安装
-
在连接互联网的机器上下载:
npm pack @bitbucket-mcp/server -
转移到气隙系统 通过安全媒体
-
脱机安装:
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 自动:
- 依赖机器人 更新依赖项(每周周一)
- 创建新标签 带有补丁增量版本(v0.1.0→v0.1.1)
- 由Changelog生成 基于 Conventional Commits
- 发行公司:GitHub Release 所有平台的二进制
- 发布到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