Bitbucket CLI for AI Agents

Framework Integration Gradient
Bitbucket Logo
CLI Logo
divider

Introduction

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP.

With Composio's Universal CLI, your coding agents can talk to over 850+ SaaS applications. With Bitbucket, agents can create a new branch off main, open a pull request for your feature, comment on the latest open issue, and more — all without worrying about authentication.

This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Bitbucket automation.

Also integrate Bitbucket with

What is Universal CLI and why use it?

The idea behind building the universal CLI is to give agents a single command interface to interact with all your external applications. Here's what you'll get with it:

  • Agent-friendly: Coding agents like Claude Code, Codex, and OpenCode can use CLI tools natively — no MCP setup required.
  • Authentication handled: Connect once via OAuth or API Key, and all CLI commands work with your credentials automatically.
  • Tool discovery: Search, inspect, and execute 20,000+ tools across 850+ apps from one interface.
  • Trigger support: Use triggers to listen for events across your apps, powered by real-time webhooks or polling under the hood.
  • Type generation: Generate typed schemas for autocomplete and type safety in your projects.

Prerequisites

Install the Composio CLI, authenticate, and initialize your project:

bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Authenticate with Composio
composio login

During login you'll be redirected to sign in page, finish the complete flow and you're all set.

Composio CLI authentication flow

Connecting Bitbucket to Coding Agents via Universal CLI

Once it is installed, it's essentially done. Claude Code, Codex, OpenCode, OpenClaw, or any other agent will be able to access the CLI. A few steps to give agents access to your apps.

  1. Launch your Coding Agent — Claude Code, Codex, OpenCode, anything you prefer.
  2. Prompt it to "Authenticate with Bitbucket"
  3. Complete the authentication and authorization flow and your Bitbucket integration is all set.
  4. Start asking anything you want.

Supported Tools & Triggers

Tools
Create a branchCreates a new branch in a bitbucket repository from a target commit hash; the branch name must be unique, adhere to bitbucket's naming conventions, and not include the 'refs/heads/' prefix.
Create an issueCreates a new issue in a bitbucket repository, setting the authenticated user as reporter; ensures assignee (if provided) has repository access, and that any specified milestone, version, or component ids exist.
Create an issue commentAdds a new comment with markdown support to an existing bitbucket issue.
Create a pull requestCreates a new pull request in a specified bitbucket repository, ensuring the source branch exists and is distinct from the (optional) destination branch.
Create repositoryCreates a new bitbucket 'git' repository in a specified workspace, defaulting to the workspace's oldest project if `project key` is not provided.
Create snippet commentPosts a new top-level comment or a threaded reply to an existing comment on a specified bitbucket snippet.
Delete issuePermanently deletes a specific issue, identified by its `issue id`, from the repository specified by `repo slug` within the given `workspace`.
Delete repositoryPermanently deletes a specified bitbucket repository; this action is irreversible and does not affect forks.
Get current userRetrieves the profile information (uuid, display name, links, creation date) for the currently authenticated bitbucket user.
Get file from repositoryRetrieves a specific file's content from a bitbucket repository at a given commit (hash, branch, or tag), failing if the file path is invalid for that commit.
Get Pull RequestGet a single pull request by id with complete details.
Get snippetRetrieves a specific bitbucket snippet by its encoded id from an existing workspace, returning its metadata and file structure.
List pull requestsLists pull requests in a specified, accessible bitbucket repository, optionally filtering by state (open, merged, declined).
List repositories in workspaceLists repositories in a specified bitbucket workspace, accessible to the authenticated user, with options to filter by role or query string, and sort results.
List workspace membersLists all members of a specified bitbucket workspace; the workspace must exist.
List workspacesLists bitbucket workspaces accessible to the authenticated user, optionally filtered and sorted.
Update an issueUpdates an existing issue in a bitbucket repository by modifying specified attributes; requires `workspace`, `repo slug`, `issue id`, and at least one attribute to update.

Universal CLI Commands for Bitbucket

You can also manually execute CLI commands to interact with your Bitbucket.

Connect your Bitbucket account

