bitbucket-automation
Bitbucket Automation via Rube MCP
Automate Bitbucket operations including repository management, pull request workflows, branch operations, issue tracking, and workspace administration through Composio's Bitbucket toolkit.
Toolkit docs: composio.dev/toolkits/bitbucket
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Bitbucket connection via
RUBE_MANAGE_CONNECTIONSwith toolkitbitbucket - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitbitbucket - If connection is not ACTIVE, follow the returned auth link to complete Bitbucket OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Manage Pull Requests
When to use: User wants to create, review, or inspect pull requests
Tool sequence:
BITBUCKET_LIST_WORKSPACES- Discover accessible workspaces [Prerequisite]BITBUCKET_LIST_REPOSITORIES_IN_WORKSPACE- Find the target repository [Prerequisite]BITBUCKET_LIST_BRANCHES- Verify source and destination branches exist [Prerequisite]BITBUCKET_CREATE_PULL_REQUEST- Create a new PR with title, source branch, and optional reviewers [Required]BITBUCKET_LIST_PULL_REQUESTS- List PRs filtered by state (OPEN, MERGED, DECLINED) [Optional]BITBUCKET_GET_PULL_REQUEST- Get full details of a specific PR by ID [Optional]BITBUCKET_GET_PULL_REQUEST_DIFF- Fetch unified diff for code review [Optional]BITBUCKET_GET_PULL_REQUEST_DIFFSTAT- Get changed files with lines added/removed [Optional]
Key parameters:
workspace: Workspace slug or UUID (required for all operations)repo_slug: URL-friendly repository namesource_branch: Branch with changes to mergedestination_branch: Target branch (defaults to repo main branch if omitted)reviewers: List of objects withuuidfield for reviewer assignmentstate: Filter for LIST_PULL_REQUESTS -OPEN,MERGED, orDECLINEDmax_chars: Truncation limit for GET_PULL_REQUEST_DIFF to handle large diffs
Pitfalls:
reviewersexpects an array of objects withuuidkey, NOT usernames:[{"uuid": "{...}"}]- UUID format must include curly braces:
{123e4567-e89b-12d3-a456-426614174000} destination_branchdefaults to the repo's main branch if omitted, which may not bemainpull_request_idis an integer for GET/DIFF operations but comes back as part of PR listing- Large diffs can overwhelm context; always set
max_chars(e.g., 50000) on GET_PULL_REQUEST_DIFF
2. Manage Repositories and Workspaces
When to use: User wants to list, create, or delete repositories or explore workspaces
Tool sequence:
BITBUCKET_LIST_WORKSPACES- List all accessible workspaces [Required]BITBUCKET_LIST_REPOSITORIES_IN_WORKSPACE- List repos with optional BBQL filtering [Required]BITBUCKET_CREATE_REPOSITORY- Create a new repo with language, privacy, and project settings [Optional]BITBUCKET_DELETE_REPOSITORY- Permanently delete a repository (irreversible) [Optional]BITBUCKET_LIST_WORKSPACE_MEMBERS- List members for reviewer assignment or access checks [Optional]
Key parameters:
workspace: Workspace slug (find via LIST_WORKSPACES)repo_slug: URL-friendly name for create/deleteq: BBQL query filter (e.g.,name~"api",project.key="PROJ",is_private=true)role: Filter repos by user role:member,contributor,admin,ownersort: Sort field with optional-prefix for descending (e.g.,-updated_on)is_private: Boolean for repository visibility (defaults totrue)project_key: Bitbucket project key; omit to use workspace's oldest project
Pitfalls:
BITBUCKET_DELETE_REPOSITORYis irreversible and does not affect forks- BBQL string values MUST be enclosed in double quotes:
name~"my-repo"notname~my-repo repositoryis NOT a valid BBQL field; usenameinstead- Default pagination is 10 results; set
pagelenexplicitly for complete listings CREATE_REPOSITORYdefaults to private; setis_private: falsefor public repos
3. Manage Issues
When to use: User wants to create, update, list, or comment on repository issues
Tool sequence:
BITBUCKET_LIST_ISSUES- List issues with optional filters for state, priority, kind, assignee [Required]BITBUCKET_CREATE_ISSUE- Create a new issue with title, content, priority, and kind [Required]BITBUCKET_UPDATE_ISSUE- Modify issue attributes (state, priority, assignee, etc.) [Optional]BITBUCKET_CREATE_ISSUE_COMMENT- Add a markdown comment to an existing issue [Optional]BITBUCKET_DELETE_ISSUE- Permanently delete an issue [Optional]
Key parameters:
issue_id: String identifier for the issuetitle,content: Required for creationkind:bug,enhancement,proposal, ortaskpriority:trivial,minor,major,critical, orblockerstate:new,open,resolved,on hold,invalid,duplicate,wontfix,closedassignee: Bitbucket username for CREATE;assignee_account_id(UUID) for UPDATEdue_on: ISO 8601 format date string
Pitfalls:
- Issue tracker must be enabled on the repository (
has_issues: true) or API calls will fail CREATE_ISSUEusesassignee(username string), butUPDATE_ISSUEusesassignee_account_id(UUID) -- they are different fieldsDELETE_ISSUEis permanent with no undostatevalues include spaces:"on hold"not"on_hold"- Filtering by
assigneein LIST_ISSUES uses account ID, not username; use"null"string for unassigned
4. Manage Branches
When to use: User wants to create branches or explore branch structure
Tool sequence:
BITBUCKET_LIST_BRANCHES- List branches with optional BBQL filter and sorting [Required]BITBUCKET_CREATE_BRANCH- Create a new branch from a specific commit hash [Required]
Key parameters:
name: Branch name withoutrefs/heads/prefix (e.g.,feature/new-login)target_hash: Full SHA1 commit hash to branch from (must exist in repo)q: BBQL filter (e.g.,name~"feature/",name="main")sort: Sort bynameor-target.date(descending commit date)pagelen: 1-100 results per page (default is 10)
Pitfalls:
CREATE_BRANCHrequires a full commit hash, NOT a branch name astarget_hash- Do NOT include
refs/heads/prefix in branch names - Branch names must follow Bitbucket naming conventions (alphanumeric,
/,.,_,-) - BBQL string values need double quotes:
name~"feature/"notname~feature/
5. Review Pull Requests with Comments
When to use: User wants to add review comments to pull requests, including inline code comments
Tool sequence:
BITBUCKET_GET_PULL_REQUEST- Get PR details and verify it exists [Prerequisite]BITBUCKET_GET_PULL_REQUEST_DIFF- Review the actual code changes [Prerequisite]BITBUCKET_GET_PULL_REQUEST_DIFFSTAT- Get list of changed files [Optional]BITBUCKET_CREATE_PULL_REQUEST_COMMENT- Post review comments [Required]
Key parameters:
pull_request_id: String ID of the PRcontent_raw: Markdown-formatted comment textcontent_markup: Defaults tomarkdown; also supportsplaintextinline: Object withpath,from,tofor inline code commentsparent_comment_id: Integer ID for threaded replies to existing comments
Pitfalls:
pull_request_idis a string in CREATE_PULL_REQUEST_COMMENT but an integer in GET_PULL_REQUEST- Inline comments require
inline.pathat minimum;from/toare optional line numbers parent_comment_idcreates a threaded reply; omit for top-level comments- Line numbers in inline comments reference the diff, not the source file
Common Patterns
ID Resolution
Always resolve human-readable names to IDs before operations:
- Workspace:
BITBUCKET_LIST_WORKSPACESto get workspace slugs - Repository:
BITBUCKET_LIST_REPOSITORIES_IN_WORKSPACEwithqfilter to find repo slugs - Branch:
BITBUCKET_LIST_BRANCHESto verify branch existence before PR creation - Members:
BITBUCKET_LIST_WORKSPACE_MEMBERSto get UUIDs for reviewer assignment
Pagination
Bitbucket uses page-based pagination (not cursor-based):
- Use
page(starts at 1) andpagelen(items per page) parameters - Default page size is typically 10; set
pagelenexplicitly (max 50 for PRs, 100 for others) - Check response for
nextURL or total count to determine if more pages exist - Always iterate through all pages for complete results
BBQL Filtering
Bitbucket Query Language is available on list endpoints:
- String values MUST use double quotes:
name~"pattern" - Operators:
=(exact),~(contains),!=(not equal),>,>=,<,<= - Combine with
AND/OR:name~"api" AND is_private=true
Known Pitfalls
ID Formats
- Workspace: slug string (e.g.,
my-workspace) or UUID in braces ({uuid}) - Reviewer UUIDs must include curly braces:
{123e4567-e89b-12d3-a456-426614174000} - Issue IDs are strings; PR IDs are integers in some tools, strings in others
- Commit hashes must be full SHA1 (40 characters)
Parameter Quirks
assigneevsassignee_account_id: CREATE_ISSUE uses username, UPDATE_ISSUE uses UUIDstatevalues for issues include spaces:"on hold", not"on_hold"destination_branchomission defaults to repo main branch, notmainliterally- BBQL
repositoryis not a valid field -- usename
Rate Limits
- Bitbucket Cloud API has rate limits; large batch operations should include delays
- Paginated requests count against rate limits; minimize unnecessary page fetches
Destructive Operations
BITBUCKET_DELETE_REPOSITORYis irreversible and does not remove forksBITBUCKET_DELETE_ISSUEis permanent with no recovery option- Always confirm with the user before executing delete operations
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List workspaces | BITBUCKET_LIST_WORKSPACES |
q, sort |
| List repos | BITBUCKET_LIST_REPOSITORIES_IN_WORKSPACE |
workspace, q, role |
| Create repo | BITBUCKET_CREATE_REPOSITORY |
workspace, repo_slug, is_private |
| Delete repo | BITBUCKET_DELETE_REPOSITORY |
workspace, repo_slug |
| List branches | BITBUCKET_LIST_BRANCHES |
workspace, repo_slug, q |
| Create branch | BITBUCKET_CREATE_BRANCH |
workspace, repo_slug, name, target_hash |
| List PRs | BITBUCKET_LIST_PULL_REQUESTS |
workspace, repo_slug, state |
| Create PR | BITBUCKET_CREATE_PULL_REQUEST |
workspace, repo_slug, title, source_branch |
| Get PR details | BITBUCKET_GET_PULL_REQUEST |
workspace, repo_slug, pull_request_id |
| Get PR diff | BITBUCKET_GET_PULL_REQUEST_DIFF |
workspace, repo_slug, pull_request_id, max_chars |
| Get PR diffstat | BITBUCKET_GET_PULL_REQUEST_DIFFSTAT |
workspace, repo_slug, pull_request_id |
| Comment on PR | BITBUCKET_CREATE_PULL_REQUEST_COMMENT |
workspace, repo_slug, pull_request_id, content_raw |
| List issues | BITBUCKET_LIST_ISSUES |
workspace, repo_slug, state, priority |
| Create issue | BITBUCKET_CREATE_ISSUE |
workspace, repo_slug, title, content |
| Update issue | BITBUCKET_UPDATE_ISSUE |
workspace, repo_slug, issue_id |
| Comment on issue | BITBUCKET_CREATE_ISSUE_COMMENT |
workspace, repo_slug, issue_id, content |
| Delete issue | BITBUCKET_DELETE_ISSUE |
workspace, repo_slug, issue_id |
| List members | BITBUCKET_LIST_WORKSPACE_MEMBERS |
workspace |
Powered by Composio