Bitbucket MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BITBUCKET_URL | No | Custom API base URL for self-hosted Bitbucket Server (e.g., https://bitbucket.company.com/rest/api/2.0) | https://api.bitbucket.org/2.0 |
| BITBUCKET_MODE | No | Operation mode: readonly, safe (default), or full | safe |
| BITBUCKET_LOG_DIR | No | Custom log directory | |
| BITBUCKET_LOG_FILE | No | Custom log file path | |
| BITBUCKET_USERNAME | Yes | Your Atlassian email address (e.g., user@example.com) | |
| BITBUCKET_API_TOKEN | Yes | Personal API Token starting with ATBB or ATATT. Required for authentication. | |
| BITBUCKET_WORKSPACE | No | Default workspace name (optional but recommended) | |
| BITBUCKET_LOG_DISABLE | No | Disable file logging (default: false) | false |
| BITBUCKET_LOG_PER_CWD | No | Create per-directory logs (default: false) | false |
| BITBUCKET_ENABLED_TOOLS | No | Comma-separated list of tools to enable (whitelist mode). Overrides mode restrictions. | |
| BITBUCKET_DISABLED_TOOLS | No | Comma-separated list of tools to disable (blacklist mode). |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| listRepositoriesC | List Bitbucket repositories |
| getRepositoryC | Get repository details |
| getEffectiveDefaultReviewersB | Get effective default reviewers for a repository |
| getPullRequestsC | Get pull requests for a repository |
| createPullRequestC | Create a new pull request |
| getPullRequestC | Get details for a specific pull request |
| updatePullRequestC | Update a pull request |
| approvePullRequestC | Approve a pull request |
| unapprovePullRequestB | Remove approval from a pull request |
| declinePullRequestC | Decline a pull request |
| mergePullRequestC | Merge a pull request |
| createDraftPullRequestB | Create a new draft pull request |
| publishDraftPullRequestB | Publish a draft pull request to make it ready for review |
| convertTodraftB | Convert a regular pull request to draft status |
| getPendingReviewPRsA | List all open pull requests in the workspace where the authenticated user is a reviewer and has not yet approved. |
| requestChangesC | Request changes on a pull request |
| removeRequestChangesA | Remove request changes from a pull request |
| getPullRequestCommentsB | List comments on a pull request |
| addPullRequestCommentA | Add a comment to a pull request: general, inline on a diff line, or a reply to an existing comment (pass |
| getPullRequestCommentB | Get a specific comment on a pull request |
| updatePullRequestCommentC | Update a comment on a pull request |
| resolveCommentB | Resolve a comment thread on a pull request |
| reopenCommentB | Reopen a resolved comment thread on a pull request |
| getPullRequestTasksC | List tasks on a pull request |
| createPullRequestTaskA | Create a task on a pull request |
| getPullRequestTaskB | Get a specific task on a pull request |
| updatePullRequestTaskB | Update a task on a pull request |
| getPullRequestDiffB | Get diff for a pull request |
| getPullRequestDiffStatB | Get diff statistics for a pull request |
| getPullRequestPatchC | Get patch for a pull request |
| getPullRequestCommitsB | Get commits on a pull request |
| getPullRequestActivityB | Get activity log for a pull request |
| getPullRequestStatusesB | List commit statuses associated with a pull request |
| getRepositoryBranchingModelC | Get the branching model for a repository |
| getRepositoryBranchingModelSettingsC | Get the branching model config for a repository |
| updateRepositoryBranchingModelSettingsB | Update the branching model config for a repository |
| getEffectiveRepositoryBranchingModelC | Get the effective branching model for a repository |
| getProjectBranchingModelC | Get the branching model for a project |
| getProjectBranchingModelSettingsC | Get the branching model config for a project |
| updateProjectBranchingModelSettingsC | Update the branching model config for a project |
| listPipelineRunsA | List pipeline runs for a repository |
| getPipelineRunB | Get details for a specific pipeline run |
| runPipelineC | Trigger a new pipeline run |
| stopPipelineB | Stop a running pipeline |
| getPipelineStepsB | List steps for a pipeline run |
| getPipelineStepB | Get details for a specific pipeline step |
| getPipelineStepLogsB | Get logs for a specific pipeline step |
| getCurrentUserA | Get the currently authenticated Bitbucket user |
| listWorkspacesA | List Bitbucket workspaces the user has access to |
| listBranchesB | List branches in a repository |
| createBranchC | Create a new branch in a repository |
| getBranchB | Get a specific branch from a repository |
| listTagsB | List tags in a repository |
| createTagC | Create a new tag in a repository |
| getTagA | Get a specific tag from a repository |
| listCommitsC | List commits in a repository |
| getCommitA | Get a specific commit from a repository |
| getFileContentA | Get the content of a file from a Bitbucket repository |
| bitbucket_api_requestA | Make an authenticated GET request to the Bitbucket Cloud API. Use this tool for endpoints not covered by other specific tools, or to access raw API data. The response is returned as a JSON string. |
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 59 tools
Most tools are cleanly separated by resource and action, but the five branching-model tools (project vs repository, model vs settings vs effective) have overlapping descriptions that an agent would struggle to distinguish. Comments, tasks, and PR review actions are otherwise fairly unambiguous.
The majority of tools follow a get/list/create/update/action + resource pattern, making the set mostly predictable. However, convertTodraft, getPendingReviewPRs, resolveComment/reopenComment, and the snake_case bitbucket_api_request break the convention.
With 59 tools the server is substantially over the practical MCP threshold; even though each tool maps to a distinct API operation, the volume is heavy for an agent to scan and select from. Some closely related branching-model and comment tools could be consolidated.
The pull request lifecycle is very complete, and pipelines, branches, tags, commits, and comments have solid coverage for common tasks. However, repository mutation is absent and delete operations are missing for branches, tags, comments, and tasks, while the generic fallback is GET-only, so these gaps cannot be worked around.