{"name":"io.github.b1ff/atlassian-dc-mcp-bitbucket","slug":"b1ff-atlassian-dc-mcp-bitbucket","title":null,"description":"MCP server for Atlassian Bitbucket Data Center - interact with repositories and code","url":"https://mcp.market/server/b1ff-atlassian-dc-mcp-bitbucket","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":49,"stars":99,"forks":41,"downloads_week":1155,"last_push_at":"2026-09-02T21:18:52.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/b1ff/atlassian-dc-mcp","website":null,"version":"0.34.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@atlassian-dc-mcp/bitbucket","version":"0.34.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Absolute path to a shared dotenv-style config file. When set, values are read from this file before direct environment variable overrides are applied.","format":"string","name":"ATLASSIAN_DC_MCP_CONFIG_FILE"},{"description":"Bitbucket host domain (e.g. your-instance.atlassian.net). Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE or BITBUCKET_API_BASE_PATH.","format":"string","name":"BITBUCKET_HOST"},{"description":"Bitbucket API base path (alternative to BITBUCKET_HOST). Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE or BITBUCKET_HOST.","format":"string","name":"BITBUCKET_API_BASE_PATH"},{"description":"Bitbucket Personal Access Token or API token. Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE.","format":"string","isSecret":true,"name":"BITBUCKET_API_TOKEN"}]}],"tools":[{"name":"bitbucket_canMergePullRequest","description":"Check whether a pull request can be merged. Read-only: returns canMerge, whether the pull request is conflicted, and any merge-check vetoes (e.g. missing approvals, unresolved tasks, failed builds). Use this before bitbucket_mergePullRequest to see what is blocking a merge.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_createBranch","description":"Create a branch in a Bitbucket repository, forked from a branch, tag or commit. Use this before bitbucket_createPullRequest when the source branch does not exist yet. The response contains the new branch's 'id' (e.g. 'refs/heads/feature/my-branch'), which is what bitbucket_createPullRequest expects as fromRefId.","write_action":true,"price_micros":0,"input_schema":null},{"name":"bitbucket_createPullRequest","description":"Create a new pull request in a Bitbucket repository. Supports fork-based pull requests by passing fromProjectKey/fromRepositorySlug when the source repository differs from the destination (projectKey/repositorySlug). IMPORTANT: Before creating a PR, use bitbucket_getRequiredReviewers to fetch required reviewers for the source and target branches to ensure the PR is not created without mandatory re","write_action":true,"price_micros":0,"input_schema":null},{"name":"bitbucket_getBranchDiff","description":"Get the diff between two branches, tags or commits — including branches that have no pull request yet. Returns the same comparison as the Bitbucket 'compare' view: changes reachable from sourceBranch but not from targetBranch, rendered as a unified diff. targetBranch defaults to the repository's default branch. Use this to review work in progress before a PR exists; once a PR exists, prefer bitbuc","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getCommits","description":"Get commits for a Bitbucket repository","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getDashboardPullRequests","description":"Get pull requests from the Bitbucket dashboard across all repositories. Useful for finding all PRs where you are the author, reviewer, or participant without specifying a project or repository.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getFileContent","description":"Get the raw content of a file in a Bitbucket repository, at a branch, tag or commit. Use this to read a source file without cloning the repository. 'at' defaults to the repository's default branch. Pointing 'path' at a directory returns that directory's git tree listing instead of file content.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getInboxPullRequests","description":"Get pull requests from the authenticated user's inbox that need their review. Returns PRs across all repositories where the user is a reviewer.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getPR_CommentsAndAction","description":"Get comments for a Bitbucket pull request and other actions, like approvals","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getProject","description":"Get a specific Bitbucket project by key","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getProjects","description":"Get a list of Bitbucket projects","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getPullRequest","description":"Get a specific pull request by ID. Returns full details including title, description, reviewers, participants, author, source/target branches, current state, and version (needed for bitbucket_updatePullRequest).","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getPullRequestChanges","description":"Get the changes for a Bitbucket pull request","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getPullRequestDiff","description":"Get text diff for a specific file in a Bitbucket pull request. Returns plain text diff format. Note: Before getting diff, use getPullRequestChanges to understand what files were changed in the PR","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getPullRequests","description":"Get pull requests for a Bitbucket repository","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getRepositories","description":"Get repositories for a Bitbucket project","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getRepository","description":"Get a specific Bitbucket repository","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getRequiredReviewers","description":"Get required reviewers for pull request creation. Returns a set of users who are required reviewers for pull requests created from the given source repository and ref to the given target ref in this repository.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_getUser","description":"Get a Bitbucket user by their slug, or search for users by name/email to discover their slug. Use this to resolve userSlug for bitbucket_submitPullRequestReview when it is not already known from a comment response or PR participant list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_mergePullRequest","description":"Merge a pull request. IMPORTANT: you MUST first call bitbucket_getPullRequest to get the current 'version' — it is required for optimistic locking and a stale version is rejected. The merge is refused if the pull request is conflicted or a merge check vetoes it; use bitbucket_canMergePullRequest to inspect blockers first. This operation is not reversible through the API. …","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_postPullRequestComment","description":"Post a comment to a Bitbucket pull request. Use pending: true to create a draft comment that is only visible to you until you call bitbucket_submitPullRequestReview. NOTE: pending only works when filePath is provided (file-level or inline comments). True top-level PR comments (no filePath) are always posted live and cannot be drafted. Use severity: 'BLOCKER' to post the comment as a task — tasks m","write_action":true,"price_micros":0,"input_schema":null},{"name":"bitbucket_searchCode","description":"Search code across Bitbucket. The query supports search modifiers like 'project:<key>', 'repo:<key>/<slug>', and 'ext:<extension>' to scope or filter results (e.g. 'project:TEST authenticate', 'repo:TEST/demo ext:js TODO'). NOTE: the 'repo:' modifier requires the project key — 'repo:projectkey/repositoryslug', not a bare slug. Returns matching files with hit contexts (snippets).","write_action":false,"price_micros":0,"input_schema":null},{"name":"bitbucket_submitPullRequestReview","description":"Submit a pull request review, publishing all pending (draft) comments and setting the reviewer's verdict. This is equivalent to clicking 'Submit Review' in the Bitbucket UI. Use after posting comments with pending: true. To resolve userSlug: (1) check author.slug in any comment you posted this session, (2) check the reviewers/participants array from bitbucket_getPullRequest, or (3) call bitbucket_","write_action":true,"price_micros":0,"input_schema":null},{"name":"bitbucket_updatePullRequest","description":"Update the title, description, reviewers, destination branch or draft status of an existing pull request. IMPORTANT: You MUST first call bitbucket_getPullRequest to get the current 'version' number — this is required for optimistic locking and the call will fail without it. The reviewers parameter replaces ALL existing reviewers. If you want to preserve existing reviewers, include those from the c","write_action":true,"price_micros":0,"input_schema":null},{"name":"bitbucket_updatePullRequestComment","description":"Update an existing pull request comment. Use to edit text, change severity, change task state, or resolve/reopen the comment thread. On a BLOCKER (task) comment, state: 'RESOLVED' ticks the task; threadResolved: true toggles the thread-level 'Resolve' button. These are independent and can be set separately. Requires the current 'version' from optimistic locking; fetch it via bitbucket_getPR_Commen","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-20T16:19:46.324Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T16:19:46.314Z","components":{"code":{"score":25,"max":25,"notes":["935 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 18 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@atlassian-dc-mcp/bitbucket","version":"0.34.0","found":true,"hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-09-02T21:16:53.366Z","repositoryUrl":"git+https://github.com/b1ff/atlassian-dc-mcp.git","weeklyDownloads":1155}],"repo":{"found":true,"owner":"b1ff","repo":"atlassian-dc-mcp","archived":false,"pushedAt":"2026-09-02T21:18:52Z","stars":99,"forks":41,"openIssues":12,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/1667469?v=4","ownerCreatedAt":"2012-04-22T08:13:49Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/1667469?v=4&s=128","source":"github"},"presence":{"stars":99,"forks":41,"downloadsWeek":1155,"license":"MIT","lastPushAt":"2026-09-02T21:18:52.000Z","score":49}}}},"grade_history":[],"reviews":[]}