bitbucket-mcp-server
Provides tools for managing Bitbucket Cloud repositories, branches, pull requests, and deployments.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bitbucket-mcp-serverlist my open pull requests"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bitbucket MCP Server
A community Model Context Protocol server for Bitbucket Cloud. Gives AI agents (Copilot, Claude, etc.) safe, typed access to repositories, branches, pull requests, and deployments.
Quick start
# 1 — Install
npm ci
# 2 — Configure (copy and fill in your credentials)
cp .env.example .env
# 3 — Build
npm run build
# 4 — Run
node build/index.jsFeatures
Area | Tools |
Repositories |
|
Branches |
|
Pull Requests |
|
Deployments |
|
Configuration
Environment variables
Variable | Required | Default | Description |
| Yes* | — | API token (Bearer auth — recommended) |
| Yes* | — | Bitbucket account email (Basic auth — legacy) |
| Yes* | — | App Password (Basic auth — legacy) |
| Yes | — | Workspace slug |
| No |
| API base URL (override for testing) |
| No |
|
|
| No |
| HTTP server port (only when |
| No |
| HTTP server bind address |
| No |
|
|
| No |
|
|
* Authentication: set
BITBUCKET_API_TOKENor bothBITBUCKET_USERNAME+BITBUCKET_APP_PASSWORD. If both are provided, the API token takes priority.
MCP client configuration
Local (stdio — default)
Add this to your MCP client settings (VS Code, Claude Desktop, etc.):
{
"mcpServers": {
"bitbucket": {
"command": "node",
"args": ["/path/to/bitbucket-mcp-server/build/index.js"],
"env": {
"BITBUCKET_API_TOKEN": "your-api-token",
"BITBUCKET_WORKSPACE": "your-workspace"
},
"transportType": "stdio"
}
}
}Remote (HTTP — VPC service)
Deploy the server with MCP_TRANSPORT=http and point clients to the HTTP endpoint:
{
"mcpServers": {
"bitbucket": {
"url": "http://your-mcp-host:3000/mcp",
"transportType": "http"
}
}
}The HTTP server exposes:
Endpoint | Method | Purpose |
| GET | Health check (ALB/ECS probes) |
| POST | MCP JSON-RPC requests |
| GET | SSE stream for server-initiated messages |
| DELETE | Session termination |
Creating a Bitbucket App Password
Note: Bitbucket is deprecating App Passwords. Prefer API tokens (Repository or Workspace Access Tokens) for new setups.
Click Create app password
Select permissions:
Repositories: Read, Write, Admin
Pull requests: Read, Write
Account: Read
Copy the generated password
Development
Prerequisites
Node.js 24+
npm
Scripts
npm run build # Compile TypeScript → build/
npm run dev # Watch mode (tsc --watch)
npm run typecheck # Type-check without emitting
npm run lint # ESLint
npm run lint:fix # ESLint with auto-fix
npm run format # Prettier write
npm run format:check # Prettier check
npm run test # Vitest (single run)
npm run test:watch # Vitest (watch)
npm run test:coverage # Vitest with coverage
npm run inspector # MCP Inspector UIProject structure
src/
├── index.ts # Entry-point — McpServer setup & tool registration
├── config.ts # Zod-validated environment config (singleton)
├── logger.ts # Pino structured logger
├── httpClient.ts # Axios instance w/ retry, rate-limit logging
├── errors.ts # Custom error hierarchy
├── schemas.ts # Zod input schemas for every tool
├── types.ts # Bitbucket API response interfaces
├── *.test.ts # Unit tests (Vitest)
└── handlers/
├── repository.ts # Repos, branches, tags, commits, clone
├── branch.ts # Branch creation
├── pullRequest.ts # PR CRUD, review, merge, comments
└── deployment.ts # Deployment listing & detailsArchitecture highlights
MCP SDK 1.x high-level API — uses
McpServer.tool()with native Zod schema registration (no manual JSON-Schema).Zod everywhere — config validated at startup; tool inputs validated per-request.
Structured logging — pino with JSON output in production, pretty-print in development.
Automatic retries — axios-retry with exponential back-off for 429 / 5xx / network errors.
Rate-limit awareness — logs warnings when Bitbucket
X-RateLimit-Remainingdrops below threshold.Custom error classes —
ValidationError,BitbucketApiError,NotFoundError,ConfigError.No
any— fully typed handlers and schemas.
Docker
The Dockerfile defaults to HTTP mode (MCP_TRANSPORT=http) for containerised deployments.
# Build
docker build -t bitbucket-mcp-server .
# Run (HTTP mode — default in Docker)
docker run --env-file .env -p 3000:3000 bitbucket-mcp-serverOr using Docker Compose:
docker compose upThe Dockerfile uses a multi-stage build with node:24-slim, runs as a non-root user, and includes a HEALTHCHECK instruction.
Reliability
Concern | How it's handled |
Transient API failures | 3 retries w/ exponential back-off (1 s → 2 s → 4 s) |
Rate limiting | 429 responses are retried; |
Invalid input | Zod rejects bad input before any API call is made |
Missing config | Startup fails fast with a clear error listing all missing variables |
Graceful shutdown | SIGINT / SIGTERM handlers close the MCP connection cleanly |
Dual transport |
|
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fnops/bitbucket-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server