Bitbucket Server MCP
Bitbucket Server MCP
用于 Bitbucket Server 拉取请求管理的 MCP (Model Context Protocol) 服务器。该服务器提供工具和资源,通过 MCP 协议与 Bitbucket Server API 进行交互。
✨ 新功能
🔧 自定义 HTTP 请求头: 通过
BITBUCKET_CUSTOM_HEADERS环境变量为所有请求添加自定义请求头(适用于零信任令牌或代理)📋 PR 发现: 使用
list_pull_requests按状态、作者或方向列出并筛选拉取请求(修复 #14)🌿 分支管理: 使用
list_branches列出分支(支持默认分支检测),使用delete_branch删除已合并的分支📝 提交历史: 使用
list_commits浏览提交历史(支持分支和作者筛选)✅ PR 批准: 使用
approve_pull_request和unapprove_pull_request批准或取消批准拉取请求🔍 高级搜索: 使用
search工具在存储库中搜索代码和文件(支持项目/存储库筛选)📄 文件操作: 使用
get_file_content和browse_repository读取文件内容并浏览存储库目录💬 评论管理: 使用
get_comments工具提取并筛选 PR 评论🔍 项目发现: 使用
list_projects列出所有可访问的 Bitbucket 项目📁 存储库浏览: 使用
list_repositories探索跨项目的存储库🔧 灵活的项目支持: 使默认项目成为可选 - 可按命令指定或使用
BITBUCKET_DEFAULT_PROJECT📖 增强的文档: 改进了 README,包含使用示例和更好的配置指南
Related MCP server: Bitbucket MCP Server
要求
Node.js >= 16
安装
通过 Smithery 安装
通过 Smithery 自动为 Claude Desktop 安装 Bitbucket Server:
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 和元数据。
使用场景:
为其他操作查找存储库 slug
探索跨项目的代码库结构
发现您有权访问的存储库
浏览特定项目的存储库
参数:
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: 审查者用户名数组sourceProject: 源存储库的项目键(用于来自 fork 的跨存储库 PR)sourceRepository: 源存储库的 slug(用于来自 fork 的跨存储库 PR)includeDefaultReviewers: 自动获取并包含为目标分支配置的默认审查者(默认:true)
update_pull_request
安全更新拉取请求:修改现有拉取请求的标题、描述或审查者,而不会丢失任何元数据。使用读-改-写模式来保留所有未明确更改的字段。
使用场景:
创建后修复 PR 标题或描述
添加或替换审查者而不丢失现有审查者
更新 PR 元数据而不影响批准状态
参数:
project: Bitbucket 项目键(可选,如果未提供则使用 BITBUCKET_DEFAULT_PROJECT)repository(必需): 存储库 slugprId(必需): 要更新的拉取请求 IDtitle: 新标题(如果省略,则保留当前标题)description: 新描述(如果省略,则保留当前描述)reviewers: 作为用户名数组的新审查者列表(如果省略,则保留当前审查者)
get_pull_request
全面的 PR 信息:检索详细的拉取请求信息,包括状态、审查者、提交和所有元数据。对于在采取行动前了解 PR 状态至关重要。
使用场景:
检查 PR 批准状态
审查 PR 详细信息和进度
在合并前了解更改
监控 PR 状态
参数:
project: Bitbucket 项目键(可选,如果未提供则使用 BITBUCKET_DEFAULT_PROJECT)repository(必需): 存储库 slugprId(必需): 拉取请求 ID
merge_pull_request
集成已批准的更改:将已批准的拉取请求合并到目标分支。支持根据您的工作流偏好选择不同的合并策略。
使用场景:
完成代码审查流程
集成已批准的功能
将错误修复应用到主分支
发布代码更改
参数:
project: Bitbucket 项目键(可选,如果未提供则使用 BITBUCKET_DEFAULT_PROJECT)repository(必需): 存储库 slugprId(必需): 拉取请求 IDmessage: 自定义合并提交消息strategy: 合并策略:merge-commit(默认): 创建保留历史记录的合并提交squash: 将所有提交合并为一个fast-forward: 移动分支指针而不创建合并提交
decline_pull_request
拒绝不合适的更改:拒绝不应合并的拉取请求,并向作者提供反馈。
使用场景:
拒绝不符合标准的更改
关闭与项目方向冲突的 PR
请求重大返工
防止不需要的代码集成
参数:
project: Bitbucket 项目键(可选,如果未提供则使用 BITBUCKET_DEFAULT_PROJECT)repository(必需): 存储库 slugprId(必需): 拉取请求 IDmessage: 拒绝原因(有助于作者反馈)
add_comment
参与代码审查:向拉取请求添加评论以进行审查反馈、讨论和协作。支持线程化对话。
使用场景:
提供代码审查反馈
询问有关特定更改的问题
建议改进
参与技术讨论
记录审查决定
参数:
project: Bitbucket 项目键(可选,如果未提供则使用 BITBUCKET_DEFAULT_PROJECT)repository(必需): 存储库 slugprId(必需): 拉取请求 IDtext(必需): 评论内容(支持 Markdown)parentId: 用于线程化回复的父评论 IDstate: 评论状态:OPEN(默认,立即发布)或PENDING(草稿,仅在审查发布前对您可见)
get_diff
分析代码更改:检索代码差异,准确显示拉取请求中添加、删除或修改的内容。支持按文件截断以有效管理大型差异。
使用场景:
审查特定代码更改
了解修改范围
在合并前分析影响
检查实现细节
代码质量评估
处理大文件而不产生过多的输出
参数:
project: Bitbucket 项目键(可选,如果未提供则使用 BITBUCKET_DEFAULT_PROJECT)repository(必需): 存储库 slugprId(必需): 拉取请求 IDcontextLines: 更改周围的上下文行数(默认:10)maxLinesPerFile: 每个文件显示的最大行数(可选,如果未指定则使用 BITBUCKET_DIFF_MAX_LINES_PER_FILE 环境变量,设置为 0 表示无限制)
大文件处理:
当文件超过 maxLinesPerFile 限制时,它会显示:
文件头和元数据(始终保留)
从开头开始允许行数的 60%
带有文件统计信息的截断消息
从结尾开始允许行数的 40%
关于如何查看完整差异的清晰指示
get_reviews
跟踪审查进度:获取审查历史、批准状态和审查者反馈,以了解审查状态。
使用场景:
检查 PR 是否准备好合并
查看谁审查了更改
了解审查反馈
监控批准要求
跟踪审查进度
get_activities
检索拉取请求活动:获取拉取请求的完整活动时间线,包括评论、审查、提交和其他事件。
使用场景:
阅读评论讨论和反馈
审查完整的 PR 时间线
跟踪从 PR 添加/删除的提交
查看批准和审查历史
了解完整的 PR 生命周期
参数:
project: Bitbucket 项目键(可选,如果未提供则使用 BITBUCKET_DEFAULT_PROJECT)repository(必需): 存储库 slugprId(必需): 拉取请求 ID
get_comments
仅提取 PR 评论:筛选拉取请求活动以仅返回评论,从而更容易专注于讨论内容,而无需审查或其他活动。
使用场景:
阅读 PR 讨论线程
提取反馈和问题
专注于评论内容而无干扰
分析对话流程
参数:
project: Bitbucket 项目键(可选,如果未提供则使用 BITBUCKET_DEFAULT_PROJECT)repository(必需): 存储库 slugprId(必需): 拉取请求 ID
search
高级代码和文件搜索:使用 Bitbucket 搜索 API 在存储库中进行搜索,支持项目/存储库筛选和查询优化。同时搜索文件内容和文件名。注意:搜索仅适用于存储库的默认分支。
使用场景:
在项目中查找特定代码模式
按名称或内容定位文件
在特定项目或存储库中搜索
按文件扩展名筛选
参数:
query(必需): 搜索查询字符串project: 用于限制搜索范围的 Bitbucket 项目键repository: 用于特定存储库搜索的存储库 slugtype: 查询优化 - "file"(将查询用引号括起来以进行精确文件名匹配)或 "code"(默认搜索行为)limit: 返回的结果数量(默认:25,最大:100)start: 分页的起始索引(默认:0)
查询语法示例:
"README.md"- 查找精确文件名config ext:yml- 在 YAML 文件中查找配置function project:MYPROJECT- 在特定项目中搜索 "function"bug fix repo:PROJ/my-repo- 在特定存储库中搜索
get_file_content
分页读取文件内容:通过分页检索存储库中特定文件的内容,支持大文件。
使用场景:
读取源代码文件
查看配置文件
提取文档内容
检查特定文件版本
参数:
project: Bitbucket 项目键(可选,如果未提供则使用 BITBUCKET_DEFAULT_PROJECT)repository(必需): 存储库 slugfilePath(必需): 存储库中的文件路径branch: 分支或提交哈希(可选,默认为 main/master)limit: 每个请求的最大行数(默认:100,最大:1000)start: 分页的起始行号(默认:0)
browse_repository
探索存储库结构:浏览存储库中的文件和目录,以了解项目组织并定位特定文件。
使用场景:
探索存储库结构
导航目录树
查找文件和文件夹
了解项目组织
参数:
project: Bitbucket 项目键(可选,如果未提供则使用 BITBUCKET_DEFAULT_PROJECT)repository(必需): 存储库 slugpath: 要浏览的目录路径(可选,默认为根目录)branch: 分支或提交哈希(可选,默认为 main/master)limit: 返回的最大项目数(默认:50)
list_pull_requests
发现并筛选拉取请求:列出存储库中的拉取请求,支持按状态、作者和方向筛选。返回 PR 元数据,包括标题、作者、分支、审查者和状态。
使用场景:
查找存储库中的打开 PR
列出您自己的拉取请求
查看等待审查的 PR
获取已合并或已拒绝 PR 的概览
监控项目中的 PR 活动
参数:
project: Bitbucket 项目键(可选,如果未提供则使用 BITBUCKET_DEFAULT_PROJECT)repository(必需): 存储库 slugstate: 按 PR 状态筛选 —OPEN(默认)、MERGED、DECLINED或ALLauthor: 按作者用户名筛选(精确匹配)direction:INCOMING(针对此存储库的 PR,默认)或OUTGOING(来自此存储库的 PR)limit: 返回的 PR 数量(默认:25,最大:1000)start: 分页的起始索引(
Available Tools
15 toolsadd_commentA
Add a comment to a pull request for code review, feedback, questions, or discussion. Use this to provide review feedback, ask questions about specific changes, suggest improvements, or participate in code review discussions. Supports threaded conversations.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. | |
| repository | Yes | Repository slug containing the pull request. | |
| prId | Yes | Pull request ID to comment on. | |
| text | Yes | Comment text content. Supports Markdown formatting for code blocks, links, and emphasis. | |
| parentId | No | ID of parent comment to reply to. Omit for top-level comments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool supports 'threaded conversations' (via parentId) and Markdown formatting, which is useful behavioral context. However, it lacks details on permissions, rate limits, or response format that would be important for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by specific use cases and a key feature ('Supports threaded conversations'). Every sentence adds value with zero waste, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is moderately complete for a mutation tool. It covers the purpose and usage well but lacks details on behavioral aspects like authentication needs, error handling, or what the tool returns, which are gaps for a tool that modifies data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, such as explaining how 'parentId' enables threading or formatting details for 'text'. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Add a comment') and resource ('to a pull request'), with explicit purposes like 'code review, feedback, questions, or discussion'. It distinguishes from sibling tools like 'get_comments' (which retrieves) and 'add_comment_inline' (which likely adds inline comments).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('provide review feedback, ask questions about specific changes, suggest improvements, or participate in code review discussions'), but does not explicitly state when not to use it or name alternatives like 'add_comment_inline' for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_comment_inlineA
Add an inline comment (to specific lines) to the diff of a pull request for code review, feedback, questions, or discussion. Use this to provide review feedback, ask questions about specific changes, suggest improvements, or participate in code review discussions. Supports threaded conversations.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. | |
| repository | Yes | Repository slug containing the pull request. | |
| prId | Yes | Pull request ID to comment on. | |
| text | Yes | Comment text content. Supports Markdown formatting for code blocks, links, and emphasis. | |
| parentId | No | ID of parent comment to reply to. Omit for top-level comments. | |
| filePath | Yes | Path to the file in the repository where the comment should be added (e.g., "src/main.py", "README.md"). | |
| line | Yes | Line number in the file to attach the comment to (1-based). | |
| lineType | Yes | Type of change the comment is associated with: ADDED for additions, REMOVED for deletions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool 'supports threaded conversations' and implies mutation ('Add'), but does not disclose other behavioral traits such as required permissions, rate limits, or what happens on success/failure. This leaves gaps for a mutation tool, though the purpose is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the first sentence covering the core purpose and the second adding usage context. Every sentence adds value without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with 8 parameters and no annotations or output schema, the description is somewhat complete but lacks details on behavioral aspects like error handling or response format. It covers purpose and usage well but misses deeper contextual information needed for full agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all 8 parameters. The description does not add any parameter-specific details beyond what the schema provides, such as examples or edge cases. This meets the baseline of 3, as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Add an inline comment'), target resource ('to the diff of a pull request'), and purpose ('for code review, feedback, questions, or discussion'). It distinguishes from the sibling 'add_comment' by specifying 'inline comment (to specific lines)' and mentions threaded conversations, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('to provide review feedback, ask questions about specific changes, suggest improvements, or participate in code review discussions'), which gives clear context. However, it does not mention when not to use it or explicitly name alternatives like 'add_comment' for non-inline comments, which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browse_repositoryA
Browse and list files and directories in a Bitbucket repository. Use this to explore repository structure, find files, or navigate directories.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. | |
| repository | Yes | Repository slug to browse. | |
| path | No | Directory path to browse (empty or "/" for root directory). | |
| branch | No | Branch or commit hash to browse (defaults to main/master branch if not specified). | |
| limit | No | Maximum number of items to return (default: 50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the tool's purpose, it lacks details on behavioral traits such as pagination behavior (implied by the 'limit' parameter but not explained), error handling, authentication requirements, or rate limits. This is a significant gap for a tool with multiple parameters and no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with two concise sentences that directly state the tool's purpose and usage context. Every sentence earns its place without redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and usage but lacks behavioral details (e.g., output format, error cases) that would help an agent use it effectively. Without annotations or an output schema, more context is needed for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description does not add any additional meaning or context beyond what the schema provides (e.g., it doesn't explain parameter interactions or default values beyond the schema). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('browse and list') and resources ('files and directories in a Bitbucket repository'). It distinguishes this from sibling tools like 'get_file_content' (which retrieves content) or 'search' (which searches across repositories) by focusing on structural exploration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('to explore repository structure, find files, or navigate directories'), but it does not explicitly state when not to use it or name specific alternatives. For example, it doesn't clarify that 'get_file_content' should be used for reading file contents instead of this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pull_requestA
Create a new pull request to propose code changes, request reviews, or merge feature branches. Use this when you want to submit code for review, merge a feature branch, or contribute changes to a repository. Automatically sets up branch references and can assign reviewers.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. Use list_projects to discover available projects. | |
| repository | Yes | Repository slug where the pull request will be created. Use list_repositories to find available repositories. | |
| title | Yes | Clear, descriptive title for the pull request that summarizes the changes. | |
| description | No | Detailed description of changes, context, and any relevant information for reviewers. Supports Markdown formatting. | |
| sourceBranch | Yes | Source branch name containing the changes to be merged (e.g., "feature/new-login", "bugfix/security-patch"). | |
| targetBranch | Yes | Target branch where changes will be merged (e.g., "main", "develop", "release/v1.2"). | |
| reviewers | No | Array of Bitbucket usernames to assign as reviewers for this pull request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context about automatically setting up branch references and assigning reviewers, but lacks details on permissions required, error conditions, rate limits, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences that front-load the core purpose and usage context. Every sentence adds value, though it could be slightly more concise by combining some clauses without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 parameters, no annotations, and no output schema, the description is moderately complete. It covers purpose and basic usage but lacks details on behavioral outcomes, error handling, or return values. Given the complexity and absence of structured safety/behavioral data, it should provide more guidance on what to expect after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description does not add any parameter-specific information beyond what's in the schema, such as formatting examples or constraints not captured in schema descriptions. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('create a new pull request') and resources ('code changes', 'feature branches'), distinguishing it from siblings like 'merge_pull_request' or 'decline_pull_request' by focusing on creation rather than modification or review actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('when you want to submit code for review, merge a feature branch, or contribute changes'), but does not explicitly state when NOT to use it or name specific alternatives among siblings like 'merge_pull_request' for merging without creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decline_pull_requestA
Decline or reject a pull request that should not be merged. Use this when changes are not acceptable, conflicts with project direction, or when the PR needs significant rework. This closes the PR without merging.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. | |
| repository | Yes | Repository slug containing the pull request. | |
| prId | Yes | Pull request ID to decline. | |
| message | No | Reason for declining the pull request. Helps the author understand why it was rejected. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the action 'declines or rejects' and 'closes the PR without merging,' which implies a destructive mutation. However, it lacks details on permissions required, whether the action is reversible, or any rate limits. It adds some behavioral context but is incomplete for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and usage guidelines in two concise sentences. Every sentence earns its place by clarifying purpose, when to use, and the outcome, with no wasted words. It is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is moderately complete. It covers purpose and usage well but lacks details on behavioral aspects like permissions or reversibility. For a mutation tool with 4 parameters and no structured safety hints, it should provide more context on risks or requirements, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description does not add any additional meaning or syntax details beyond what the schema provides. It mentions a 'reason for declining' which aligns with the 'message' parameter but doesn't elaborate further. Baseline 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('decline or reject a pull request') and resource ('pull request'), distinguishing it from siblings like 'merge_pull_request' by specifying it 'closes the PR without merging.' It avoids tautology by explaining the outcome rather than just restating the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'when changes are not acceptable, conflicts with project direction, or when the PR needs significant rework.' It also distinguishes from alternatives by noting it 'closes the PR without merging,' contrasting with 'merge_pull_request.' This provides clear context and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_activitiesB
Retrieve all activities for a pull request including comments, reviews, commits, and other timeline events. Use this to get the complete activity history and timeline of the pull request.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. | |
| repository | Yes | Repository slug containing the pull request. | |
| prId | Yes | Pull request ID to get activities for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes what the tool retrieves but doesn't disclose behavioral traits like whether this is a read-only operation (implied by 'retrieve'), potential rate limits, authentication requirements, pagination behavior, or what happens if parameters are invalid. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences that efficiently convey the purpose and usage without wasted words. It's front-loaded with the core functionality and follows with the intended use case. However, the second sentence could be slightly more concise by integrating with the first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides basic purpose and usage but lacks details on behavioral aspects (e.g., safety, performance) and output format. For a tool with 3 parameters and sibling tools offering overlapping functionality, more context on differentiation and operational traits would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain relationships between parameters or provide usage examples). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and resource 'activities for a pull request' with specific examples of what's included (comments, reviews, commits, timeline events). It distinguishes from siblings like get_comments or get_reviews by mentioning it retrieves 'all activities' including those elements, but doesn't explicitly contrast with get_pull_request which might also provide some activity information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance by stating 'Use this to get the complete activity history and timeline,' suggesting this is for comprehensive historical data rather than specific subsets. However, it doesn't explicitly state when to use this versus alternatives like get_comments (for just comments) or get_pull_request (which might include some activity data), nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commentsA
Retrieve only the comments from a pull request. Use this when you specifically want to read the discussion and feedback comments without other activities like reviews or commits.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. | |
| repository | Yes | Repository slug containing the pull request. | |
| prId | Yes | Pull request ID to get comments for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It correctly indicates this is a read operation ('retrieve'), but doesn't mention authentication requirements, rate limits, pagination behavior, or error conditions. The description is accurate but lacks comprehensive behavioral context needed for a read-only tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each earn their place. The first sentence states the core purpose, and the second provides essential usage guidance. There's zero waste or redundancy, and it's front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with 3 parameters, 100% schema coverage, but no output schema or annotations, the description provides adequate purpose and usage guidance but lacks information about return values, error handling, or authentication. The agent knows what the tool does and when to use it, but not what to expect from the operation or potential constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides about project, repository, and prId. It correctly implies these parameters are needed but doesn't elaborate on their semantics, format, or relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('retrieve') and resource ('comments from a pull request'), and distinguishes it from siblings by specifying 'only the comments' and contrasting with 'other activities like reviews or commits'. This provides precise differentiation from tools like get_activities or get_reviews.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('when you specifically want to read the discussion and feedback comments') and when not to use it ('without other activities like reviews or commits'), providing clear alternatives. This gives the agent perfect guidance on tool selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diffA
Retrieve the code differences (diff) for a pull request showing what lines were added, removed, or modified. Use this to understand the scope of changes, review specific code modifications, or analyze the impact of proposed changes before merging.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. | |
| repository | Yes | Repository slug containing the pull request. | |
| prId | Yes | Pull request ID to get diff for. | |
| contextLines | No | Number of context lines to show around changes (default: 10). Higher values provide more surrounding code context. | |
| maxLinesPerFile | No | Maximum number of lines to show per file (default: uses BITBUCKET_DIFF_MAX_LINES_PER_FILE env var). Set to 0 for no limit. Prevents large files from overwhelming the diff output. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool returns ('code differences showing what lines were added, removed, or modified') and the purpose of those differences. However, it doesn't mention important behavioral aspects like whether this is a read-only operation (implied but not stated), potential rate limits, authentication requirements, or what format the diff is returned in (unified diff, JSON, etc.).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with two sentences. The first sentence states the core purpose, and the second provides usage context. Every sentence earns its place by adding value - no redundant or vague language. It's appropriately sized for a tool with 5 parameters and good schema documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, 100% schema coverage, but no annotations and no output schema, the description is adequate but has gaps. It explains the purpose and usage context well, but doesn't address the output format or behavioral constraints that would be important for an agent to use this tool effectively. The absence of output schema means the description should ideally mention what format the diff is returned in.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions 'diff' generally but doesn't explain how parameters like contextLines or maxLinesPerFile affect the output format. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('retrieve', 'show') and resource ('code differences for a pull request'). It distinguishes this tool from siblings like get_pull_request (which likely returns metadata) or get_file_content (which retrieves file contents rather than diffs). The description explicitly mentions what the diff shows: 'lines were added, removed, or modified'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: 'to understand the scope of changes, review specific code modifications, or analyze the impact of proposed changes before merging.' This gives the agent specific scenarios for invocation. However, it doesn't explicitly state when NOT to use this tool or mention alternatives like get_pull_request for high-level information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_contentA
Retrieve the content of a specific file from a Bitbucket repository with pagination support. Use this to read source code, configuration files, documentation, or any text-based files. For large files, use start parameter to paginate through content.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. | |
| repository | Yes | Repository slug containing the file. | |
| filePath | Yes | Path to the file in the repository (e.g., "src/main.py", "README.md", "config/settings.json"). | |
| branch | No | Branch or commit hash to read from (defaults to main/master branch if not specified). | |
| limit | No | Maximum number of lines to return per request (default: 100, max: 1000). | |
| start | No | Starting line number for pagination (0-based, default: 0). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the core functionality (retrieving file content) and mentions pagination behavior for large files, which is useful context. However, it doesn't cover other important behavioral aspects like error conditions (e.g., file not found), authentication requirements, rate limits, or response format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly sized and front-loaded: the first sentence states the core purpose, the second provides usage context, and the third offers specific guidance for edge cases (large files). Every sentence earns its place with zero wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read operation with 6 parameters and no output schema, the description provides adequate but incomplete coverage. It explains the what and when-to-use well, but lacks details about return values, error handling, and authentication requirements that would be helpful given the tool's complexity and absence of both annotations and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds minimal value beyond the schema by mentioning the 'start' parameter for pagination and implying text-based file usage, but doesn't provide additional syntax, format, or constraint details that aren't already in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Retrieve the content'), resource ('a specific file from a Bitbucket repository'), and scope ('with pagination support'). It distinguishes this tool from siblings like 'browse_repository' (which likely lists files) or 'get_diff' (which compares changes) by focusing on reading file contents directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool ('to read source code, configuration files, documentation, or any text-based files') and includes an explicit alternative for large files ('use start parameter to paginate'). However, it doesn't explicitly state when NOT to use it or compare it to all sibling tools (e.g., vs. 'get_diff' for file comparisons).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pull_requestA
Retrieve comprehensive details about a specific pull request including status, reviewers, commits, and metadata. Use this to check PR status, review progress, understand changes, or gather information before performing actions like merging or commenting.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. | |
| repository | Yes | Repository slug containing the pull request. | |
| prId | Yes | Unique pull request ID number (e.g., 123, 456). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It implies a read-only operation through verbs like 'retrieve' and 'check,' but doesn't explicitly state permission requirements, rate limits, or error behaviors. It adds some context about the scope of returned data but lacks details on pagination or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the purpose and scope, the second provides usage guidelines. Every phrase adds value without redundancy, making it appropriately sized and front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read operation with 3 parameters, 100% schema coverage, and no output schema, the description provides adequate purpose and usage context. However, without annotations or output schema, it lacks details on return format, error handling, or authentication needs, leaving some gaps for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, maintaining the baseline score of 3 for adequate but not enhanced parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and resource 'pull request' with specific details included ('comprehensive details about a specific pull request including status, reviewers, commits, and metadata'). It distinguishes from siblings like get_comments or get_diff by emphasizing comprehensive details rather than specific aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('to check PR status, review progress, understand changes, or gather information before performing actions like merging or commenting'), which helps differentiate it from write-oriented siblings like merge_pull_request. However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reviewsA
Fetch the review history and approval status of a pull request. Use this to check who has reviewed the PR, see approval status, understand review feedback, or determine if the PR is ready for merging based on review requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. | |
| repository | Yes | Repository slug containing the pull request. | |
| prId | Yes | Pull request ID to get reviews for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the tool's purpose and what information it returns (review history, approval status, feedback, merge readiness), but lacks details on behavioral traits like error handling, rate limits, authentication needs, or response format. It's adequate but has gaps for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by specific use cases. It uses two concise sentences with zero wasted words, efficiently covering key aspects without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description adequately explains the tool's purpose and usage context. However, it lacks details on return values (e.g., format of review data), error conditions, or prerequisites, which would be helpful for completeness in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters. The description does not add any parameter-specific information beyond what the schema provides, such as examples or constraints. Baseline 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('fetch') and resource ('review history and approval status of a pull request'), with explicit purposes like checking reviewers, approval status, feedback, and merge readiness. It distinguishes from siblings like get_pull_request (general PR info) or get_comments (comments only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('to check who has reviewed... see approval status... determine if ready for merging'), but does not explicitly state when not to use it or name alternatives. It implies usage for review-related queries rather than general PR info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsA
Discover and list all Bitbucket projects you have access to. Use this first to explore available projects, find project keys, or when you need to work with a specific project but don't know its exact key. Returns project keys, names, descriptions and visibility settings.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of projects to return (default: 25, max: 1000) | |
| start | No | Start index for pagination (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format ('Returns project keys, names, descriptions and visibility settings') which is valuable, but doesn't mention authentication requirements, rate limits, error conditions, or pagination behavior beyond what's implied by the parameters. It adequately covers the core behavior but lacks comprehensive operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with two sentences that each serve distinct purposes: the first states the core functionality, the second provides usage guidance and return format. There's no wasted language, and key information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with 2 parameters, 100% schema coverage, and no output schema, the description provides good context about purpose, usage scenarios, and return format. However, without annotations or output schema, it could benefit from more detail about authentication, error handling, or pagination behavior to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters (limit and start). The description doesn't add any parameter-specific information beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Discover and list'), resource ('all Bitbucket projects'), and scope ('you have access to'), distinguishing it from sibling tools like list_repositories or search. It provides a comprehensive purpose statement that goes beyond a simple tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Use this first to explore available projects, find project keys, or when you need to work with a specific project but don't know its exact key.' It provides clear context for usage scenarios, though it doesn't explicitly mention when NOT to use it or name specific alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_repositoriesB
Browse and discover repositories within a specific project or across all accessible projects. Use this to find repository slugs, explore codebases, or understand the repository structure. Returns repository names, slugs, clone URLs, and project associations.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key to list repositories from. If omitted, uses BITBUCKET_DEFAULT_PROJECT or lists all accessible repositories across projects. | |
| limit | No | Number of repositories to return (default: 25, max: 1000) | |
| start | No | Start index for pagination (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions what the tool returns ('repository names, slugs, clone URLs, and project associations'), which is helpful. However, it doesn't disclose important behavioral traits such as whether this is a read-only operation (implied but not stated), pagination behavior (hinted at by 'limit' and 'start' parameters but not explained in description), authentication requirements, rate limits, or error conditions. For a tool with no annotations, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with three sentences that are front-loaded with the core purpose. Each sentence adds value: the first states what the tool does, the second provides usage context, and the third describes the return values. There's minimal waste, though it could be slightly more structured (e.g., separating purpose from usage more clearly).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is partially complete. It covers the purpose, usage hints, and return values, but lacks details on behavioral aspects like pagination, authentication, or error handling. With no output schema, the description's mention of return values is helpful, but it doesn't fully compensate for the missing annotations and behavioral context. It's adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing clear documentation for all three parameters ('project', 'limit', 'start'). The description adds no additional parameter-specific information beyond what's in the schema. According to the rules, when schema_description_coverage is high (>80%), the baseline score is 3 even with no param info in the description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Browse and discover repositories within a specific project or across all accessible projects.' It specifies the verb ('browse and discover') and resource ('repositories'), and mentions the scope ('specific project or across all accessible projects'). However, it doesn't explicitly differentiate from sibling tools like 'browse_repository' or 'list_projects', which would be needed for a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating 'Use this to find repository slugs, explore codebases, or understand the repository structure,' which suggests when this tool might be appropriate. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'browse_repository' or 'list_projects', nor does it mention any exclusions or prerequisites. The guidance is present but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_pull_requestA
Merge an approved pull request into the target branch. Use this when a PR has been reviewed, approved, and is ready to be integrated. Choose the appropriate merge strategy based on your team's workflow and repository history preferences.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Bitbucket project key. If omitted, uses BITBUCKET_DEFAULT_PROJECT environment variable. | |
| repository | Yes | Repository slug containing the pull request. | |
| prId | Yes | Pull request ID to merge. | |
| message | No | Custom merge commit message. If not provided, uses default merge message format. | |
| strategy | No | Merge strategy: "merge-commit" creates a merge commit preserving branch history, "squash" combines all commits into one, "fast-forward" moves the branch pointer without creating a merge commit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clearly indicates this is a write/mutation operation ('merge'), but doesn't disclose permissions needed, whether the merge is reversible, rate limits, or what happens on failure. It mentions strategy selection but doesn't explain default behavior if strategy is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences with zero waste. First sentence states purpose and prerequisites, second provides strategic guidance. Every word earns its place, and the most critical information (what it does and when to use it) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description does well on purpose and guidelines but lacks behavioral details about permissions, reversibility, error conditions, or return values. Given the complexity of merging code changes, more transparency about what happens during execution would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, but doesn't need to since schema coverage is complete. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('merge'), the resource ('an approved pull request'), and the outcome ('into the target branch'). It distinguishes this tool from siblings like 'decline_pull_request' or 'create_pull_request' by focusing on the final integration step after approval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool: 'when a PR has been reviewed, approved, and is ready to be integrated.' It also provides guidance on choosing the merge strategy based on team workflow and repository history, offering contextual decision-making criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchA
Search for code or files across repositories. Use this to find specific code patterns, file names, or content within projects and repositories. Searches both file contents and filenames. Supports filtering by project, repository, and query optimization.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query string to look for in code or file names. | |
| project | No | Bitbucket project key to limit search scope. If omitted, searches across accessible projects. | |
| repository | No | Repository slug to limit search to a specific repository within the project. | |
| type | No | Query optimization: "file" wraps query in quotes for exact filename matching, "code" uses default search behavior. Both search file contents and filenames. | |
| limit | No | Number of results to return (default: 25, max: 100) | |
| start | No | Start index for pagination (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool does (searching code/files across repositories) and mentions filtering capabilities, but doesn't address important behavioral aspects like authentication requirements, rate limits, error conditions, or what the response format looks like. The description provides basic operational context but misses key behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with three sentences that each add value. It's front-loaded with the core purpose, followed by usage context and capabilities. While efficient, the third sentence could be slightly more structured by separating the filtering and optimization aspects more clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 6 parameters, no annotations, and no output schema, the description provides adequate context about what the tool does but lacks important completeness elements. It doesn't describe the return format, result structure, pagination behavior, or error handling. The description covers the 'what' but misses the 'what comes back' and operational constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description mentions 'filtering by project, repository, and query optimization' which aligns with parameters but doesn't add significant meaning beyond what the schema provides. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('search for code or files') and resources ('across repositories'), distinguishing it from sibling tools like browse_repository or get_file_content. It explicitly mentions searching both file contents and filenames, providing a comprehensive scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('to find specific code patterns, file names, or content within projects and repositories'), but doesn't explicitly mention when not to use it or name specific alternatives among the sibling tools. It implies usage for search tasks but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but there is some overlap between 'get_activities' and 'get_comments'/'get_reviews', as activities include comments and reviews. The descriptions clarify the differences, but an agent might initially confuse these for similar data retrieval tasks. Other tools like 'add_comment' vs. 'add_comment_inline' are well-differentiated by their inline specificity.
All tool names follow a consistent verb_noun pattern with snake_case, such as 'add_comment', 'create_pull_request', and 'list_repositories'. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions across the 15 tools.
With 15 tools, the count is well-scoped for a Bitbucket server, covering core operations like pull request management, repository browsing, commenting, and searching. Each tool serves a clear purpose without redundancy, aligning with the domain's typical needs for version control and collaboration.
The tool set provides comprehensive coverage for Bitbucket operations, including full CRUD/lifecycle for pull requests (create, get, merge, decline), repository exploration (browse, list, get content), commenting (add, get), and advanced features like diff viewing and search. No obvious gaps exist; agents can handle end-to-end workflows without dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
A Model Context Protocol (MCP) application for automated GitHub PR analysis and issue management.…
Create, deploy, and operate MCP servers directly from your GitHub repositories.
MCP Server for JFrog, providing tools for development and artifact management.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that enables interaction with Bitbucket repositories through the Model Context Protocol, supporting both Bitbucket Cloud and Server with features for PR lifecycle management and code review.195,23427MIT
- AlicenseBqualityDmaintenanceAn MCP server that provides tools for interacting with the Bitbucket API, supporting both Bitbucket Cloud and Bitbucket Server, enabling pull request, branch, file, code review, and search operations.195,234MIT
- AlicenseBqualityBmaintenanceMCP server for Bitbucket Server integration, enabling project, repository, pull request, source code, branch, and code review operations via the Bitbucket Server APIs.2713MIT
- AlicenseNot gradedqualityCmaintenanceEnables interaction with Bitbucket Cloud REST API 2.0, supporting pull requests, pipelines, logs, and repository cloning through MCP tools.36MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/garc33/bitbucket-server-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server