bitbucket-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BITBUCKET_EMAIL | Yes | Your email address for Bitbucket authentication | |
| BITBUCKET_API_TOKEN | Yes | Your Bitbucket API token with appropriate scopes |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | Check current Bitbucket auth. Returns the authenticated user info. |
| list_workspacesA | List all Bitbucket workspaces you have access to. |
| list_reposA | List repositories in a workspace. Args: workspace: Workspace slug (uses default if not provided) |
| get_repoB | Get repository details. Args: workspace: Workspace slug (uses default if not provided) repo: Repository slug (uses default if not provided) |
| list_branchesA | List branches in a repository. Args: workspace: Workspace slug repo: Repository slug |
| list_pull_requestsA | List pull requests. Default shows open PRs. Args: workspace: Workspace slug repo: Repository slug state: PR state - OPEN, MERGED, DECLINED, SUPERSEDED (default OPEN) |
| get_pull_requestA | Get full details of a pull request. Args: pr_id: Pull request ID number workspace: Workspace slug repo: Repository slug |
| create_pull_requestA | Create a new pull request. Args: title: PR title source_branch: Source branch name dest_branch: Destination branch (default "main") description: PR description (markdown supported) reviewers: Comma-separated reviewer UUIDs (optional) close_source: Close source branch on merge (default True) workspace: Workspace slug repo: Repository slug |
| update_pull_requestA | Update a pull request (title, description, reviewers, destination). Args: pr_id: PR ID number title: New title (optional) description: New description (optional) reviewers: Comma-separated reviewer UUIDs to set (optional) dest_branch: New destination branch (optional) workspace: Workspace slug repo: Repository slug |
| approve_pull_requestC | Approve a pull request. Args: pr_id: PR ID number workspace: Workspace slug repo: Repository slug |
| unapprove_pull_requestB | Remove your approval from a pull request. Args: pr_id: PR ID number workspace: Workspace slug repo: Repository slug |
| request_changes_on_prC | Request changes on a pull request. Args: pr_id: PR ID number workspace: Workspace slug repo: Repository slug |
| remove_request_changesA | Remove your request-changes from a pull request. Args: pr_id: PR ID number workspace: Workspace slug repo: Repository slug |
| merge_pull_requestA | Merge a pull request. Args: pr_id: PR ID number strategy: Merge strategy - merge_commit, squash, or fast_forward (optional, uses repo default) close_source: Close/delete source branch after merge (default True) workspace: Workspace slug repo: Repository slug |
| decline_pull_requestB | Decline (close without merging) a pull request. Args: pr_id: PR ID number workspace: Workspace slug repo: Repository slug |
| pr_diffB | Get the full diff of a pull request. Args: pr_id: PR ID number workspace: Workspace slug repo: Repository slug |
| pr_diffstatA | Get diffstat (files changed summary) for a pull request. Args: pr_id: PR ID number workspace: Workspace slug repo: Repository slug |
| pr_commitsA | List commits in a pull request. Args: pr_id: PR ID number workspace: Workspace slug repo: Repository slug |
| pr_activityA | Get activity log for a pull request (approvals, comments, updates). Args: pr_id: PR ID number workspace: Workspace slug repo: Repository slug |
| pr_build_statusA | Get build/pipeline statuses for a pull request. Args: pr_id: PR ID number workspace: Workspace slug repo: Repository slug |
| list_pr_commentsB | List all comments on a pull request. Args: pr_id: PR ID number workspace: Workspace slug repo: Repository slug |
| comment_on_prA | Add a general comment to a pull request. Args: pr_id: PR ID number body: Comment text (markdown supported) workspace: Workspace slug repo: Repository slug |
| inline_comment_on_prA | Add an inline code review comment on a specific file and line in a PR. Args: pr_id: PR ID number body: Comment text (markdown supported) file_path: File path relative to repo root (e.g., "src/main.py") line: Line number (on the new/right side of the diff) workspace: Workspace slug repo: Repository slug |
| reply_to_pr_commentA | Reply to an existing PR comment. Args: pr_id: PR ID number parent_comment_id: ID of the comment to reply to body: Reply text workspace: Workspace slug repo: Repository slug |
| edit_pr_commentB | Edit an existing PR comment. Args: pr_id: PR ID number comment_id: Comment ID to edit body: New comment text workspace: Workspace slug repo: Repository slug |
| delete_pr_commentB | Delete a PR comment. Args: pr_id: PR ID number comment_id: Comment ID to delete workspace: Workspace slug repo: Repository slug |
| list_commitsB | List recent commits, optionally filtered by branch. Args: branch: Branch name (optional, defaults to all) workspace: Workspace slug repo: Repository slug |
| list_pipelinesB | List recent pipelines (builds) for a repository. Args: workspace: Workspace slug repo: Repository slug |
| trigger_pipelineA | Trigger a pipeline run for a branch. Args: branch: Branch name to run pipeline on custom_pattern: Custom pipeline name (optional, for custom pipelines in bitbucket-pipelines.yml) workspace: Workspace slug repo: Repository slug |
| stop_pipelineC | Stop a running pipeline. Args: pipeline_uuid: Pipeline UUID (from list_pipelines) workspace: Workspace slug repo: Repository slug |
| pipeline_stepsA | Get steps/stages of a pipeline run. Args: pipeline_uuid: Pipeline UUID workspace: Workspace slug repo: Repository slug |
| browse_sourceA | Browse repository source files at a specific ref (branch/tag/commit). Args: path: File or directory path (empty for root) ref: Branch name, tag, or commit hash (default "main") workspace: Workspace slug repo: Repository slug |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 32 tools
Each tool targets a distinct resource and action. Comment tools are differentiated by operation (list/add/inline/reply/edit/delete), and PR views are clearly separated by data type (diff, diffstat, commits, activity, build status). No two tools appear to serve the same purpose.
Most tools follow a verb_noun pattern (list_repos, create_pull_request), but there are notable deviations: data-view tools use a noun-first 'pr_' prefix (pr_diff, pr_commits, pr_activity, pr_build_status) and 'pipeline_steps' lacks a verb. The resource is inconsistently called 'pull_request' in some tools and 'pr' in others, and comment actions use varying prepositions (on, to). Still, the names remain readable and understandable.
At 32 tools, the server exceeds the 'borderline' range of 16-25 and feels heavy. While many tools are justified for a Bitbucket API, there is some overlap (e.g., list_commits vs pr_commits) and the PR comment workflow alone accounts for six tools. The count would be more appropriate if consolidated or scoped tighter, such as focusing on core PR operations.
The pull request lifecycle is thoroughly covered (create, update, approve, merge, decline, comments, diff, commits, activity, build status). However, repository management is incomplete: there is no create/update/delete repo, and branch operations are limited to listing. These are notable gaps for a Bitbucket integration and could force agents to use external tools.