ClawLink

How to connect Bitbucket to Hermes Agent

Connect Bitbucket to Hermes with ClawLink in one click — 105 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.

Get started for free
Hermes Agent
Hermes Agent
ClawLink
ClawLink
Bitbucket
Bitbucket
BitbucketOAUTH2MCP

Manage Git repos, pull requests, and issues. Once connected, Hermes Agent can read and act on Bitbucket from chat — pairing, token refresh, and tool wiring handled for you.

105 tools

Most guides for giving Hermes Agent Bitbucket access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Bitbucket setup: pair once in the browser and your always-on Hermes agent can act on Bitbucket for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.

Copy this prompt into Hermes to install the plugin and pair your account.

Prompt for Hermes
Set up ClawLink for Hermes and tell me when it's ready.

1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable

2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin

3. I'll approve it in my browser, then reply "approved".

4. When I say approved, finish setup:
hermes clawlink finish

5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.

Setup

It takes three steps to connect Hermes to Bitbucket.

  1. 1

    Install and pair

    Install the ClawLink plugin, then pair Hermes with a one-time browser approval:

    hermes plugins install ClawLink-HQ/hermes-plugin --enable
  2. 2

    Connect Bitbucket

    One-click OAuth in the dashboard.

  3. 3

    Use it from chat

    Ask Hermes Agent: "What can you do with Bitbucket?"

Install by command

The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:

hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin    # prints an approval link — open it and approve
hermes clawlink finish   # after approving in the browser
hermes clawlink test

Then connect Bitbucket in the ClawLink dashboard — a one-click OAuth approval, no API keys.

Verify the connection by asking Hermes:

Get the pull request <pr id> in <workspace>/<repo> with bitbucket_get_pull_request, then its diff with bitbucket_get_pull_request_diff, and summarize what changes and whether anything looks risky.

Using a different agent?

The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

npx -y @useclawlink/cli login

login opens the same browser approval and stores a credential locally. Once Bitbucket is connected in the dashboard, that agent calls the same 105 Bitbucket tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.

Bitbucket MCP for Hermes

Looking for a Bitbucket MCP server for Hermes Agent? ClawLink connects Bitbucket to Hermes Agent and exposes 105 Bitbucket tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw Bitbucket integration works the same way.

The head-query answer the AI Overview leads with is Composio's Connect CLI: a curl pipe into a shell, then an MCP block in ~/.hermes/config.yaml carrying an x-consumer-api-key. The manual alternative is now harsher than it used to be: Atlassian fully deprecated Bitbucket app passwords on 2026-07-28, so the old paste-an-app-password tutorials are wrong, and the current advice is to generate an Atlassian API Token instead. This page is the route neither engine leads with: the plugin pairs Hermes to ClawLink in four commands, Bitbucket authorizes in the browser, and the 105 tools below work from chat with no token, app password, or config block anywhere on the Hermes machine. The manual route went from bad to worse this summer; the hosted route did not change at all.

Is it safe to connect Bitbucket to Hermes Agent?

The AI Overview's answer to this query is "generally safe with official integrations plus least-privilege", and the named risks map onto this setup in a specific way:

  • No token exists to over-privilege or leak. The manual routes ask for an app password (now deprecated) or an API token with scopes; a pasted token with too many scopes is the classic over-privileged credential. The hosted connection is the account itself, granted once in the browser, revoked from the dashboard.
  • Repo content is untrusted input. Code, PR descriptions, and issue text can contain instructions aimed at the agent reading them. Treat fetched content as data, not commands, and require a confirmation step before writes like creating PRs or approving changes.
  • IP allowlists are the one manual setting that can break a hosted connection. If your account or workspace restricts API access by IP, the hosted connection's calls can be blocked with no way to fix it from chat; the fix is to allow the connection's traffic or remove the restriction. Worth checking before assuming a broken 403 is the agent's fault.

