Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BITBUCKET_EMAILYesAtlassian account email used for Basic Auth.
BITBUCKET_TOKENYesBitbucket API token. Never an app password.
BITBUCKET_WORKSPACENoProcess-level override for workspace resolution. Takes precedence over the active profile's default, but not over an explicit workspace tool argument.
BITBUCKET_PROFILES_PATHNoOverrides where profiles.json lives. Default: ${XDG_CONFIG_HOME:-~/.config}/bitbucket-mcp/profiles.json.

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_workspacesA

Lists every Bitbucket workspace the authenticated credentials can access, fully paginated. Takes no arguments.

list_profilesA

Lists every configured local profile and its defaults. Never contacts Bitbucket.

get_active_profileA

Returns the currently active profile's name and resolved defaults, if any.

set_active_profileA

Switches the active profile to an existing profile. Purely local — never calls Bitbucket.

set_default_workspaceA

Persists a default workspace on the active (or explicitly named) profile. Purely local — never calls Bitbucket.

clear_default_workspaceA

Removes the persisted default workspace from the active (or explicitly named) profile. Idempotent. Purely local — never calls Bitbucket.

list_repositoriesA

Lists every repository in a workspace, fully paginated. Resolves workspace via the standard precedence (explicit argument > BITBUCKET_WORKSPACE env override > active profile default > error) if not provided.

get_repositoryA

Returns details for a specific repository. Requires repo and resolves workspace via the standard precedence.

list_branchesA

Lists every branch in a repository, fully paginated. Resolves workspace via the standard precedence (explicit argument > env override > active profile default > error) if not provided. Requires an explicit repo argument. Accepts an optional name filter (partial match) applied via Bitbucket's query language.

get_branchA

Returns details for a specific branch. Requires repo and branch, and resolves workspace via the standard precedence.

list_pull_requestsA

Lists pull requests in a repository, fully paginated. Requires an explicit repo argument and resolves workspace via the standard precedence. Filters by state (OPEN | MERGED | DECLINED | SUPERSEDED), defaulting to "OPEN".

get_pull_requestA

Returns full metadata for a single pull request. Requires repo and pr_id, and resolves workspace via the standard precedence.

get_pr_commitsB

Lists every commit belonging to a pull request, fully paginated. Requires an explicit repo argument.

get_pr_diffA

Returns the unified diff for a pull request as plain text, capped by default at 100,000 characters (maxChars, hard cap 400,000). Truncation always lands on a line boundary and the response always reports truncated/returnedChars so a truncated diff is never mistaken for the complete one. On very large diffs Bitbucket may time out (HTTP 555); prefer get_pr_commits or a smaller maxChars instead of retrying.

list_pr_commentsA

Lists every comment (inline and general) on a pull request, fully paginated. Requires an explicit repo argument.

create_pr_commentA

Posts a new comment on a pull request. Requires non-empty content — validated before any Bitbucket call. WRITE tool.

create_pull_requestA

Opens a new pull request. Requires title, sourceBranch, and destinationBranch; both branches are verified to exist before the PR is created so no partial PR is ever left behind. WRITE tool.

update_pull_requestA

Updates a pull request's title, description, destination branch, and/or reviewers. Does NOT support merge, approve, or decline — passing a state is explicitly rejected. WRITE tool.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 18 tools

Disambiguation5/5

Each tool targets a distinct resource and action: local profile operations are clearly separated from Bitbucket API operations, and list/get/create/update verbs are consistently paired with specific objects like workspaces, repositories, branches, pull requests, and comments. There is no meaningful overlap or ambiguous boundary between tools.

Naming Consistency4/5

Tool names mostly follow a consistent list_/get_/create_/update_/set_/clear_ verb_noun pattern, which is predictable and readable. The main deviation is mixing 'pr' and 'pull_request' across related tools (e.g. get_pr_commits vs get_pull_request), which slightly weakens consistency.

Tool Count4/5

At 18 tools, the set is slightly above the ideal 3–15 range, but each tool addresses a distinct need across workspaces, repositories, branches, pull requests, comments, and local profile configuration. The count feels slightly heavy but not bloated.

Completeness3/5

The read side is well covered, and pull request creation plus commenting are supported, but notable lifecycle operations are missing: merge/approve/decline for pull requests, repository/branch write operations, and profile creation/deletion. These gaps prevent full CRUD/lifecycle coverage of the apparent Bitbucket domain.