比特桶MCP服务器
此存储库包含用于Bitbucket Cloud集成的模型上下文协议(MCP)服务器实现。
MCP工具可用于Bitbucket操作,包括:
list_pull_open_requests:获取Bitbucket存储库中的所有打开的拉取请求。get_pull_request_comments:获取特定拉取请求的注释。get_pull_request_details:获取有关拉取请求的详细信息,包括描述、元数据和更改的文件。
项目
- BitbucketRemoteMcpServer:ASP。NET基于Web API的MCP服务器,用于基于服务器的安装(流式HTTP或SSE传输)
- BitbucketMcpServer:用于本地工作站安装的基于控制台的MCP服务器(stdio传输)
通过Docker和Linux服务器运行(推荐)
- 在Linux服务器上,为您的配置创建一个目录:
mkdir -p /opt/bitbucket-mcp-server
cd /opt/bitbucket-mcp-server- 拉取Docker镜像:
docker pull peakflames/bitbucket-remote-mcp-server- 创建
appsettings.json根据您的Bitbucket配置定制的文件:
{
"BitbucketCloudConfig": {
"AccountName": "your-workspace-name"
}
}- 使用您选择的身份验证方法运行Docker容器:
使用OAuth 2.0(推荐):
docker run -d \
--name bitbucket-mcp-server \
-p 8080:8080 \
-e BITBUCKET_MCP_CONSUMER_KEY="your_consumer_key" \
-e BITBUCKET_MCP_SECRET_KEY="your_secret_key" \
-v $(pwd)/appsettings.json:/app/appsettings.json \
peakflames/bitbucket-remote-mcp-server使用基本身份验证:
docker run -d \
--name bitbucket-mcp-server \
-p 8080:8080 \
-e BITBUCKET_MCP_USERNAME="your_bitbucket_username" \
-e BITBUCKET_MCP_API_TOKEN="your_bitbucket_app_password" \
-v $(pwd)/appsettings.json:/app/appsettings.json \
peakflames/bitbucket-remote-mcp-server- 服务器现在应该正在运行。MCP客户端将使用以下方式连接:
- 可流式HTTP传输: http://{{your-server-ip}}:8080/ - 苏格兰和南方能源公司运输: http://{{your-server-ip}}:8080/sse
配置选项(appsettings.json)
服务器使用 appsettings.json 用于使用一组凭据进行配置,这些凭据可以访问您Bitbucket帐户中的任何存储库。
| 设置 | 说明 | 必填 | 默认 |
|---|---|---|---|
AccountName | Bitbucket工作区/帐户名称 | 是 | 否 |
注: 身份验证凭据(OAuth 2.0或Basic Auth)在启动时从环境变量中检索(请参阅下面的环境变量部分)。
环境变量
服务器支持两种身份验证方法: OAuth 2.0客户端凭据 和 基本认证。您必须使用环境变量配置这些方法之一。
OAuth 2.0客户端凭据(建议用于生产环境)
OAuth 2.0为服务器到服务器通信提供了更安全的身份验证,建议用于生产部署。
Linux/macOS:
export BITBUCKET_MCP_CONSUMER_KEY="your_consumer_key"
export BITBUCKET_MCP_SECRET_KEY="your_secret_key"Windows(PowerShell):
$env:BITBUCKET_MCP_CONSUMER_KEY = "your_consumer_key"
$env:BITBUCKET_MCP_SECRET_KEY = "your_secret_key"Windows(命令提示符):
set BITBUCKET_MCP_CONSUMER_KEY=your_consumer_key
set BITBUCKET_MCP_SECRET_KEY=your_secret_key如何获取OAuth 2.0证书:
- 登录您的Bitbucket工作区
- 引导到 设置 > OAuth消费者
- 点击 添加消费者
- 为消费者配置必要的权限(例如,存储库读/写、拉取请求)
- 保存并记录您的消费者密钥和消费者密码
基本身份验证(替代方法)
基本身份验证使用您的Bitbucket用户名和应用程序密码。这种方法设置起来更简单,但生产使用的安全性较低。
Linux/macOS:
export BITBUCKET_MCP_USERNAME="your_username"
export BITBUCKET_MCP_API_TOKEN="your_app_password"Windows(PowerShell):
$env:BITBUCKET_MCP_USERNAME = "your_username"
$env:BITBUCKET_MCP_API_TOKEN = "your_app_password"Windows(命令提示符):
set BITBUCKET_MCP_USERNAME=your_username
set BITBUCKET_MCP_API_TOKEN=your_app_password如何创建应用程序密码:
- 登录Bitbucket
- 点击您的个人资料头像> 个人设置
- 在...之下 访问管理,单击 应用密码
- 点击 创建应用密码
- 给它一个标签并选择必要的权限
- 复制生成的应用程序密码(您将无法再次看到它)
身份验证方法选择
服务器会根据您设置的环境变量自动确定使用哪种身份验证方法:
- 使用OAuth 2.0 当
BITBUCKET_MCP_CONSUMER_KEY和BITBUCKET_MCP_SECRET_KEY已设定 - 使用基本身份验证 当
BITBUCKET_MCP_USERNAME和BITBUCKET_MCP_API_TOKEN已设定 - 您必须提供 要么 OAuth 2.0凭据 或 基本身份验证凭据(不是两者都有)
运作原理
- 配置加载:启动时,应用程序从以下位置加载AccountName
appsettings.json - 环境变量分辨率:在启动时
Program.cs,应用程序从环境变量中读取身份验证凭据:
- 对于OAuth 2.0: BITBUCKET_MCP_CONSUMER_KEY 和 BITBUCKET_MCP_SECRET_KEY - 对于基本身份验证: BITBUCKET_MCP_USERNAME 和 BITBUCKET_MCP_API_TOKEN
- 身份验证方法选择:如果提供了消费者密钥/秘密,服务器会自动选择OAuth 2.0,否则会回退到基本身份验证
- 工具调用:当调用MCP工具时,存储库名称作为函数参数传递
- 客户端创建:Bitbucket客户端是使用启动时从环境变量解析的凭据和工具参数中的存储库slug创建的
配置MCP客户端
临床配置
- 打开Cline的MCP设置界面
- 单击“远程服务器”选项卡
- 添加以下配置:
{
"mcpServers": {
"Bitbucket": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"url": "http://{{your-server-ip}}:8080/sse",
"transportType": "sse"
}
}
}远程服务器故障排除
“未设置环境变量”错误:
- 对于OAuth 2.0:确保两者
BITBUCKET_MCP_CONSUMER_KEY和BITBUCKET_MCP_SECRET_KEY已设定 - 对于基本身份验证:确保两者
BITBUCKET_MCP_USERNAME和BITBUCKET_MCP_API_TOKEN已设定 - 应用程序在启动时验证所需的凭据,如果配置不正确,将无法启动
- 确保您使用的是一种完整的身份验证方法,而不是混合使用这两种方法中的变量
连接错误:
- 验证您的Bitbucket凭据是否正确
- 对于OAuth 2.0:确保消费者密钥和秘密有效,并且OAuth消费者在Bitbucket中处于活动状态
- 对于基本身份验证:确保应用程序密码对您正在访问的存储库具有必要的权限
- 检查配置中的帐户名是否正确
- 验证传递给工具的存储库名称是否与您帐户中的实际存储库匹配
权限错误:
- 对于OAuth 2.0:验证OAuth使用者是否具有所需的作用域(例如,存储库读/写、拉取请求)
- 对于基本身份验证:确保您的应用程序密码对您需要访问的所有存储库都有权限
- 检查您的Bitbucket用户是否有权访问指定的存储库
贡献
有关开发设置、构建说明、Docker容器发布和调试信息,请参阅 贡献.md.
许可证
看 许可证 了解详情。