Atlassian's own security docs are the repeated reference in every answer to this query, and their advice, least privilege plus human review, is exactly what a hosted connection makes easy: nothing to scope by hand, and confirmation before the writes that touch other people's work.

What the Hermes Agent Bitbucket integration can do

105 Bitbucket tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 105.

30 of 105 Bitbucket tools for Hermes

ToolWhat it does
Approve pull request bitbucket_approve_pull_requestApprove a pull request
Browse repository path bitbucket_browse_repository_pathBrowse repository contents at a path
Create branch bitbucket_create_branchCreate a new branch in a repository
Create issue bitbucket_create_issueCreate a new issue in a repository
Create pull request bitbucket_create_pull_requestCreate a new pull request
Create repository bitbucket_create_repositoryCreate a new repository
Create repositories commits2 bitbucket_create_repositories_commits2List commits from a revision using POST method
Get branch bitbucket_get_branchRetrieves detailed information about a specific branch in a Bitbucket repository
Get commit build status bitbucket_get_commit_build_statusGet a specific build status for a commit in Bitbucket
Get commit changes bitbucket_get_commit_changesRetrieve a page of changes made in a specified commit, showing all changed files with their
Get commit comment bitbucket_get_commit_commentRetrieves a specific comment from a commit by its ID
Get commit diff bitbucket_get_commit_diffRetrieve the unified diff between two provided revisions or for a single commit in a Bitbucket
Get current user2 bitbucket_get_current_user2Retrieve complete profile information for the currently authenticated Bitbucket user
Get deployment environment variables bitbucket_get_deployment_environment_variablesRetrieves deployment environment level variables for a specific Bitbucket repository environment
Get file from repository bitbucket_get_file_from_repositoryRetrieves a specific file's content from a Bitbucket repository at a given commit (hash
Get hook events bitbucket_get_hook_eventsRetrieves a paginated list of all valid webhook events for a specified entity type (repository
Get openid configuration bitbucket_get_openid_configurationRetrieves the OpenID Connect discovery configuration for Bitbucket Pipelines OIDC
Get pull request bitbucket_get_pull_requestGet a single pull request by ID with complete details
Get pull request comment bitbucket_get_pull_request_commentRetrieve a specific comment from a pull request by its ID
Get pull request commits bitbucket_get_pull_request_commitsRetrieve commits for a specified pull request
Get pull request diff bitbucket_get_pull_request_diffFetch the unified diff for a Bitbucket pull request (follows 302 redirect to repository diff)
Get pull request diffstat bitbucket_get_pull_request_diffstatGet the diffstat for a Bitbucket pull request, showing all changed files with their change
Get repositories branching model bitbucket_get_repositories_branching_modelReturn the branching model as applied to the repository
Get repositories commit bitbucket_get_repositories_commitRetrieve detailed information about a specific commit in a Bitbucket repository
Get repositories commit comments bitbucket_get_repositories_commit_commentsRetrieves all comments on a specific commit in a Bitbucket repository
Get repositories commit report bitbucket_get_repositories_commit_reportReturns a single report matching the provided ID from a commit
Get repositories commit reports bitbucket_get_repositories_commit_reportsGet reports linked to a specific commit
Get repositories commit reports annotations bitbucket_get_repositories_commit_reports_annotationsReturns a single annotation matching the provided ID from a commit report
Get repositories commit statuses bitbucket_get_repositories_commit_statusesReturns all build statuses (e.g., CI/CD pipeline results) for a specific commit
Get repositories effective branching model bitbucket_get_repositories_effective_branching_modelRetrieves the effective branching model for a Bitbucket repository, showing which branching

Try it: find the Bitbucket tool you need

Browse the 30 Bitbucket tools

Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.

Example prompts

Get the pull request <pr id> in <workspace>/<repo> with bitbucket_get_pull_request, then its diff with bitbucket_get_pull_request_diff, and summarize what changes and whether anything looks risky.

Read the file src/config.ts from the repo <workspace>/<repo> with bitbucket_get_file_from_repository and tell me what it configures, without modifying anything.

Create a pull request in <workspace>/<repo> with bitbucket_create_pull_request from branch <source> to <destination> with the title and description I give you. Show me the arguments before sending.

For the pull request <pr id>, read its diff and comments first, then approve it with bitbucket_approve_pull_request only if nothing looks unresolved, and tell me what you decided and why.

How the Bitbucket tools behave

Details that decide whether a Bitbucket prompt reads the right repository or writes to the wrong branch.

  • Everything is addressed as workspace/repo. Bitbucket keys its objects by workspace and repository slug, and a wrong slug fails as a permission error rather than a not-found, which makes 403s on this provider suspicious until the slugs are confirmed.
  • PRs are the review surface. bitbucket_get_pull_request, the diff tools, bitbucket_get_pull_request_comment, and bitbucket_approve_pull_request cover the review flow; an agent grounded in a PR's diff and comments is the useful shape of this integration.
  • Commit reads are layered. bitbucket_get_commit_diff, bitbucket_get_commit_changes, build status, and commit reports each answer a different question, and an agent that conflates them over-fetches and hits rate limits.
  • Branches and repositories are writable. bitbucket_create_branch and bitbucket_create_repository are visible writes in shared infrastructure, worth a confirmation step.
  • File reads are cheap, walks are not. bitbucket_browse_repository_path and bitbucket_get_file_from_repository read one path at a time, so enumerate the tree first and read only the files you need.

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Bitbucket working from chat.

ManualClawLink
Connection flowRegister a Bitbucket app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift.Users connect Bitbucket through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code.
Ongoing maintenanceYou own refresh logic, permission debugging, environment config, and every provider-specific edge case for Bitbucket.ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure.
Agent usabilityYou still need to expose the right Bitbucket actions to the runtime in a format your agent can reliably use.105 tools for Bitbucket are already exposed through ClawLink, so the agent can read and act from chat immediately.

Composio also exposes Bitbucket to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Bitbucket in the browser, and the 105 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.

Troubleshooting

Hermes paired but still can't use Bitbucket

Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.

Connection succeeds but no tools appear

Reconnect Bitbucket from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

"Tool schema not loaded yet" error when calling Bitbucket tools

Bitbucket tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Bitbucket call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

Bitbucket returns 403 or "permission denied" on one action while others work

Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

Bitbucket returns 403 or "permission denied" on one action while others work

The causes the engines teach for this error are: the account lacks repository permissions, the credential lacks scopes, an IP allowlist blocks the caller, the workspace or repository slug is wrong, or a stale token needs re-auth. In a hosted connection the credential-scope cause does not exist, and the real checks are account-level. The connected account must have repository-level access for the specific repo, not just workspace access; some endpoints are workspace-admin-only; and a wrong workspace or repo slug in the request fails as a permission error rather than a not-found. Two hosted-specific checks come next: an IP allowlist on the account or workspace can block the hosted connection's calls entirely, which no amount of reconnecting fixes, and a placeholder id from documentation fails like a permission error, so ask the agent to run a browse or get tool first and use a real slug from those results.

Ask the agent to diagnose it:

Run bitbucket_browse_repository_path for the repo in question and show me the real workspace and repo slugs. Quote the exact 403 text, then retry with the real slugs. If the error names IP restrictions, tell me before reconnecting.
Bitbucket starts returning 429 or the agent stalls partway through a repository

Bitbucket's documented base limit is 1,000 requests per hour, rolling, and a 429 is the response when an agent walks a large repository one call at a time: every file, then every commit, then every PR, each a separate request. The response is not to retry immediately, which lands in the same hour window, but to change the shape of the work: one path or one PR at a time, and have the agent tell you what it intends to enumerate before it starts. If a bulk audit is genuinely needed, running it in stages across turns is more reliable than one sweep, and a plain read of a repo's file tree is far cheaper than walking every file's contents.

Ask the agent to diagnose it:

Tell me how many Bitbucket calls you have made in the last hour and what you were enumerating. Quote any rate-limit text from the last response. Do not call Bitbucket again until I reply.
Bitbucket tools are missing, or one tool name is not found

Two different failures. If Hermes shows no Bitbucket tools at all, the connection or pairing is incomplete: confirm the plugin was installed with --enable, that both hermes clawlink begin and hermes clawlink finish ran, that Bitbucket shows as connected in the dashboard, and start a fresh chat. If most tools work and a single name fails, that name is wrong rather than missing: the error lists the closest real tools, and the real catalog is one clawlink_list_tools --integration bitbucket away. There is also a first-call timing case unique to this setup: schemas load on demand, so the opening Bitbucket call in a fresh session can arrive before the catalog and needs one retry. What does not apply is the advice for this symptom that assumes a local MCP server declared in an mcp.json with env vars, which is what the search results teach.

Ask the agent to diagnose it:

List the Bitbucket tools you actually have access to. If there are none, run clawlink_list_integrations and confirm the plugin pair, then tell me what you see. If there are, tell me which one reads a file from a repository and use that exact name.
OAuth finished in the browser but the account is still missing

Try reconnecting Bitbucket and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

FAQ

Is there a Hermes Agent Bitbucket integration?

Yes. ClawLink is the fastest way to connect Hermes to Bitbucket: link your Bitbucket account once in the browser and Hermes Agent can call the Bitbucket API through 105 ready-made tools — no custom code or token handling.

How do I connect Bitbucket to Hermes with ClawLink?

Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect Bitbucket in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.

How long does it take to connect Bitbucket to Hermes Agent?

About two minutes. Sign in, click Connect next to Bitbucket in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.

Why use ClawLink instead of wiring Bitbucket up myself?

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Bitbucket working from chat.

Do I need a Bitbucket app password or Atlassian API token?

No, and the timing makes this worth stating plainly. Atlassian removed app passwords on 2026-07-28, so the app-password flows every older tutorial teaches now fail, and the replacement the docs point to is generating an Atlassian API Token. This page needs neither: the plugin pairs once through hermes clawlink begin and finish, Bitbucket authorizes on its own consent screen in the browser, and the connection is stored server-side. There is no credential on the Hermes machine to deprecate, rotate, or leak, and disconnecting from the dashboard revokes the agent's access immediately.

What can the agent do in Bitbucket?

The 105 tools cover the repository surface: repositories and their contents, pull requests and their diffs, comments, and approvals, branches, issues, commits and their build statuses, and commit reports. The writes to be deliberate about are pull requests, branches, and approvals, because they appear in other people's review workflow. Reads come first, and the pull-request review surface is the part teams actually use: an agent that reads a PR diff and its comments is more useful than one that creates branches on demand.

Is it safe to connect Bitbucket to an always-on Hermes agent?

The AI Overview answers this query with "generally safe with official integrations plus least-privilege", and its named risks are prompt injection, over-privileged tokens, unverified third-party MCP servers, and IP allowlists. The hosted connection removes the token half: there is no over-privileged token to create, because the grant is the account itself, and no third-party MCP server to vet, because the plugin is the integration. The behavioral half is yours: treat repo content as untrusted input, start with reads, require confirmation before writes like creating PRs or approving changes, and know that if your workspace restricts access by IP, the hosted connection's calls can be blocked entirely.

How is this different from connecting Bitbucket through Composio?

The underlying Bitbucket API is the same, so the capability difference is small; the setup and upkeep difference is not. The Composio route the AI Overview teaches starts with piping their install script into a shell, then hand-editing ~/.hermes/config.yaml with an MCP server block and a consumer key, infrastructure you then own. Here the plugin install and one pairing handshake are the entire client-side story, and Bitbucket sits alongside your other connected accounts with one place to revoke. Choose on how much you want to run, not on features.

Hermes paired but still can't use Bitbucket

Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.