SKILL.md
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.
Prerequisites
- Rube MCP must be connected (RUBESEARCHTOOLS available)
- Active Bitbucket connection via
RUBEMANAGECONNECTIONSwith toolkitbitbucket - Always call
RUBESEARCHTOOLSfirst 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
RUBESEARCHTOOLSresponds - Call
RUBEMANAGECONNECTIONSwith 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:
BITBUCKETLISTWORKSPACES- Discover accessible workspaces [Prerequisite]BITBUCKETLISTREPOSITORIESINWORKSPACE- Find the target repository [Prerequisite]BITBUCKETLISTBRANCHES- Verify source and destination branches exist [Prerequisite]BITBUCKETCREATEPULL_REQUEST- Create a new PR with title, source branch, and optional reviewers [Required]BITBUCKETLISTPULL_REQUESTS- List PRs filtered by state (OPEN, MERGED, DECLINED) [Optional]BITBUCKETGETPULL_REQUEST- Get full details of a specific PR by ID [Optional]BITBUCKETGETPULLREQUESTDIFF- Fetch unified diff for code review [Optional]BITBUCKETGETPULLREQUESTDIFFSTAT- 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 LISTPULLREQUESTS -OPEN,MERGED, orDECLINEDmaxchars: Truncation limit for GETPULLREQUESTDIFF 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 bemainpullrequestidis an integer for GET/DIFF operations but comes back as part of PR listing- Large diffs can overwhelm context; always set
maxchars(e.g., 50000) on GETPULLREQUESTDIFF
2. Manage Repositories and Workspaces
When to use: User wants to list, create, or delete repositories or explore workspaces
Tool sequence:
BITBUCKETLISTWORKSPACES- List all accessible workspaces [Required]BITBUCKETLISTREPOSITORIESINWORKSPACE- List repos with optional BBQL filtering [Required]BITBUCKETCREATEREPOSITORY- Create a new repo with language, privacy, and project settings [Optional]BITBUCKETDELETEREPOSITORY- Permanently delete a repository (irreversible) [Optional]BITBUCKETLISTWORKSPACE_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:
BITBUCKETDELETEREPOSITORYis 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 CREATEREPOSITORYdefaults to private; setisprivate: falsefor public repos
3. Manage Issues
When to use: User wants to create, update, list, or comment on repository issues
Tool sequence:
BITBUCKETLISTISSUES- List issues with optional filters for state, priority, kind, assignee [Required]BITBUCKETCREATEISSUE- Create a new issue with title, content, priority, and kind [Required]BITBUCKETUPDATEISSUE- Modify issue attributes (state, priority, assignee, etc.) [Optional]BITBUCKETCREATEISSUE_COMMENT- Add a markdown comment to an existing issue [Optional]BITBUCKETDELETEISSUE- 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;assigneeaccountid(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 CREATEISSUEusesassignee(username string), butUPDATEISSUEusesassigneeaccountid(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:
BITBUCKETLISTBRANCHES- List branches with optional BBQL filter and sorting [Required]BITBUCKETCREATEBRANCH- 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:
CREATEBRANCHrequires a full commit hash, NOT a branch name astargethash- 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:
BITBUCKETGETPULL_REQUEST- Get PR details and verify it exists [Prerequisite]BITBUCKETGETPULLREQUESTDIFF- Review the actual code changes [Prerequisite]BITBUCKETGETPULLREQUESTDIFFSTAT- Get list of changed files [Optional]BITBUCKETCREATEPULLREQUESTCOMMENT- Post review comments [Required]
Key parameters:
pullrequestid: String ID of the PRcontent_raw: Markdown-formatted comment textcontent_markup: Defaults tomarkdown; also supportsplaintextinline: Object withpath,from,tofor inline code commentsparentcommentid: Integer ID for threaded replies to existing comments
Pitfalls:
pullrequestidis a string in CREATEPULLREQUESTCOMMENT but an integer in GETPULL_REQUEST- Inline comments require
inline.pathat minimum;from/toare optional line numbers parentcommentidcreates 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:
BITBUCKETLISTWORKSPACESto get workspace slugs - Repository:
BITBUCKETLISTREPOSITORIESINWORKSPACEwithqfilter to find repo slugs - Branch:
BITBUCKETLISTBRANCHESto verify branch existence before PR creation - Members:
BITBUCKETLISTWORKSPACE_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
assigneevsassigneeaccountid: CREATEISSUE uses username, UPDATEISSUE 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
BITBUCKETDELETEREPOSITORYis irreversible and does not remove forksBITBUCKETDELETEISSUEis permanent with no recovery option- Always confirm with the user before executing delete operations
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List workspaces | BITBUCKETLISTWORKSPACES |
q, sort |
| List repos | BITBUCKETLISTREPOSITORIESINWORKSPACE |
workspace, q, role |
| Create repo | BITBUCKETCREATEREPOSITORY |
workspace, reposlug, isprivate |
| Delete repo | BITBUCKETDELETEREPOSITORY |
workspace, repo_slug |
| List branches | BITBUCKETLISTBRANCHES |
workspace, repo_slug, q |
| Create branch | BITBUCKETCREATEBRANCH |
workspace, reposlug, name, targethash |
| List PRs | BITBUCKETLISTPULL_REQUESTS |
workspace, repo_slug, state |
| Create PR | BITBUCKETCREATEPULL_REQUEST |
workspace, reposlug, title, sourcebranch |
| Get PR details | BITBUCKETGETPULL_REQUEST |
workspace, reposlug, pullrequest_id |
| Get PR diff | BITBUCKETGETPULLREQUESTDIFF |
workspace, reposlug, pullrequestid, maxchars |
| Get PR diffstat | BITBUCKETGETPULLREQUESTDIFFSTAT |
workspace, reposlug, pullrequest_id |
| Comment on PR | BITBUCKETCREATEPULLREQUESTCOMMENT |
workspace, reposlug, pullrequestid, contentraw |
| List issues | BITBUCKETLISTISSUES |
workspace, repo_slug, state, priority |
| Create issue | BITBUCKETCREATEISSUE |
workspace, repo_slug, title, content |
| Update issue | BITBUCKETUPDATEISSUE |
workspace, reposlug, issueid |
| Comment on issue | BITBUCKETCREATEISSUE_COMMENT |
workspace, reposlug, issueid, content |
| Delete issue | BITBUCKETDELETEISSUE |
workspace, reposlug, issueid |
| List members | BITBUCKETLISTWORKSPACE_MEMBERS |
workspace |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Example
User request:
Automate Bitbucket repositories, pull requests, branches, issues, and workspace management via Rube MCP (Composio).
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.