Bitbucket MCP
Provides tools for interacting with Bitbucket Cloud, focusing on pull request review workflows including listing repositories, pull requests, diffs, comments, commits, exploring file trees, and performing actions like commenting, approving, or requesting changes on pull requests.
bitbucket-mcp
English · Português (BR)
MCP server for Bitbucket Cloud, focused on the first pass of pull-request review. stdio transport, for use with Claude Code or Claude Desktop.
Why an API token (and not an app password)
Bitbucket Cloud app passwords have been in brownout since 2026-06-09 and are removed on 2026-07-28. This server uses an API token, and the HTTP Basic pair is email:token — the Bitbucket REST API requires the Atlassian account email, not the username. Using the username results in a silent 401.
Related MCP server: bitbucket-mcp-server
1. Create the API token
Bitbucket top bar → Settings → Atlassian account settings → Security.
Create and manage API tokens → Create API token with scopes.
Name it, set an expiry, and select Bitbucket as the app.
Minimum scopes for PR review:
read:repository:bitbucket(read repositories, diffs, files)read:pullrequest:bitbucket(read PRs and comments)write:pullrequest:bitbucket(comment, approve, request changes)
Copy the token (shown only once).
2. Install and build
npm install
npm run buildThis generates dist/index.js (the server binary).
3. Configure in Claude Code
Add this to the project's .mcp.json (or to your global Claude Code config):
{
"mcpServers": {
"bitbucket": {
"command": "node",
"args": ["/absolute/path/to/bitbucket-mcp/dist/index.js"],
"env": {
"BITBUCKET_EMAIL": "your-email@domain.com",
"BITBUCKET_API_TOKEN": "your_api_token",
"BITBUCKET_WORKSPACE": "your_workspace"
}
}
}
}Alternative, via the CLI:
claude mcp add bitbucket \
-e BITBUCKET_EMAIL=your-email@domain.com \
-e BITBUCKET_API_TOKEN=your_api_token \
-e BITBUCKET_WORKSPACE=your_workspace \
-- node /absolute/path/to/bitbucket-mcp/dist/index.jsBITBUCKET_WORKSPACE is optional; if omitted, each tool must be given workspace explicitly.
Tools
Read (no side effects):
Tool | Purpose |
| Repositories in the workspace |
| PRs by state (OPEN/MERGED/DECLINED/SUPERSEDED) |
| PR metadata (description, branches, reviewers, approvals) |
| Unified diff — the basis for the review |
| Existing comments (general and inline) |
| PR commits |
| Lists the repo file tree at a commit/branch (explore the project) |
| Contents of a file (default branch if |
Write (mutate state in Bitbucket):
Tool | Purpose |
| Comment on the PR; |
| Approve the PR |
| Mark "request changes" |
Security note
The token grants read/write access to the workspace's PRs. Treat it as a secret: keep it in an environment variable / secret manager, and never commit it. For a first-pass subagent that only suggests review without mutating anything, use a read-only scoped token — that way approve/comment fail on permission rather than relying on prompt discipline.
License
MIT © José Danilo
Available Tools
11 toolsadd_pull_request_commentComment on a pull requestA
WRITE — posts a comment on the PR. Provide path and line together for an inline comment.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pull request number. | |
| line | No | Line (new side) for an inline comment. | |
| path | No | File for an inline comment. | |
| repo | Yes | Repository repo_slug. | |
| text | Yes | Comment text (markdown supported). | |
| workspace | No | Bitbucket workspace. Omit to use BITBUCKET_WORKSPACE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It identifies the action as WRITE but does not disclose whether comments are appended, edited, or potential side effects like notifications. Adequate but could add more behavioral context.
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 concise sentences: first states core purpose, second gives critical usage hint. No filler, front-loaded, each sentence earns its place.
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 simple write tool with no output schema and good schema coverage, description covers the main action and inline comment constraint. Could mention that comments are added rather than edited, but overall adequate.
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 coverage is 100%, baseline 3. Description adds value by clarifying that `path` and `line` must be used together for inline comments. No additional semantics for other parameters, but sufficiently supplements schema.
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 'posts a comment on the PR' and identifies the resource (pull request). It distinguishes from sibling tools like approve, get, list, as it focuses on adding 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?
Provides explicit guidance on when to use `path` and `line` together for inline comments. Does not describe exclusions or when not to use, but context is clear for a write tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_pull_requestApprove a pull requestB
WRITE — records the authenticated user's approval on the PR.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pull request number. | |
| repo | Yes | Repository repo_slug. | |
| workspace | No | Bitbucket workspace. Omit to use BITBUCKET_WORKSPACE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only states 'WRITE' and 'records approval.' It does not disclose permissions, reversibility, or side effects beyond the basic action.
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?
Very concise single sentence with minimal waste. The 'WRITE' prefix adds context without excess.
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?
Lacks details on return values, side effects, or prerequisites. With no output schema or annotations, the agent needs more context to reliably use this tool.
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 explains each parameter. The tool description adds no extra meaning beyond the schema.
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 ('records') and resource ('the PR'), and the title 'Approve a pull request' matches. It distinguishes from siblings like request_changes_pull_request by specifying approval action.
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?
No guidance on when to use vs alternatives like request_changes_pull_request. The agent must infer from the name and sibling list without explicit instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fileRead a file at a commitA
Reads a file's contents. If commit is omitted, uses the repository's default branch.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path within the repository. | |
| repo | Yes | Repository repo_slug. | |
| commit | No | Commit hash or branch. Omit to use the default branch. | |
| workspace | No | Bitbucket workspace. Omit to use BITBUCKET_WORKSPACE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses the default branch behavior, but lacks details on return format, permissions, or size limits, which are minimal but acceptable for a simple read.
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?
Extremely concise with just two sentences, front-loaded with the main purpose, and every sentence earns its place.
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 low complexity and absence of output schema, the description covers the core behavior adequately. It could mention return type but is sufficient for a simple read operation.
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 coverage is 100%, so the schema already describes all parameters. The description reiterates the default branch behavior already present in the schema, adding no new semantic value.
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 'Reads a file's contents' with a specific verb and resource, and it distinguishes from sibling tools like list_directory and pull request tools.
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?
Provides guidance on the commit parameter defaulting to the default branch, but does not explicitly state when to use this tool versus alternatives like list_directory for browsing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pull_requestPull request detailsA
Returns full metadata for a PR (description, branches, reviewers, state).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pull request number. | |
| repo | Yes | Repository repo_slug. | |
| workspace | No | Bitbucket workspace. Omit to use BITBUCKET_WORKSPACE. |
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 correctly indicates a read operation but does not mention error handling, authentication requirements, or any side effects. For a simple retrieval tool, this is adequate.
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 a single, concise sentence that immediately conveys the action and scope. No unnecessary words.
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 simple retrieval tool with 3 parameters and no output schema, the description sufficiently covers what the tool does and what it returns. It clearly differentiates from sibling tools that focus on specific aspects.
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 coverage is 100% with all parameters described. The tool description adds little beyond listing a few returned fields, but it does provide context that the result includes 'metadata'. Baseline 3 is appropriate.
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 'Returns full metadata for a PR' and lists what is included (description, branches, reviewers, state). This distinguishes it from sibling tools like list_pull_requests (list only) or approve_pull_request (modification).
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 this tool is for retrieving detailed PR info, which is distinct from listing or modifying PRs. However, it does not explicitly state when to use this vs alternatives or provide any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pull_request_commentsPull request commentsB
Lists a PR's existing comments (general and inline).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pull request number. | |
| repo | Yes | Repository repo_slug. | |
| workspace | No | Bitbucket workspace. Omit to use BITBUCKET_WORKSPACE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full responsibility. It only states the tool lists comments, omitting behavioral details such as pagination, ordering, authentication requirements, or rate limits. For a read operation, this is minimally informative.
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 a single, front-loaded sentence that directly states the action and scope. It is efficient with no wasted words, though a bit more context (e.g., output format) would be beneficial without harming conciseness.
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 simplicity and full schema coverage, the description provides the basic purpose. However, it lacks details on output format, ordering, or pagination, and does not help differentiate from related sibling tools like 'get_pull_request_diff' or 'get_pull_request_commits'.
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 coverage is 100%, so the input schema fully documents all three parameters. The description adds no additional meaning beyond what the schema provides. This meets the baseline for schema-rich definitions.
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 specifies the verb 'lists', the resource 'PR's existing comments', and clarifies it includes both general and inline comments. This clearly differentiates from sibling tools like 'add_pull_request_comment' (adds) and 'get_pull_request_diff' (shows diff).
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 the tool should be used to view comments on a pull request, but it does not provide explicit guidance on when to use this tool versus alternatives (e.g., when to use 'get_pull_request_diff' instead). No exclusions or context triggers are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pull_request_commitsPull request commitsC
Lists the commits that make up the PR.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pull request number. | |
| repo | Yes | Repository repo_slug. | |
| workspace | No | Bitbucket workspace. Omit to use BITBUCKET_WORKSPACE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond the basic function. There is no mention of pagination, ordering, or whether the response includes full commit details. Since no annotations are provided, the description carries the full burden, and it falls short.
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 very concise (8 words) and to the point. It is front-loaded with the core purpose. However, it lacks any structural elements like sections, which could improve readability.
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?
The tool has no output schema, 3 parameters, and no annotations. The description is minimal and does not explain the return format (e.g., commit metadata vs. full details). It leaves significant gaps for an agent to understand the full behavior.
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 coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what is in the schema. It does not explain how parameters affect the output or provide additional context like format constraints.
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 'Lists the commits that make up the PR' clearly states the verb (lists) and resource (commits of a PR). It is unambiguous and differentiates from sibling tools like get_pull_request_diff or get_pull_request, as those deal with different aspects. However, it does not explicitly contrast with siblings, which would earn a 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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context about when listing commits is appropriate, or when to prefer other tools for related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pull_request_diffPull request diffB
Returns the PR's full unified diff — the basis for a first-pass review.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pull request number. | |
| repo | Yes | Repository repo_slug. | |
| workspace | No | Bitbucket workspace. Omit to use BITBUCKET_WORKSPACE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. The description only states what the tool returns, but does not mention any constraints like file size limits, pagination for large diffs, or permission requirements. The read-only nature is implied but not explicitly stated.
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 a single sentence with 13 words, highly concise and front-loaded. However, it sacrifices some completeness (e.g., no mention of output format), making it slightly less than ideal. It earns its place with no 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 the complexity (simple read tool) and absence of an output schema, the description is complete enough for a basic understanding. However, it lacks details on the diff format, handling of large diffs, or any potential truncation. The overall context is adequate but has 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 input schema already documents all parameters adequately. The description adds no additional semantic information about the parameters beyond what the schema provides.
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 'Returns the PR's full unified diff', which is a specific verb+resource. It also distinguishes the tool from siblings like get_pull_request (which returns metadata) by highlighting the diff and its use as a basis for first-pass review.
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 a use case ('first-pass review'), but it does not explicitly state when to use this tool versus alternatives (e.g., get_pull_request, get_pull_request_comments). No exclusion criteria or alternative suggestions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoryList repository treeA
Lists files and directories under a repository path at a commit/branch. Use it to explore the project structure while reviewing a PR. Empty path = root; max_depth > 1 lists recursively. To see the code as proposed in the PR, pass the source_commit returned by get_pull_request.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Directory path. Omit for the root. | |
| repo | Yes | Repository repo_slug. | |
| commit | No | Commit or branch. Omit to use the default branch. | |
| max_depth | No | Listing depth (default 1 = immediate children). | |
| workspace | No | Bitbucket workspace. Omit to use BITBUCKET_WORKSPACE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It clarifies behavior with 'Empty path = root', 'max_depth > 1 lists recursively', and links to commit usage. It does not mention rate limits or auth, but the core behavior is well-explained.
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?
Three concise sentences with front-loaded action. No wasted words; every sentence adds 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?
Given no output schema, the description should explain return values. It does not describe the output format (e.g., list of paths vs. tree structure). It covers usage context and parameter behavior but omits output and error scenarios.
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 coverage is 100%, baseline 3. The description adds value beyond schema by clarifying defaults (path root, max_depth recursion) and connecting commit usage to PR context.
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 lists files and directories under a repository path at a commit/branch, with specific details about root and depth. It distinguishes from siblings like get_file (single file) and get_pull_request_diff by referencing PR context.
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 explicit usage context ('explore project structure while reviewing a PR') and a specific hint for use with get_pull_request. It lacks explicit exclusions or alternative tool guidance, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pull_requestsList pull requestsB
Lists a repository's PRs, filtered by state.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository repo_slug. | |
| limit | No | Max items (default 25). | |
| state | No | PR state (default OPEN). | |
| workspace | No | Bitbucket workspace. Omit to use BITBUCKET_WORKSPACE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. Only states 'lists', implying read-only but not explicit. No mention of safety, pagination, rate limits, or response structure. Insufficient for a write-free 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?
Single concise sentence that is front-loaded and complete. Every word adds value with no 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?
No output schema, yet description does not explain return format, pagination behavior, or field included. Adequate for simple list but lacks details an agent needs to interpret results. With 4 parameters, more completeness expected.
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 coverage is 100% with descriptions for all parameters. Description adds no new info beyond 'filtered by state', already in schema. Baseline 3 maintained.
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?
Description clearly states verb 'Lists' and resource 'repository's PRs', with filtering by state. Distinguishes from siblings like get_pull_request (single PR) and others. Could explicitly contrast with similar list tools but is adequate.
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?
No guidance on when to use this tool versus alternatives, no prerequisites or conditions for use. The description only states what it does without context on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_repositoriesList repositoriesA
Lists repositories in a workspace, sorted by most recently updated.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items (default 25). | |
| workspace | No | Bitbucket workspace. Omit to use BITBUCKET_WORKSPACE. |
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 discloses sorting behavior and a default limit (25), but does not mention authentication, rate limits, or that the operation is read-only. These gaps are notable.
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 a single sentence of 8 words, front-loaded with 'Lists repositories'. Every word is essential, with no redundancy or waste.
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 output schema and low complexity, the description covers the basic purpose and parameters. However, it omits return format or pagination details, which would improve completeness. Adequate but not thorough.
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 coverage is 100% with descriptions for both parameters. The description adds value beyond the schema by noting sorting by recency, which is not in the schema. Baseline 3 is raised due to this extra context.
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 uses a specific verb 'Lists' and resource 'repositories in a workspace', with added sorting detail ('sorted by most recently updated'). It clearly distinguishes from sibling tools like list_pull_requests, as no sibling lists repositories.
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 when needing to list repositories in a workspace, but lacks explicit guidance on when to use or avoid this tool. No alternatives or exclusions are mentioned, though sibling tools are not direct alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_changes_pull_requestRequest changes on a pull requestB
WRITE — records the authenticated user's 'request changes' on the PR.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pull request number. | |
| repo | Yes | Repository repo_slug. | |
| workspace | No | Bitbucket workspace. Omit to use BITBUCKET_WORKSPACE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description notes it is a WRITE operation, but no annotations are provided, and it fails to disclose behavioral traits such as required permissions, side effects (e.g., PR status changes), or whether the action is reversible. Without annotations, the description should offer more context about the tool's impact.
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 a single sentence that is concise and front-loaded with 'WRITE'. It efficiently conveys the core action, though it could be slightly more detailed without losing brevity.
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 lack of output schema and annotations, the description is incomplete. It does not explain return values, success/error conditions, or any prerequisites. For a mutation tool, more context is needed to ensure safe and correct usage.
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%, with each parameter having a description (e.g., 'Pull request number' for id). The tool description does not add additional parameter-level meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
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 'WRITE — records the authenticated user's 'request changes' on the PR' clearly identifies the action (request changes) and the resource (pull request). It distinguishes from sibling tools like approve_pull_request and add_pull_request_comment by specifying the 'request changes' action.
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 for requesting changes on a pull request, but provides no explicit guidance on when to use this tool versus alternatives like approve_pull_request or add_pull_request_comment. No when-not-to-use or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
v0.2.1- First observed
add_pull_request_comment - First observed
approve_pull_request - First observed
get_file - First observed
get_pull_request - First observed
get_pull_request_comments - First observed
get_pull_request_commits - First observed
get_pull_request_diff - First observed
list_directory - First observed
list_pull_requests - First observed
list_repositories - First observed
request_changes_pull_request
TDQS
Each tool has a clearly distinct purpose: listing repos, PRs, directory/file reading, PR metadata retrieval (diff, comments, commits), and PR write actions (comment, approve, request changes). No overlap in functionality.
All tools follow a consistent verb_noun snake_case pattern (e.g., get_pull_request, add_pull_request_comment, list_repositories). No mixing of styles or vague verbs.
11 tools is well-scoped for a Bitbucket integration, covering essential read and write operations for repositories and pull request review workflows without being excessive.
Covers core PR review actions (get, comment, approve, request changes) plus file/directory exploration. Minor gaps like merge/decline PR or update/delete comments, but sufficient for typical agent use.
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
MCP server for visual regression testing: triage a PR's UI diffs from your coding agent.
9118MCP server for siGit (sigit.si): browse repos, search code, manage PRs/issues, web search.
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseCqualityBmaintenanceMCP server for integrating with Bitbucket Cloud and Server APIs, enabling AI assistants to interact with repositories, pull requests, pipelines, and more.59373MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Bitbucket Cloud that exposes Pull Request operations as tools for Claude and other MCP clients.40ISC
- AlicenseBqualityBmaintenanceMCP server for Bitbucket Server integration, enabling project, repository, pull request, source code, branch, and code review operations via the Bitbucket Server APIs.2713MIT
- FlicenseCqualityCmaintenanceAn MCP server for Bitbucket Cloud, covering pull requests, pull request comments, and pipelines.26-
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/daniloneto/bitbucket-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server