A Model Context Protocol (MCP) server for Bitbucket that allows MCP-compatible clients (such as Claude Desktop) to read repositories and source code from your Bitbucket workspace.
This server provides the following tools:
| Tool | Description |
|---|---|
list_workspaces |
List all Bitbucket workspaces accessible by your account |
list_repositories |
List repositories in a workspace |
get_repository |
Get repository details |
list_branches |
List branches in a repository |
list_commits |
List commit history |
get_commit |
Get details for a specific commit |
browse_directory |
Browse repository directory structure |
get_file_content |
Read file contents |
search_code |
Search code in a repository |
get_pull_requests |
List pull requests |
get_readme |
Read a repository README |
get_commit_diff |
Show commit diff |
- Node.js 18 or newer
- Bitbucket account with access to the repositories you want to read
- Bitbucket App Password (do not use your regular account password)
- Sign in to Bitbucket
- Click your avatar (bottom-right) → Personal settings
- Open App passwords in the left menu
- Click Create app password
- Add a label (for example:
MCP Server) - Grant the following permissions:
- Repositories:
Read - Pull requests:
Read - Workspace:
Read
- Repositories:
- Click Create and save the generated password (it is shown only once)
# Clone or enter the project folder
cd d:\Projects\Pribadi\MCP_bitbucket
# Install dependencies
npm install
# Build
npm run buildWindows
%APPDATA%\Claude\claude_desktop_config.json
macOS
~/Library/Application Support/Claude/claude_desktop_config.json
Add this entry to your claude_desktop_config.json:
{
"mcpServers": {
"bitbucket": {
"command": "node",
"args": ["d:\\Projects\\Pribadi\\MCP_bitbucket\\dist\\index.js"],
"env": {
"BITBUCKET_USERNAME": "your-bitbucket-username",
"BITBUCKET_APP_PASSWORD": "your-app-password",
"BITBUCKET_WORKSPACE": "your-workspace-slug"
}
}
}
}Notes:
- Replace
your-bitbucket-usernamewith your Bitbucket username - Replace
your-app-passwordwith your Bitbucket App Password - Replace
your-workspace-slugwith your workspace slug (optional; you can also pass workspace as a tool parameter) - Use double backslashes (
\\) in Windows paths
Close and reopen Claude Desktop so it can load the MCP server.
After setup, you can ask Claude:
- "List all repositories in my workspace"
- "Read
src/index.tsfrom repositorymy-project" - "Show the folder structure of repository
backend-api" - "Search for
validateUserusage in repositoryauth-service" - "Show recent commits from branch
develop" - "Read README from repository
frontend-app" - "Show open pull requests"
# Build
npm run build
# Run manually (for testing)
BITBUCKET_USERNAME=user BITBUCKET_APP_PASSWORD=pass npm startMCP_bitbucket/
├── src/
│ ├── index.ts # Entry point and MCP server setup
│ ├── bitbucket-client.ts # Bitbucket API client
│ └── tools.ts # MCP tool definitions
├── dist/ # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md
- Store App Password in environment variables, not in source code
- Use read-only permissions whenever possible
- All communication uses HTTPS
- Never commit credentials into the repository