In-depth architectural comparison of the Gitlab Docs and MCP Server Atlassian Bitbucket MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Gitlab Docs
Version Control · Local stdio
Quality: 52/100 (Good) | Auth: No auth required
MCP Server Atlassian Bitbucket
Version Control · Local stdio
Quality: 65/100 (Great) | Auth: API Key required
Verdict Summary: Choose Gitlab Docs if you need specialized Version Control tools running via a local process. Choose MCP Server Atlassian Bitbucket if your workspace requires Version Control integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
G
Choose Gitlab Docs when:
You need dedicated capabilities in the Version Control domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
You need dedicated capabilities in the Version Control domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: API Key required (Free / Open Source).
You have access to required keys: ATLASSIAN_USER_EMAIL, ATLASSIAN_API_TOKEN, ATLASSIAN_BITBUCKET_USERNAME, ATLASSIAN_BITBUCKET_APP_PASSWORD, BITBUCKET_DEFAULT_WORKSPACE.
Search across 2,900+ GitLab documentation pages with intelligent ranking.
getDocPage
Retrieve the complete content of a specific documentation page.
listDocSections
Browse available documentation sections and their structure.
MCP Server Atlassian Bitbucket Tools (6)
bb_get
Read 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/
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Gitlab Docs is categorized under Version Control and uses a local stdio subprocess. In contrast, MCP Server Atlassian Bitbucket belongs to Version Control using local stdio subprocess. Select Gitlab Docs when you need capabilities focused on version control and MCP Server Atlassian Bitbucket when you require tools for version control.
Create 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_put
Replace 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_patch
Partially 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_delete
Delete 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_clone
Clone 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.
MCP Server Atlassian Bitbucket vs MCP Server Bitbucket