Model Context Protocol (MCP) server for Atlassian Bitbucket Data Center with semantic search and AI-powered workflow automation.
Transform natural language queries into precise Bitbucket API operations. Built for LLMs (Claude, GPT-4) to interact intelligently with Bitbucket Data Center.
docker run -it \
-e BITBUCKET_URL=https://bitbucket.example.com \
-e BITBUCKET_AUTH_METHOD=pat \
-e BITBUCKET_TOKEN=your-personal-access-token \
ghcr.io/guerchele/bitbucket-dc-mcp:latest
Create docker-compose.yml:
version: '3.8'
services:
bitbucket-mcp:
image: guerchele/bitbucket-dc-mcp:latest
environment:
BITBUCKET_URL: https://bitbucket.example.com
BITBUCKET_AUTH_METHOD: pat
BITBUCKET_TOKEN: your-personal-access-token
LOG_LEVEL: info
restart: unless-stopped
Then run:
docker-compose up -d
| Variable | Description | Example |
|---|---|---|
BITBUCKET_URL | Your Bitbucket Data Center URL | https://bitbucket.example.com |
BITBUCKET_AUTH_METHOD | Authentication method | pat, oauth2, oauth1, basic |
BITBUCKET_TOKEN | Authentication token (for PAT/Basic) | your-token-here |
| Variable | Default | Description |
|---|---|---|
BITBUCKET_API_VERSION | latest | API version: 1.0 (legacy) or latest (modern) |
LOG_LEVEL | info | Logging level: debug, info, warn, error |
RATE_LIMIT_MAX_REQUESTS | 100 | Max API requests per minute |
REQUEST_TIMEOUT_MS | 30000 | Request timeout in milliseconds |
Note: The BITBUCKET_API_VERSION is automatically detected based on your Bitbucket instance during setup. You typically don't need to set this manually unless you want to override the auto-detection. See API Version Detection Guideā for more details.
docker run -it --rm \
-e BITBUCKET_URL=https://bitbucket.example.com \
-e BITBUCKET_AUTH_METHOD=pat \
-e BITBUCKET_TOKEN=abc123xyz \
guerchele/bitbucket-dc-mcp:latest
docker run -it -d \
--name bitbucket-mcp \
-v ~/.bitbucket-mcp:/root/.bitbucket-mcp \
-e BITBUCKET_URL=https://bitbucket.example.com \
-e BITBUCKET_AUTH_METHOD=pat \
-e BITBUCKET_TOKEN=abc123xyz \
guerchele/bitbucket-dc-mcp:latest
docker run -it --rm \
-e BITBUCKET_URL=https://bitbucket.example.com \
-e BITBUCKET_AUTH_METHOD=pat \
-e BITBUCKET_TOKEN=abc123xyz \
-e LOG_LEVEL=debug \
guerchele/bitbucket-dc-mcp:latest
Edit your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"bitbucket-datacenter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BITBUCKET_URL=https://bitbucket.example.com",
"-e",
"BITBUCKET_AUTH_METHOD=pat",
"-e",
"BITBUCKET_TOKEN=your-token",
"guerchele/bitbucket-dc-mcp:latest"
]
}
}
}
ā
Semantic Search Engine - Natural language queries with >90% relevance
ā
Three MCP Tools - search_ids, get_id, call_id
ā
Multi-Authentication - OAuth 2.0, PAT, OAuth 1.0a, Basic Auth
ā
Production Resilient - Circuit breakers, rate limiting, retries
ā
Secure by Default - Non-root user, credential redaction
ā
Multi-Architecture - Supports linux/amd64 and linux/arm64
search_ids - Find Bitbucket operations using natural language
{"query": "create repository", "limit": 5}
get_id - Get operation details and schema
{"operation_id": "createRepository"}
call_id - Execute Bitbucket API operations
{"operation_id": "createRepository", "parameters": {...}}
The container includes built-in health checks:
# Check container health status
docker inspect --format='{{.State.Health.Status}}' bitbucket-mcp
# View health check logs
docker logs bitbucket-mcp
nodejs, UID 1001)# Check logs for errors
docker logs bitbucket-mcp
Common causes:
BITBUCKET_URL environment variable# Run health check manually
docker exec bitbucket-mcp node /app/dist/healthcheck.js
# Test connectivity from container
docker exec bitbucket-mcp wget -O- https://bitbucket.example.com/status
LGPL-3.0 License - see LICENSEā
Contributions welcome! See CONTRIBUTING.mdā
Need help? Open an issue on GitHubā
Content type
Image
Digest
sha256:c64b9236dā¦
Size
264.1 MB
Last updated
10 months ago
docker pull guerchele/bitbucket-dc-mcp