{"_id":"@ameforge/bitbucket-mcp","_rev":"3-0d105808307108789e09732877e77bd7","name":"@ameforge/bitbucket-mcp","dist-tags":{"latest":"0.2.0"},"versions":{"0.0.0-stage":{"name":"@ameforge/bitbucket-mcp","version":"0.0.0-stage","_id":"@ameforge/bitbucket-mcp@0.0.0-stage","stub":true,"maintainers":[{"name":"pnam16","email":"pnamhn16@gmail.com"}],"dist":{"shasum":"3e99989c32b5c8188f6a43f1b969621ba4f7ab3d","tarball":"https://registry.npmjs.org/@ameforge/bitbucket-mcp/-/bitbucket-mcp-0.0.0-stage.tgz","fileCount":2,"integrity":"sha512-BLSQATAF7X048URM6CoGaaOE0LrqGJ5TaQFJr2d1hVQFDOgXIaeS2ixU0gF8gKARe2XCnN535Qxd1af8EdkOhg==","signatures":[{"sig":"MEQCIADpfQPIXQTsTOK0JY4hDRfFWu8GIBWSDYxsaakfyFDaAiAlbOWPVFv2WaLe568qve7FkXMTeNrx1kZAYfqT+v0KKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345},"_npmUser":{"name":"pnam16","email":"pnamhn16@gmail.com"},"description":"Temporary package placeholder for staged publishing","directories":{}},"0.1.0":{"name":"@ameforge/bitbucket-mcp","version":"0.1.0","keywords":["mcp","mcp-server","model-context-protocol","bitbucket","bitbucket-cloud","atlassian","git","pull-request","code-review","code-search","claude","claude-code","claude-desktop","cursor","windsurf","codex","gemini","ai","ai-agent","llm"],"license":"MIT","_id":"@ameforge/bitbucket-mcp@0.1.0","maintainers":[{"name":"pnam16","email":"pnamhn16@gmail.com"}],"bin":{"bitbucket-mcp":"dist/index.js"},"dist":{"shasum":"fbffbf039234edcea34e3b0b1624f941f6fbad3f","tarball":"https://registry.npmjs.org/@ameforge/bitbucket-mcp/-/bitbucket-mcp-0.1.0.tgz","fileCount":5,"integrity":"sha512-uoEb5n+/xuv9sYylKH/+6P5XZdyBPhXGCK/eSBLOOMk+ZT3wILX89PrjAM0vUihHV7g0o8Ejb8UthfqVDpK9nw==","signatures":[{"sig":"MEUCIQCduSJVtkjPnyuywn4rwOJgJNuDltfPr9tVFu0w8zosXwIgQ0xweTEUr/xxPXitFT/ZRREHLN+LUEC02TgUPhyE48g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG9llYkDWdck1xjclPYjYuMLAAY3cIPCPTQtMECgHnU4AiBTyscKcTyVIlND7obJsxFW+qy2bW19Y9cCpUm70V7xig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363262},"main":"dist/index.js","type":"module","scripts":{"test":"node --test","build":"rsbuild build","start":"node src/index.js","release":"release-it"},"_npmUser":{"name":"pnam16","email":"pnamhn16@gmail.com"},"repository":{"url":"git+https://github.com/ameforge/atlassian-mcp.git","type":"git","directory":"packages/bitbucket"},"description":"MCP server for Bitbucket Cloud (REST API 2.0)","directories":{},"_nodeVersion":"22.23.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.76","dotenv":"^16.6.1","@rsbuild/core":"^2.3.1","@modelcontextprotocol/sdk":"^1.32.2"},"_npmOperationalInternal":{"tmp":"tmp/bitbucket-mcp_0.1.0_1794222715937_0.2712678858455043","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"_id":"@ameforge/bitbucket-mcp@0.2.0","bin":{"bitbucket-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/ameforge/atlassian-mcp/issues"},"dist":{"shasum":"a87249b4abab0c987309a83645579ecfb09e0dc1","tarball":"https://registry.npmjs.org/@ameforge/bitbucket-mcp/-/bitbucket-mcp-0.2.0.tgz","fileCount":5,"integrity":"sha512-Bl9Yt48kRA5Ajy8e/IIDaqO2EL9kYAxJ8P41K8r4AfNlqB32gQoaKcYAv3Gl5XObMpcquD1RC6tSjFh8B8l49A==","signatures":[{"sig":"MEYCIQCa3cE95VTnJPaIPqiFHEycFxcrZ+27GdNVyzsoABgM+AIhAPUcSUU7HkCAX0Wn936JeZkIKyA/Yh/XJyyqc+WEkLDy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCenXKuz8KT6ow/c7pHVxRmPMLoOqZIKtaGI+nZFxfXyAIgf/hQ0pLpHkylgAfXHdyzW4hVtsa2MoL/Tz50qjwqjIo="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ameforge%2fbitbucket-mcp@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":367596},"main":"dist/index.js","name":"@ameforge/bitbucket-mcp","type":"module","_from":"file:/home/runner/work/_temp/bitbucket/ameforge-bitbucket-mcp-0.2.0.tgz","license":"MIT","scripts":{"test":"node --test","build":"rsbuild build","start":"node src/index.js","release":"release-it"},"version":"0.2.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8f6d2296-f76d-4e33-9158-77626da118b6"}},"homepage":"https://github.com/ameforge/atlassian-mcp#readme","keywords":["mcp","mcp-server","model-context-protocol","bitbucket","bitbucket-cloud","atlassian","git","pull-request","code-review","claude","claude-code","claude-desktop","cursor","windsurf","codex","gemini","ai","ai-agent","llm"],"_resolved":"/home/runner/work/_temp/bitbucket/ameforge-bitbucket-mcp-0.2.0.tgz","_integrity":"sha512-Bl9Yt48kRA5Ajy8e/IIDaqO2EL9kYAxJ8P41K8r4AfNlqB32gQoaKcYAv3Gl5XObMpcquD1RC6tSjFh8B8l49A==","repository":{"url":"git+https://github.com/ameforge/atlassian-mcp.git","type":"git","directory":"packages/bitbucket"},"_npmVersion":"11.19.1","description":"MCP server for Bitbucket Cloud (REST API 2.0)","directories":{},"maintainers":[{"name":"pnam16","email":"pnamhn16@gmail.com"}],"_nodeVersion":"24.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.76","dotenv":"^16.6.1","@rsbuild/core":"^2.3.1","@modelcontextprotocol/sdk":"^1.32.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bitbucket-mcp_0.2.0_1794372888924_0.08508661277771379"}}},"time":{"created":"2026-11-09T11:07:47.415Z","modified":"2026-11-11T04:54:49.462Z","0.0.0-stage":"2026-11-09T11:07:47.415Z","0.1.0":"2026-11-09T11:11:56.023Z","0.2.0":"2026-11-11T04:54:49.041Z"},"license":"MIT","keywords":["mcp","mcp-server","model-context-protocol","bitbucket","bitbucket-cloud","atlassian","git","pull-request","code-review","claude","claude-code","claude-desktop","cursor","windsurf","codex","gemini","ai","ai-agent","llm"],"repository":{"url":"git+https://github.com/ameforge/atlassian-mcp.git","type":"git","directory":"packages/bitbucket"},"description":"MCP server for Bitbucket Cloud (REST API 2.0)","maintainers":[{"name":"pnam16","email":"pnamhn16@gmail.com"}],"readme":"# Bitbucket Cloud mcp\n\nMCP server for Bitbucket Cloud (REST API 2.0). It reads repositories, branches, commits, diffs, files, build results and pull requests. It can open, edit, comment on, approve, request changes on, merge and decline pull requests, and create branches.\n\nThe same tools are also served by [@ameforge/atlassian-mcp](https://github.com/ameforge/atlassian-mcp/tree/main/packages/atlassian) when `BITBUCKET_API_TOKEN` is set there.\n\n## Requirements\n\n- A Bitbucket Cloud account and an Atlassian API token with scopes. Create it at id.atlassian.com, Security, API tokens, \"Create API token with scopes\", and pick at least `read:repository:bitbucket`, `read:pullrequest:bitbucket`, `write:pullrequest:bitbucket` and `read:workspace:bitbucket`.\n- Node.js 18+.\n\n## Quick start\n\nUse Claude Code CLI. Run the command in a regular terminal, not inside a Claude Code session.\n\nbash / zsh (macOS, Linux, Git Bash or WSL on Windows):\n\n```bash\nclaude mcp add bitbucket-mcp \\\n  -e BITBUCKET_EMAIL=\"you@company.com\" \\\n  -e BITBUCKET_API_TOKEN=\"your_api_token\" \\\n  -e BITBUCKET_WORKSPACE=\"your-workspace\" \\\n  -- npx -y @ameforge/bitbucket-mcp@latest\n```\n\nPowerShell (Windows):\n\n```powershell\nclaude mcp add bitbucket-mcp `\n  -e BITBUCKET_EMAIL=\"you@company.com\" `\n  -e BITBUCKET_API_TOKEN=\"your_api_token\" `\n  -e BITBUCKET_WORKSPACE=\"your-workspace\" `\n  -- npx -y @ameforge/bitbucket-mcp@latest\n```\n\nOr add it to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"bitbucket-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ameforge/bitbucket-mcp@latest\"],\n      \"env\": {\n        \"BITBUCKET_EMAIL\": \"you@company.com\",\n        \"BITBUCKET_API_TOKEN\": \"your_api_token\",\n        \"BITBUCKET_WORKSPACE\": \"your-workspace\"\n      }\n    }\n  }\n}\n```\n\nThe server runs on stdio, so it needs no port and no container.\n\nOfficial setup guides:\n\n- Claude Code: [Connect Claude Code to tools via MCP](https://code.claude.com/docs/en/mcp) explains `claude mcp add`, the local, project and user scopes, and the shared `.mcp.json` file.\n- Claude Desktop: [Connect to local MCP servers](https://modelcontextprotocol.io/docs/develop/connect-local-servers) shows, with screenshots, how to open `claude_desktop_config.json` from Settings, Developer, Edit Config, and where to find the logs when a server does not start.\n\n## Environment variables\n\n| Variable              | Required | Description                                                         |\n| --------------------- | -------- | ------------------------------------------------------------------- |\n| `BITBUCKET_EMAIL`     | yes      | Atlassian account email; `ATLASSIAN_EMAIL` is read when it is unset |\n| `BITBUCKET_API_TOKEN` | yes      | API token; `ATLASSIAN_API_TOKEN` is read when it is unset           |\n| `BITBUCKET_WORKSPACE` | no       | Default workspace slug; without it every tool needs `workspace`     |\n\n## Tools\n\nEvery tool takes an optional `workspace`, which defaults to `BITBUCKET_WORKSPACE`.\n\nRead:\n\n| Tool               | What it returns                                                                                      |\n| ------------------ | ---------------------------------------------------------------------------------------------------- |\n| `list_repos`       | Repositories sorted by slug, filtered by `project_key` or `name_filter`                              |\n| `get_repo`         | Default branch, clone URLs, 5 recent commits, open PR count                                          |\n| `get_file`         | File content at `ref`; over 100,000 characters it is cut, a binary file returns no content           |\n| `list_files`       | Files and folders directly inside `path` at `ref`, with file sizes                                   |\n| `list_branches`    | Branches with their last commit, newest first, filtered by `name_filter`                             |\n| `get_branch`       | Head commit, whether it is the default branch, commits behind the default branch                     |\n| `compare_branches` | Commits ahead and behind (up to 100 listed each way) and files changed between `source` and `target` |\n| `get_diff`         | Unified diff and per-file stats for `from_ref..to_ref`; diff text over 100,000 characters is cut     |\n| `get_commits`      | Commits from `branch`, filtered by `since` and `author`, up to `max_results`                         |\n| `get_build_status` | Build and CI results reported on the head commit of a branch, or on a commit                         |\n| `list_prs`         | PRs by `state` (`OPEN`, `MERGED`, `DECLINED`, `ALL`) and `author`, up to 100 per state               |\n| `get_pr`           | Description, reviewers, participants, general and inline comments by file, commits, Jira keys        |\n\nThere is no code search tool: Bitbucket Cloud retired its code search API (it answers 410, CHANGE-3167). Browse folders with `list_files`, or search a local clone, for example `git fetch origin` then `git grep -n \"pattern\" origin/main`.\n\nWrite:\n\n| Tool                   | Effect                                                                                                     |\n| ---------------------- | ---------------------------------------------------------------------------------------------------------- |\n| `create_pr`            | Opens a PR from `source_branch` into `target_branch`, with optional reviewers                              |\n| `update_pr`            | Changes title, description or reviewers; `reviewers` replaces the whole list                               |\n| `add_pr_comment`       | Comments on the PR; with `path` and `line`, inline on that line of the new file; with `parent_id`, a reply |\n| `approve_pr`           | Approves the PR as the token's user                                                                        |\n| `unapprove_pr`         | Withdraws that approval                                                                                    |\n| `request_changes_pr`   | Requests changes as the token's user                                                                       |\n| `unrequest_changes_pr` | Withdraws that change request                                                                              |\n| `merge_pr`             | Merges with the repository's default merge strategy                                                        |\n| `decline_pr`           | Declines the PR                                                                                            |\n| `create_branch`        | Creates `name` from `from` (a branch or commit, default branch if unset); fails if it exists               |\n\nReviewers are given as display names or account IDs. A display name matches an exact name first, then a unique part of a name. When a name matches no one or several people, the tool sends nothing and lists the candidates.\n\nThe state changes are separate tools so an MCP client can allow or deny each one, for example deny `merge_pr` in Claude Code permissions.\n\nLists stop at a page limit instead of walking a whole history. Their result then has `truncated: true`, and a count that stopped reads like `\"500+\"`.\n\nAll logs go to stderr; stdout is reserved for the MCP protocol.\n\n## Development\n\n```bash\npnpm install\npnpm build             # bundle to dist/index.js via rsbuild\npnpm test\n```\n\nRelease from the repo root with `pnpm release:bitbucket`; see [docs/RELEASE.md](https://github.com/ameforge/atlassian-mcp/blob/main/docs/RELEASE.md).\n\n## Support\n\nQuestions or issues? Email [PNam](mailto:pnamhn16@gmail.com).\n\nIf this project helps you, consider buying me a coffee:\n\n<img src=\"https://raw.githubusercontent.com/ameforge/atlassian-mcp/main/docs/buy-me-a-coffee.jpg\" alt=\"Buy Me A Coffee\" width=\"300\">\n\n---\n\nCreated by [PNam](mailto:pnamhn16@gmail.com)\n","readmeFilename":"README.md","homepage":"https://github.com/ameforge/atlassian-mcp#readme","bugs":{"url":"https://github.com/ameforge/atlassian-mcp/issues"}}