MCP server providing tools for interacting with Bitbucket Data Center repositories, pull requests, commits, branches, tags, and build status
15 tools with consistent verb-noun naming (list_, get_, create_, search_, resolve_, compare_). All tools have descriptions (avg 120 chars, within 10-1024 range). Input schemas present with typed parameters and descriptions. Output schemas not explicitly documented in source. Error handling present but generic. Missing: tool annotations (readOnlyHint/destructiveHint), output schema documentation, and recovery guidance in error messages.
List the commits reachable from 'from' but not from 'to': what one ref has that the other lacks. For the commits a feature branch adds, pass from=feature and to=main.
Create a new pull request.
Create a tag on a specific commit or ref. Use for release tagging after a PR is merged.
Get build/CI statuses for a specific commit. Use this to check whether CI passed before declaring a PR ready to merge.
Get details of a specific commit including author, message, and timestamp.
Get pull request details including title, state, reviewer approvals, and merge status. The review_summary field reports unresolved comment threads, open tasks and reviewers who requested changes; action_required is true when the pull request is waiting on the author, and is absent when the counts it rests on were not all measured -- read counts_source to see which were.
Output schemas not documented in source code. LLMs cannot plan downstream tool calls or extract required fields without knowing response structure.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) not present. LLMs cannot distinguish safe read-only tools from destructive ones without explicit hints.
Error messages lack recovery guidance. Generic errors do not tell LLMs what to do next or whether to retry.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Get HTTPS and SSH clone URLs for a repository. Use these URLs with git clone to check out the repository locally.
List branches in a repository. Use to discover existing branches before creating a new one or a pull request.
List commits in a repository branch. Use to walk history to find a good base or diagnose what changed.
List pull requests. With project and repo, lists that repository's. Without repo, lists your own pull requests across every repository (the dashboard), narrowed to project when one is given.
List required build checks that must pass before a pull request can be merged. Check this before attempting a merge to understand what CI must succeed.
List tags in a repository. Use to find the latest release baseline or versioning information.
Resolve a branch or tag name to its tip commit SHA. Use as a cheap existence check before cloning or creating a pull request.
Search for repositories by name, optionally filtered by project. Returns project key, slug, and display name.
Report a build/CI status for a commit back to Bitbucket. Use this when running CI pipelines that should surface results in PR views.
Parameter descriptions lack format constraints. E.g., 'commit_id' should specify 'full 40-character SHA' and 'state' enum values are documented but not enforced in schema.
Pagination support incomplete. list_* tools accept 'limit' but no 'offset' or 'cursor' parameter, and responses do not document total count or next_cursor.