Link your Bitbucket account and verify the connection:

bash
# Connect your Bitbucket account (opens OAuth flow)
composio connected-accounts link bitbucket

# Verify the connection
composio connected-accounts list --toolkits bitbucket

Discover Bitbucket tools

Search and inspect available Bitbucket tools:

bash
# List all available Bitbucket tools
composio tools list --toolkit bitbucket

# Search for Bitbucket tools by action
composio tools search "bitbucket"

# Inspect a tool's input schema
composio tools info BITBUCKET_CREATE_BRANCH

Common Bitbucket Actions

Create a branchCreates a new branch in a bitbucket repository from a target commit hash; the branch name must be unique, adhere to bitbucket's naming conventions, and not include the 'refs/heads/' prefix

bash
composio tools execute BITBUCKET_CREATE_BRANCH \
  --name "feature/new-branch" \
  --repo_slug "my-repo" \
  --workspace "my-workspace" \
  --target_hash "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"

Create an issueCreates a new issue in a bitbucket repository, setting the authenticated user as reporter; ensures assignee (if provided) has repository access, and that any specified milestone, version, or component ids exist

bash
composio tools execute BITBUCKET_CREATE_ISSUE \
  --title "Bug: Login not working" \
  --content "Users are unable to log in when using Firefox browser" \
  --repo_slug "repo-name" \
  --workspace "workspace123"

Create an issue commentAdds a new comment with markdown support to an existing bitbucket issue

bash
composio tools execute BITBUCKET_CREATE_ISSUE_COMMENT \
  --content "This is a comment with **bold** text" \
  --issue_id "123" \
  --repo_slug "my-repo" \
  --workspace "my-workspace"

Create a pull requestCreates a new pull request in a specified bitbucket repository, ensuring the source branch exists and is distinct from the (optional) destination branch

bash
composio tools execute BITBUCKET_CREATE_PULL_REQUEST \
  --title "Feature: Add new login page" \
  --repo_slug "my-repo" \
  --workspace "my-workspace" \
  --source_branch "feature/login-page"

Generate Type Definitions

Generate typed schemas for Bitbucket tools to get autocomplete and type safety in your project:

bash
# Auto-detect language
composio generate --toolkits bitbucket

# TypeScript
composio ts generate --toolkits bitbucket

# Python
composio py generate --toolkits bitbucket

Tips & Tricks

  • Always inspect a tool's input schema before executing: composio tools info <TOOL_NAME>
  • Pipe output with jq for better readability: composio tools execute TOOL_NAME -d '{}' | jq
  • Set COMPOSIO_API_KEY as an environment variable for CI/CD pipelines
  • Use composio dev logs tools to inspect execution logs and debug issues

Next Steps

  • Try asking your coding agent to perform various Bitbucket operations
  • Explore cross-app workflows by connecting more toolkits
  • Set up triggers for real-time automation
  • Use composio generate for typed schemas in your projects

How to build Bitbucket MCP Agent with another framework

FAQ

What is the Composio Universal CLI?

The Composio Universal CLI is a single command-line interface that lets coding agents and developers interact with 850+ SaaS applications. It handles authentication, tool discovery, action execution, and trigger setup — all from the terminal, without needing to configure MCP servers.

Which coding agents work with the Composio CLI?

Any coding agent that can run shell commands works with the Composio CLI — including Claude Code, Codex, OpenCode, OpenClaw, and others. Once the CLI is installed, agents automatically discover and use the composio commands to interact with Bitbucket and other connected apps.

How is the CLI different from using an MCP server for Bitbucket?

MCP servers require configuration and can be token-heavy for complex workflows. The CLI gives agents a direct, lightweight interface — no server setup needed. Agents simply call composio commands like any other shell tool. It's faster to set up, more reliable for multi-step tool chaining, and works natively with how coding agents already operate.

How safe is my Bitbucket data when using the Composio CLI?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Bitbucket data and credentials are handled as safely as possible. You can also bring your own OAuth credentials for full control.

Used by agents from

Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai

Never worry about agent reliability

We handle tool reliability, observability, and security so you never have to second-guess an agent action.