MCP(模型上下文协议)服务器用于管理Bitbucket Server的拉取请求。此服务器提供了通过MCP协议与Bitbucket Server API交互的工具和资源。
<a href="https://glama.ai/mcp/servers/jskr5c1zq3"><img width="380" height="200" src="https://gips1.baidu.com/it/u=1476338627,1886835708&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Bitbucket Server MCP 服务器" /></a>
search 工具在项目/仓库过滤条件下跨仓库搜索代码和文件get_file_content 和 browse_repository 工具读取文件内容并浏览仓库目录get_comments 工具提取和过滤PR评论list_projects 列出所有可访问的Bitbucket项目list_repositories 在项目之间浏览仓库BITBUCKET_DEFAULT_PROJECT要通过 Smithery 自动安装 Bitbucket Server for Claude Desktop:
npx -y @smithery/cli install @garc33/bitbucket-server-mcp-server --client claude
npm install
npm run build
该服务器提供以下工具以实现全面的Bitbucket Server集成:
list_projects发现和探索Bitbucket项目:列出所有可访问项目的详细信息。对于项目发现和找到正确的项目键以在其他操作中使用至关重要。
用例:
参数:
limit:返回的项目数量(默认:25,最大:1000)start:分页起始索引(默认:0)list_repositories浏览和发现仓库:在特定项目内或跨所有可访问项目浏览仓库。返回包括克隆URL和元数据在内的综合仓库信息。
用例:
参数:
project:Bitbucket项目键(可选,未提供时使用 BITBUCKET_DEFAULT_PROJECT)limit:返回的仓库数量(默认:25,最大:1000)start:分页起始索引(默认:0)create_pull_request提议代码更改进行审查:创建新的拉取请求以提交代码更改、请求审查或合并功能分支。自动处理分支引用和审阅者分配。
用例:
参数:
project:Bitbucket项目键(可选,未提供时使用 BITBUCKET_DEFAULT_PROJECT)repository(必需):仓库slugtitle(必需):清晰描述的PR标题description:带有上下文的详细描述(支持Markdown)sourceBranch(必需):包含更改的源分支targetBranch(必需):目标合并分支reviewers:审阅者用户名数组get_pull_request全面的PR信息:检索详细的拉取请求信息,包括状态、审阅者、提交和所有元数据。在采取行动前理解PR状态至关重要。
用例:
参数:
project:Bitbucket项目键(可选,未提供时使用 BITBUCKET_DEFAULT_PROJECT)repository(必需):仓库slugprId(必需):拉取请求IDmerge_pull_request整合已批准的更改:将已批准的拉取请求合并到目标分支。支持基于工作流偏好的不同合并策略。
用例:
参数:
project:Bitbucket项目键(可选,未提供时使用 BITBUCKET_DEFAULT_PROJECT)repository(必需):仓库slugprId(必需):拉取请求IDmessage:自定义合并提交消息strategy:合并策略:
merge-commit(默认):创建保留历史记录的合并提交squash:将所有提交合并为一个fast-forward:移动分支指针而不创建合并提交decline_pull_request拒绝不合适的更改:拒绝不应合并的拉取请求,并向作者提供反馈。
用例:
参数:
project:Bitbucket项目键(可选,未提供时使用 BITBUCKET_DEFAULT_PROJECT)repository(必需):仓库slugprId(必需):拉取请求IDmessage:拒绝的原因(有助于作者反馈)add_comment参与代码审查:向拉取请求添加评论以提供审查反馈、讨论和协作。支持线程对话。
用例:
参数:
project:Bitbucket项目键(可选,未提供时使用 BITBUCKET_DEFAULT_PROJECT)repository(必需):仓库slugprId(必需):拉取请求IDtext(必需):评论内容(支持Markdown)parentId:父评论ID用于线程回复get_diff分析代码更改:检索显示拉取请求中确切添加、删除或修改的代码差异。支持每文件截断以有效管理大型diff。
用例:
参数:
project:Bitbucket项目键(可选,未提供时使用 BITBUCKET_DEFAULT_PROJECT)repository(必需):仓库slugprId(必需):拉取请求IDcontextLines:更改周围的上下文行数(默认:10)maxLinesPerFile:每个文件的最大行数(可选,未指定时使用 BITBUCKET_DIFF_MAX_LINES_PER_FILE 环境变量,设置为0表示无限制)大型文件处理:
当文件超过 maxLinesPerFile 限制时,会显示:
get_reviews跟踪审查进度:获取审查历史、审批状态和审阅者反馈以了解审查状态。
用例:
get_activities检索拉取请求活动:获取拉取请求的完整活动时间线,包括评论、审查、提交和其他事件。
用例:
参数:
project:Bitbucket项目键(可选,未提供时使用 BITBUCKET_DEFAULT_PROJECT)repository(必需):仓库slugprId(必需):拉取请求IDget_comments仅提取PR评论:筛选拉取请求活动以仅返回评论,使专注于讨论内容更容易,无需审查或其他活动。
用例:
参数:
project:Bitbucket项目键(可选,未提供时使用 BITBUCKET_DEFAULT_PROJECT)repository(必需):仓库slugprId(必需):拉取请求IDsearch高级代码和文件搜索:使用Bitbucket搜索API跨仓库搜索,支持项目/仓库过滤和查询优化。搜索文件内容和文件名。注意:搜索仅适用于仓库的默认分支。
用例:
参数:
query(必需):搜索查询字符串project:限制搜索范围的Bitbucket项目键repository:特定仓库搜索的仓库slugtype:查询优化 - "file"(用引号包裹查询以匹配精确文件名)或 "code"(默认搜索行为)limit:返回的结果数量(默认:25,最大:100)start:分页起始索引(默认:0)查询语法示例:
"README.md" - 查找精确文件名config ext:yml - 查找YAML文件中的configfunction project:MYPROJECT - 在特定项目中搜索"function"bug fix repo:PROJ/my-repo - 在特定仓库中搜索get_file_content分页读取文件内容:从仓库中检索特定文件的内容,支持通过分页处理大型文件。
用例:
参数:
project:Bitbucket项目键(可选,未提供时使用 BITBUCKET_DEFAULT_PROJECT)repository(必需):仓库slugfilePath(必需):仓库中的文件路径branch:分支或提交哈希(可选,默认为主/主分支)limit:每次请求的最大行数(默认:100,最大:1000)start:分页起始行号(默认:0)browse_repository浏览仓库结构:浏览仓库中的文件和目录以了解项目组织并定位特定文件。
用例:
参数:
project:Bitbucket项目键(可选,未提供时使用 BITBUCKET_DEFAULT_PROJECT)repository(必需):仓库slugpath:要浏览的目录路径(可选,默认为根目录)branch:分支或提交哈希(可选,默认为主/主分支)limit:返回的最大项数(默认:50)# 列出所有可访问项目
list_projects
# 列出默认项目中的仓库(如果设置了 BITBUCKET_DEFAULT_PROJECT)
list_repositories
# 列出特定项目中的仓库
list_repositories --project "MYPROJECT"
# 使用分页列出项目
list_projects --limit 10 --start 0
# 跨所有项目搜索README文件
search --query "README" --type "file" --limit 10
# 在项目中搜索特定代码模式
search --query "function getUserData" --type "code" --project "MYPROJECT"
# 使用文件扩展名过滤搜索
search --query "config ext:yml" --project "MYPROJECT"
# 浏览仓库结构
browse_repository --project "MYPROJECT" --repository "my-repo"
# 浏览特定目录
browse_repository --project "MYPROJECT" --repository "my-repo" --path "src/components"
# 读取文件内容
get_file_content --project "MYPROJECT" --repository "my-repo" --filePath "package.json" --limit 20
# 从大型文件中读取特定行
get_file_content --project "MYPROJECT" --repository "my-repo" --filePath "docs/CHANGELOG.md" --start 100 --limit 50
# 创建拉取请求(使用默认项目)
create_pull_request --repository "my-repo" --title "Feature: 新功能" --sourceBranch "feature/new-feature" --targetBranch "main"
# 在特定项目中创建拉取请求
create_pull_request --project "MYPROJECT" --repository "my-repo" --title "Bugfix: 严重问题" --sourceBranch "bugfix/critical" --targetBranch "develop" --description "修复严重问题 #123"
# 获取拉取请求详情
get_pull_request --repository "my-repo" --prId 123
# 仅获取PR评论(无审查/提交)
get_comments --project "MYPROJECT" --repository "my-repo" --prId 123
# 获取完整的PR活动时间线
get_activities --repository "my-repo" --prId 123
# 使用squash策略合并拉取请求
merge_pull_request --repository "my-repo" --prId 123 --strategy "squash" --message "Feature: 新功能 (#123)"
@modelcontextprotocol/sdk - MCP协议实现的SDKaxios - API请求的HTTP客户端winston - 日志框架服务器需要在VSCode MCP设置文件中进行配置。这里是一个示例配置:
{
"mcpServers": {
"bitbucket": {
"command": "node",
"args": ["/path/to/bitbucket-server/build/index.js"],
"env": {
"BITBUCKET_URL": "https://your-bitbucket-server.com",
// 认证(选择一种):
// 选项1:个人访问令牌
"BITBUCKET_TOKEN": "your-access-token",
// 选项2:用户名/密码
"BITBUCKET_USERNAME": "your-username",
"BITBUCKET_PASSWORD": "your-password",
// 可选:默认项目
"BITBUCKET_DEFAULT_PROJECT": "your-default-project"
}
}
}
}
BITBUCKET_URL(必需):您的Bitbucket Server实例的基本URLBITBUCKET_TOKEN:个人访问令牌BITBUCKET_USERNAME 和 BITBUCKET_PASSWORD:基本认证凭据BITBUCKET_DEFAULT_PROJECT(可选):未在工具调用中指定时使用的默认项目键BITBUCKET_DIFF_MAX_LINES_PER_FILE(可选):diff中每个文件的默认最大行数。设置以防止大型文件产生过多输出。可以在 get_diff 调用中通过 maxLinesPerFile 参数覆盖。BITBUCKET_READ_ONLY(可选):设置为 true 启用只读模式注意:有了新的可选项目支持,现在可以:
BITBUCKET_DEFAULT_PROJECT 以默认情况下与特定项目一起工作list_projects 发现可用项目list_repositories 跨项目浏览仓库project 参数来覆盖默认项目服务器支持只读模式,适用于您希望防止对Bitbucket仓库进行任何修改的部署。启用后,只有安全的非修改操作可用。
启用只读模式:设置环境变量 BITBUCKET_READ_ONLY=true
只读模式下的可用工具:
list_projects - 浏览和列出项目list_repositories - 浏览和列出仓库get_pull_request - 查看拉取请求详情get_diff - 查看代码更改和diffget_reviews - 查看审查历史和状态get_activities - 查看拉取请求时间线get_comments - 查看拉取请求评论search - 跨仓库搜索代码和文件get_file_content - 读取文件内容browse_repository - 浏览仓库结构只读模式下禁用的工具:
create_pull_request - 创建新的拉取请求merge_pull_request - 合并拉取请求decline_pull_request - 拒绝拉取请求add_comment - 向拉取请求添加评论行为:
BITBUCKET_READ_ONLY 未设置或设置为任何非 true 的值时,所有工具正常运行(向后兼容)BITBUCKET_READ_ONLY=true 时,写入操作被过滤掉,如果调用则返回错误