A side-by-side look at the MCP Server Atlassian Bitbucket and Commit Check MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Server Atlassian Bitbucket for version control work as a local process; choose Commit Check MCP for version control as a local process. You can also run both side by side in one mcpServers block.
ATLASSIAN_USER_EMAIL, ATLASSIAN_API_TOKEN, ATLASSIAN_BITBUCKET_USERNAME, ATLASSIAN_BITBUCKET_APP_PASSWORD, BITBUCKET_DEFAULT_WORKSPACE.bb_get, bb_post, bb_put.validate_commit_message, validate_branch_name, validate_author_info.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Version Control | Version Control |
| Quality signal | 65/100 · Great | 53/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | No auth required |
| Pricing | Free | Free |
| Required env vars | ATLASSIAN_USER_EMAILATLASSIAN_API_TOKENATLASSIAN_BITBUCKET_USERNAMEATLASSIAN_BITBUCKET_APP_PASSWORDBITBUCKET_DEFAULT_WORKSPACE | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 163 | 1 |
| Directory activity | 6 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 6 | 8 |
| Full listing | View MCP Server Atlassian Bitbucket | View Commit Check MCP |
bb_getRead any Bitbucket data. Returns TOON format by default (30-60% fewer tokens than JSON).
**IMPORTANT - Cost Optimization:**
- ALWAYS use `jq` param to filter response fields. Unfiltered responses are very expensive!
- Use `pagelen` query param to restrict result count (e.g., `pagelen: "5"`)
- If unsure about available fields, first fetch ONE item with `pagelen: "1"` and NO jq filter to explore the schema, then use jq in subsequent calls
**Schema Discovery Pattern:**
1. First call: `path: "/workspaces", queryParams: {"pagelen": "1"}` (no jq) - explore available fields
2. Then use: `jq: "values[*].{slug: slug, name: name, uuid: uuid}"` - extract only what you need
**Output format:** TOON (default, token-efficient) or JSON (`outputFormat: "json"`)
**Common paths:**
- `/workspaces` - list workspaces
- `/repositories/{workspace}` - list repos in workspace
- `/repositories/{workspace}/{repo}` - get repo details
- `/repositories/{workspace}/{repo}/pullrequests` - list PRs
- `/repositories/{workspace}/{repo}/pullrequests/{id}` - get PR details
- `/repositories/{workspace}/{repo}/pullrequests/{id}/comments` - list PR comments
- `/repositories/{workspace}/{repo}/pullrequests/{id}/diff` - get PR diff
- `/repositories/{workspace}/{repo}/refs/branches` - list branches
- `/repositories/{workspace}/{repo}/commits` - list commits
- `/repositories/{workspace}/{repo}/src/{commit}/{filepath}` - get file content
- `/repositories/{workspace}/{repo}/diff/{source}..{destination}` - compare branches/commits
**Query params:** `pagelen` (page size), `page` (page number), `q` (filter), `sort` (order), `fields` (sparse response)
**Example filters (q param):** `state="OPEN"`, `source.branch.name="feature"`, `title~"bug"`
**JQ examples:** `values[*].slug`, `values[0]`, `values[*].{name: name, uuid: uuid}`
The `/2.0` prefix is added automatically. API reference: https://developer.atlassian.com/cloud/bitbucket/rest/bb_postCreate Bitbucket resources. Returns TOON format by default (token-efficient).
**IMPORTANT - Cost Optimization:**
- Use `jq` param to extract only needed fields from response (e.g., `jq: "{id: id, title: title}"`)
- Unfiltered responses include all metadata and are expensive!
**Output format:** TOON (default) or JSON (`outputFormat: "json"`)
**Common operations:**
1. **Create PR:** `/repositories/{workspace}/{repo}/pullrequests`
body: `{"title": "...", "source": {"branch": {"name": "feature"}}, "destination": {"branch": {"name": "main"}}}`
2. **Add PR comment:** `/repositories/{workspace}/{repo}/pullrequests/{id}/comments`
body: `{"content": {"raw": "Comment text"}}`
3. **Approve PR:** `/repositories/{workspace}/{repo}/pullrequests/{id}/approve`
body: `{}`
4. **Request changes:** `/repositories/{workspace}/{repo}/pullrequests/{id}/request-changes`
body: `{}`
5. **Merge PR:** `/repositories/{workspace}/{repo}/pullrequests/{id}/merge`
body: `{"merge_strategy": "squash"}` (strategies: merge_commit, squash, fast_forward)
The `/2.0` prefix is added automatically. API reference: https://developer.atlassian.com/cloud/bitbucket/rest/bb_putReplace Bitbucket resources (full update). Returns TOON format by default.
**IMPORTANT - Cost Optimization:**
- Use `jq` param to extract only needed fields from response
- Example: `jq: "{uuid: uuid, name: name}"`
**Output format:** TOON (default) or JSON (`outputFormat: "json"`)
**Common operations:**
1. **Update repository:** `/repositories/{workspace}/{repo}`
body: `{"description": "...", "is_private": true, "has_issues": true}`
2. **Create/update file:** `/repositories/{workspace}/{repo}/src`
Note: Use multipart form data for file uploads (complex - prefer PATCH for metadata)
3. **Update branch restriction:** `/repositories/{workspace}/{repo}/branch-restrictions/{id}`
body: `{"kind": "push", "pattern": "main", "users": [{"uuid": "..."}]}`
The `/2.0` prefix is added automatically. API reference: https://developer.atlassian.com/cloud/bitbucket/rest/bb_patchPartially update Bitbucket resources. Returns TOON format by default.
**IMPORTANT - Cost Optimization:** Use `jq` param to filter response fields.
**Output format:** TOON (default) or JSON (`outputFormat: "json"`)
**Common operations:**
1. **Update PR title/description:** `/repositories/{workspace}/{repo}/pullrequests/{id}`
body: `{"title": "New title", "description": "Updated description"}`
2. **Update PR reviewers:** `/repositories/{workspace}/{repo}/pullrequests/{id}`
body: `{"reviewers": [{"uuid": "{user-uuid}"}]}`
3. **Update repository properties:** `/repositories/{workspace}/{repo}`
body: `{"description": "New description"}`
4. **Update comment:** `/repositories/{workspace}/{repo}/pullrequests/{pr_id}/comments/{comment_id}`
body: `{"content": {"raw": "Updated comment"}}`
The `/2.0` prefix is added automatically. API reference: https://developer.atlassian.com/cloud/bitbucket/rest/bb_deleteDelete Bitbucket resources. Returns TOON format by default.
**Output format:** TOON (default) or JSON (`outputFormat: "json"`)
**Common operations:**
1. **Delete branch:** `/repositories/{workspace}/{repo}/refs/branches/{branch_name}`
2. **Delete PR comment:** `/repositories/{workspace}/{repo}/pullrequests/{pr_id}/comments/{comment_id}`
3. **Decline PR:** `/repositories/{workspace}/{repo}/pullrequests/{id}/decline`
4. **Remove PR approval:** `/repositories/{workspace}/{repo}/pullrequests/{id}/approve`
5. **Delete repository:** `/repositories/{workspace}/{repo}` (caution: irreversible)
Note: Most DELETE endpoints return 204 No Content on success.
The `/2.0` prefix is added automatically. API reference: https://developer.atlassian.com/cloud/bitbucket/rest/bb_cloneClone a Bitbucket repository to your local filesystem using SSH (preferred) or HTTPS.
Provide `repoSlug` and `targetPath` (absolute path). Clones into `targetPath/repoSlug`. SSH keys must be configured; falls back to HTTPS if unavailable.validate_commit_messagemessagevalidate_branch_namebranch?validate_author_infoauthor_name?` `author_email?validate_commit_contextmessage?` `branch?` `author_name?` `author_email?validate_push_safetypush_refs?` — pre-push lines; omit to compare the branch with its upstreamvalidate_repository_stateinclude_message` `include_branch` `include_author` (default `true`), `include_push` (default `false`)describe_validation_rules—server_health—Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"aashari-mcp-server-atlassian-bitbucket": {
"command": "npx",
"args": [
"-y",
"@aashari/mcp-server-atlassian-bitbucket"
],
"env": {
"ATLASSIAN_USER_EMAIL": "YOUR_ATLASSIAN_USER_EMAIL_HERE",
"ATLASSIAN_API_TOKEN": "YOUR_ATLASSIAN_API_TOKEN_HERE",
"ATLASSIAN_BITBUCKET_USERNAME": "YOUR_ATLASSIAN_BITBUCKET_USERNAME_HERE",
"ATLASSIAN_BITBUCKET_APP_PASSWORD": "YOUR_ATLASSIAN_BITBUCKET_APP_PASSWORD_HERE",
"BITBUCKET_DEFAULT_WORKSPACE": "YOUR_BITBUCKET_DEFAULT_WORKSPACE_HERE"
}
}
}
}
{
"mcpServers": {
"commit-check-mcp": {
"command": "uvx",
"args": [
"commit-check-mcp"
]
}
}
}