Skip to main content
Glama

mcp-bitbucket-dc

PyPI Version PyPI Downloads Total Downloads Main Push Checks Release License: MIT

MCP (Model Context Protocol) server for Bitbucket Data Center. Enables AI assistants to search code, browse files, manage pull requests, and explore repositories through a standardized interface.

Built with FastMCP in Python. Installs via uvx.

Acknowledgements

  • Many tools in this project were inspired by atlassian-dc-mcp.

  • Code search functionality was inspired by @beapirate and prior related implementation work.

Related MCP server: Bitbucket MCP Server

Quick Start

1. Generate a Personal Access Token

  1. Log in to your Bitbucket Data Center instance

  2. Go to Manage Account → HTTP access tokens

  3. Click Create token

  4. Set permissions: Repository Read (and Write if you need PR creation/commenting)

  5. Copy the token

2. Configure Your IDE

Add to your MCP configuration (mcp.json in VS Code, claude_desktop_config.json for Claude Desktop):

{
  "mcpServers": {
    "bitbucket-dc": {
      "command": "uvx",
      "args": ["mcp-bitbucket-dc"],
      "env": {
        "BITBUCKET_HOST": "git.yourcompany.com",
        "BITBUCKET_API_TOKEN": "your-personal-access-token"
      }
    }
  }
}

That's it. The server starts automatically when your IDE connects.

3. Start Using

Ask your AI assistant:

  • "Search for CompanyInfoUpdater in the codebase"

  • "Show me the file structure of the api-service repo in PROJECT"

  • "Get the content of src/main/Application.java from repo backend"

  • "List open pull requests in PROJECT/my-repo"

  • "What branches exist in PROJECT/my-repo?"

Tools Reference

Most read/query tools support response_format:

  • markdown (default): human-readable output

  • json: raw structured API response

Tool

Description

bitbucket_code_search

Search code across all repos with Lucene syntax (ext:java, lang:python, repo:name, project:KEY, AND/OR/NOT)

File Browsing

Tool

Description

bitbucket_browse

Browse directory tree (files & folders at a path)

bitbucket_get_file_content

Get raw file content with syntax highlighting

bitbucket_list_files

Recursively list all file paths in a repo

bitbucket_get_branches

List branches (filterable)

bitbucket_get_tags

List tags (filterable)

bitbucket_create_branch

Create a new branch from a branch, tag, or commit

Projects & Repositories

Tool

Description

bitbucket_get_projects

List projects (filterable by name/permission)

bitbucket_get_project

Get project details

bitbucket_search_repositories

Search repos across all projects (no project key required)

bitbucket_get_repositories

List repos in a project

bitbucket_get_repository

Get repo details with clone URLs

Pull Requests

Tool

Description

bitbucket_get_pull_requests

List PRs (filter by state, direction, text)

bitbucket_get_pull_request

Get PR details with reviewers

bitbucket_get_pull_request_comments

Get PR comments and activity

bitbucket_get_pull_request_changes

Get files changed in a PR

bitbucket_get_pull_request_diff

Get diff for a file in a PR

bitbucket_post_pull_request_comment

Post a comment (general or inline)

bitbucket_update_pull_request_comment

Update an existing PR comment

bitbucket_delete_pull_request_comment

Delete a PR comment

bitbucket_create_pull_request

Create a new PR

bitbucket_update_pull_request

Update PR title/description/reviewers

bitbucket_get_required_reviewers

Get required reviewers for a branch pair

Commits

Tool

Description

bitbucket_get_commits

List commits (filter by path, ref range)

bitbucket_get_commit

Get full details of a single commit

bitbucket_get_commit_diff

Get the diff for a specific commit

Search Query Syntax

The bitbucket_code_search tool uses Lucene-style queries:

# Simple text search
CompanyInfoUpdater

# Filter by file extension
function ext:java

# Filter by language
config lang:python

# Filter by repository or project
DatabaseHelper repo:backend-api
service project:PLATFORM

# Filter by path
controller path:src/main

# Boolean operators (must be UPPERCASE)
config AND (yaml OR yml)
test NOT unit
UserService AND ext:java AND project:CORE

Configuration

Environment Variable

Required

Description

BITBUCKET_HOST

Yes*

Bitbucket DC hostname (e.g. git.company.com)

BITBUCKET_URL

Yes*

Full base URL alternative (e.g. https://git.company.com)

BITBUCKET_API_TOKEN

Yes

Personal Access Token

BITBUCKET_VERIFY_SSL

No

Verify TLS certificates (default true). Set to false for self-signed or internal CA deployments.

* Provide either BITBUCKET_HOST or BITBUCKET_URL, not both.

Disabling SSL verification

For Bitbucket DC instances behind a self-signed certificate or an internal CA that isn't trusted by the system store, set BITBUCKET_VERIFY_SSL=false:

{
  "mcpServers": {
    "bitbucket-dc": {
      "command": "uvx",
      "args": ["mcp-bitbucket-dc"],
      "env": {
        "BITBUCKET_HOST": "git.yourcompany.com",
        "BITBUCKET_API_TOKEN": "your-personal-access-token",
        "BITBUCKET_VERIFY_SSL": "false"
      }
    }
  }
}

⚠️ Disabling SSL verification means traffic is not protected against man-in-the-middle attacks. Only use this against trusted internal networks.

Support Matrix

Component

Version(s)

Verification

Bitbucket Data Center

8.19.5

Live smoke tests run locally against a real server

Python runtime

3.10, 3.11, 3.12, 3.13

GitHub Actions CI (test workflow matrix)

If you run on a different Bitbucket DC version, please open an issue with results.

Alternative Transports

# SSE transport (for remote/multi-user setups)
uvx mcp-bitbucket-dc --transport sse --host 0.0.0.0 --port 8000

# Streamable HTTP
uvx mcp-bitbucket-dc --transport streamable-http --host 0.0.0.0 --port 8000

By default, HTTP-based transports bind to 127.0.0.1 for safer local development.

Development

# Clone and install
git clone https://github.com/christopherekfeldt/mcp-bitbucket-dc.git
cd mcp-bitbucket-dc
uv sync

# Install git hooks
uv run pre-commit install

# Run locally
export BITBUCKET_HOST=git.yourcompany.com
export BITBUCKET_API_TOKEN=your-token
uv run mcp-bitbucket-dc

# Run tests
uv run pytest

# Run live smoke tests against a real/staging Bitbucket DC
# (requires BITBUCKET_HOST or BITBUCKET_URL + BITBUCKET_API_TOKEN)
RUN_LIVE_SMOKE=1 uv run pytest -m integration -q

Contributor/agent workflow guidance: see AGENTS.md.

Versioning & Stability

This project follows Semantic Versioning. From v1.0.0 onward, tool names, required parameters, and output contracts are stable — breaking changes only in major version bumps.

Upgrade: uvx mcp-bitbucket-dc always uses the latest. Pin with uvx mcp-bitbucket-dc==X.Y.Z.

Release notes: See GitHub Releases for changelogs.

License

MIT — see LICENSE.

Available Tools

26 tools
bitbucket_browseBrowse FilesA
Read-onlyIdempotent

Browse the file tree of a repository.

Lists files and directories at the given path. If path points to a file, returns its content instead. Use at to browse a specific branch or commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoBranch, tag, or commit to browse at (default: default branch)
pathNoPath to browse (e.g. 'src/main/java'). Leave empty for root.
limitNoMax results (1-1000)
startNoPagination start index
project_keyYesThe project key
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent behavior. Description adds value by explaining that browsing a file returns content (dual behavior) and how to use the 'at' parameter, going beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no fluff, front-loaded with main purpose. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present and rich annotations, description provides core functionality and parameter hints. Minor gaps: no pagination clarification or explicit differentiation from list_files sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description mentions 'path' and 'at' but does not add significant meaning beyond the schema's own descriptions. Minor value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb (browse/lists) and resource (file tree of a repository), and explains conditional behavior for files vs directories. However, it does not explicitly differentiate from sibling tools like bitbucket_list_files or bitbucket_get_file_content, which overlap in functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives among the 25 sibling tools. Lacks explicit when-to-use or when-not-to-use context, leaving the agent to infer from tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_create_branchCreate BranchA

Create a new branch in a repository.

Creates a branch at the given start point (branch name, tag, or commit hash).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew branch name (e.g. 'feature/my-branch')
project_keyYesThe project key
start_pointYesBranch, tag, or commit hash to branch from (e.g. 'main', 'develop', or a commit SHA)
repository_slugYesThe repository slug

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false and destructiveHint=false, which are consistent with creation. Description adds start point detail but does not disclose behavior if branch already exists or other side effects. Adds some value beyond annotations but limited.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no redundant information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple creation tool, description covers core purpose and start point. Lacks details on error scenarios (branch exists), naming restrictions, or permissions. Output schema exists so return values are handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. Description adds example start points ('main', 'develop', commit SHA) which provides context but mostly repeats schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it creates a new branch in a repository at a given start point. This is a specific verb+resource and distinguishes from sibling tools like bitbucket_get_branches which list branches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., UI or other tools). No prerequisites or conditions like required permissions or naming conventions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_create_pull_requestCreate Pull RequestA
Destructive

Create a new pull request.

Creates a PR from from_ref branch to to_ref branch. Optionally add a description and reviewers.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesPR title
to_refYesTarget branch (e.g. 'main' or 'develop')
from_refYesSource branch (e.g. 'feature/my-branch')
reviewersNoList of reviewer usernames to add
descriptionNoPR description (supports Markdown)
project_keyYesThe project key
repository_slugYesThe repository slug

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructive behavior, and the description adds that it creates a PR from one branch to another with optional fields, which is sufficient with annotations present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that front-load the core action and key optional parameters with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential creation logic and optional fields, and with an output schema present, return values need not be explained. It is almost complete but could mention success indication.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds no extra meaning beyond listing key parameters already described in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new pull request, specifying the from and to branches and optional description/reviewers, which distinguishes it from sibling tools like get or update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for creating PRs but does not explicitly state when to use it versus alternatives like update or get, nor does it provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_delete_pull_request_commentDelete PR CommentA
Destructive

Delete a comment from a pull request.

Requires the current comment version number for optimistic locking. Only the comment author or an admin can delete a comment.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesCurrent version of the comment (for optimistic locking — get from bitbucket_get_pull_request_comments)
comment_idYesThe comment ID to delete
project_keyYesThe project key
pull_request_idYesThe pull request ID number
repository_slugYesThe repository slug

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses optimistic locking requirement and permission constraints beyond annotations. Consistent with destructiveHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences that are front-loaded with purpose, then requirements, then permissions. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, requirements, and permissions. With output schema present, no need to describe return values. Completeness is high.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good parameter descriptions. The description adds context about the version parameter for optimistic locking, enhancing understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a comment from a pull request', which is a specific verb and resource. It distinguishes from sibling tools like post and update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions the need for the current comment version for optimistic locking and that only the author or admin can delete. Provides implicit guidance to get version from bitbucket_get_pull_request_comments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_branchesGet BranchesA
Read-onlyIdempotent

List branches in a repository.

Returns branches with their latest commit hash. Use filter_text to search for branches by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (1-1000)
startNoPagination start index
order_byNoALPHABETICAL or MODIFICATION (default: MODIFICATION)
filter_textNoFilter branches by name (substring match)
project_keyYesThe project key
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds behavioral context by stating it returns branches with latest commit hash and supports filter_text. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences efficiently cover purpose, output, and a key usage hint. No extraneous information. Front-loaded with the main action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with annotations and an output schema, the description is complete. It covers the primary purpose, return content, and filter capability, meeting all needs for correct agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description only highlights `filter_text` usage, which adds marginal value beyond the schema. Baseline of 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List branches in a repository' and specifies that it returns 'branches with their latest commit hash'. It differentiates from sibling tools like bitbucket_create_branch and bitbucket_get_tags by focusing on branch listing with filter support.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions using `filter_text` to search branches by name, but does not provide guidance on when to use this tool versus alternatives like bitbucket_browse or bitbucket_get_tags. No exclusions or comparative context are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_commitGet CommitA
Read-onlyIdempotent

Get full details of a single commit including message, author, and parents.

ParametersJSON Schema
NameRequiredDescriptionDefault
commit_idYesThe commit hash (full or abbreviated)
project_keyYesThe project key
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, etc. Description adds minimal behavioral context (only output content hints). No contradiction, but lacks detail on error behavior or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 12 words, conveys purpose efficiently. Could include brief usage hint but remains clear and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Sufficient for a simple read tool with strong annotations and output schema. Lacks mention of authentication or error handling, but not critical given complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description does not elaborate on parameters beyond schema, though it mentions output fields. Adds no additional parameter-specific meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get full details of a single commit' with specific examples (message, author, parents). Distinguishes from siblings like bitbucket_get_commits and bitbucket_get_commit_diff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., bitbucket_get_commits for multiple commits). No exclusion criteria or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_commit_diffGet Commit DiffA
Read-onlyIdempotent

Get the diff for a specific commit.

Returns the unified diff showing all changes introduced by the commit. Optionally restrict to a single file with path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoRestrict diff to a specific file path
commit_idYesThe commit hash (full or abbreviated)
whitespaceNoWhitespace handling: SHOW, IGNORE_ALL, or IGNORE_TRAILING
project_keyYesThe project key
context_linesNoNumber of context lines around changes (default: 10)
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds value by stating 'Returns the unified diff showing all changes introduced by the commit' and mentioning optional path restriction, but does not elaborate on output size, performance, or edge cases like extremely large diffs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with three sentences, all front-loaded with the essential purpose. Every sentence adds value, and there is no redundant or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema and full parameter documentation, the description is largely sufficient. It covers the primary functionality and optional path restriction. Could be slightly enhanced with hints about pagination or large diffs, but not necessary for most use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description only highlights the 'path' parameter, which is already described in the schema. No additional semantics are provided for 'whitespace', 'context_lines', 'response_format', or other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Get the diff') and resource ('specific commit'), and specifies the output format ('unified diff'). It distinguishes from sibling tools like bitbucket_get_pull_request_diff by targeting commits rather than pull requests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as bitbucket_get_commit or bitbucket_get_pull_request_diff. The description does not provide context for selection criteria or when to avoid using this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_commitsGet CommitsA
Read-onlyIdempotent

Get commits for a repository.

Lists commits in reverse chronological order. Use since/until to specify a commit range (like git log since..until). Use path to only show commits that modified a specific file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoFilter commits affecting this file path
limitNoMax results (1-100)
sinceNoCommit hash or ref — exclude commits reachable from this
startNoPagination start index
untilNoCommit hash or ref — include commits reachable from this (default: default branch HEAD)
project_keyYesThe project key
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds behavioral context by explaining the reverse chronological order and the semantics of 'since' and 'until' (like git log). This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only three sentences with no wasted words. It is front-loaded with the main purpose, then provides key usage details. Every sentence contributes meaning without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters, a complete output schema, and minor annotations, the description adequately covers the core functionality (ordering, filtering by range or path). It does not mention pagination or limit/start, but those are documented in the schema. The description is sufficient for an agent to understand the tool's primary use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 8 parameters. The description adds value by explaining the intended usage of 'since', 'until', and 'path' with a git-log analogy, which is not present in the schema, thus enhancing parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get commits for a repository' as the overall purpose, and specifies the reverse chronological order. This distinguishes it from sibling tools like bitbucket_get_commit (single commit) and bitbucket_get_commit_diff (diff). The verb 'get' and resource 'commits' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance for using 'since' and 'until' to specify a commit range and 'path' to filter by file, including a git-log analogy. However, it does not explicitly contrast with sibling tools like bitbucket_get_commit or bitbucket_get_commit_diff, though the context implies differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_file_contentGet File ContentA
Read-onlyIdempotent

Get the raw content of a file from a repository.

Returns the full file content as text. Use at to fetch from a specific branch, tag, or commit hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoBranch, tag, or commit (default: default branch)
pathYesFile path (e.g. 'src/main/App.java')
project_keyYesThe project key
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, non-destructive. The description adds that it returns 'full file content as text', but does not disclose additional behavioral traits like auth requirements, rate limits, or handling of binary files.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, no redundancy. Front-loaded purpose, then return format, then parameter hint. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with output schema, the description is complete. It covers purpose, output, and key parameter. No missing context like error handling, but output schema likely handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with descriptions. The description reinforces the 'at' parameter usage but adds no significant meaning beyond the schema. Baseline is 3 for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the raw content of a file from a repository' with a specific verb and resource. It distinguishes from siblings like 'bitbucket_browse' (likely shows tree/UI) by emphasizing 'raw content'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage with the 'at' parameter but does not explicitly say when to use this tool vs alternatives like code_search or browse. No when-not-to-use or exclusion guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_projectGet ProjectA
Read-onlyIdempotent

Get details of a specific Bitbucket project by its key.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYesThe project key (e.g. 'PROJ')
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. Description adds that it retrieves details, but no extra behavioral context (e.g., no mention of response format or potential errors). With annotations carrying the burden, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no extraneous information. Front-loaded, efficient, and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (not shown but indicated), and annotations cover safety, the description is complete enough for a single-project retrieval tool. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters (project_key with example, response_format with enum and default). Description does not add additional semantic meaning beyond the schema, so baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Get details of a specific Bitbucket project by its key.' Uses a specific verb ('Get') and clearly identifies the resource ('project') and the identifier ('key'). Distinguishes from sibling 'bitbucket_get_projects' which retrieves multiple projects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. The description is sufficient but lacks explicit context like 'Use this to retrieve a single project; for multiple projects use get_projects.' Nonetheless, it's not misleading.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_projectsGet ProjectsA
Read-onlyIdempotent

Get a list of Bitbucket projects.

Returns projects the authenticated user has access to. Use name to filter by project name, and permission to filter by access level.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter projects by name (substring match)
limitNoMax results to return (1-1000)
startNoPagination start index
permissionNoFilter by permission: PROJECT_VIEW, PROJECT_ADMIN, REPO_READ, etc.
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description needs to add value beyond those. It adds a behavioral note that the tool returns only projects the authenticated user has access to, which is useful but not extensive. No contradictory information is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with three short sentences that front-load the main purpose. Every sentence adds value: the first states the core function, the second clarifies scope, and the third highlights key filters. No extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main purpose and key filters, and the existing schema and output schema handle pagination (start, limit) and response format. It is complete enough for a filtered-list tool with good annotations. However, a brief mention of pagination control could make it slightly more self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description repeats that name filters by name and permission filters by access level, but this adds no new meaning beyond the already well-documented schema parameters. It meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get a list of Bitbucket projects' with a specific verb and resource. It also notes that it returns only projects the user has access to, which adds context. However, it does not explicitly differentiate from sibling tools like bitbucket_get_project (singular) or bitbucket_get_repositories, leaving some room for confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating the tool returns projects and allows filtering by name and permission. However, it does not provide explicit guidance on when to use this tool versus alternatives (e.g., when a single project is needed vs. a list), nor does it mention any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_pull_requestGet Pull RequestA
Read-onlyIdempotent

Get full details of a specific pull request including description and reviewers.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYesThe project key
pull_request_idYesThe pull request ID number
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations fully cover safety (readOnlyHint=true, destructiveHint=false, idempotentHint=true). The description adds 'including description and reviewers' which hints at contents but does not disclose additional behavioral traits or constraints beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Front-loaded with the core purpose. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of output schema and thorough annotations, the description is adequate. It mentions key output contents. However, it could briefly note that response_format controls output type, though that is covered in parameters. Still, complete enough for a simple read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter well-described. The description adds no extra meaning about parameters beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (Get), the resource (full details of a specific pull request), and key contents (description and reviewers). It distinguishes from sibling tools like get_pull_requests (list) and get_pull_request_changes (code changes).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance. While it's implied that this tool is for retrieving full details of a single PR, the description does not help the agent choose between this and related tools like get_pull_request_diff or get_pull_request_comments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_pull_request_changesGet PR ChangesA
Read-onlyIdempotent

Get the list of files changed in a pull request.

Shows which files were added, modified, deleted, or renamed in the PR.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (1-1000)
startNoPagination start index
project_keyYesThe project key
change_scopeNoUNREVIEWED to only show unreviewed changes, or ALL
with_commentsNoInclude comment counts per file
pull_request_idYesThe pull request ID number
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that it shows which files were changed, which is consistent but does not disclose additional behaviors like pagination, error handling, or output format details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, to the point, with the core purpose in the first sentence and additional detail in the second. No fluff or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters and an output schema, the description covers the main purpose but omits guidance on pagination, filtering (change_scope), and output format. It is adequate but could be more complete to help an agent navigate optional features.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description does not need to explain parameters. It adds no extra meaning beyond the schema; for instance, it doesn't describe how 'change_scope' or 'with_comments' affect results.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets the list of files changed in a pull request, specifying the types of changes (added, modified, deleted, renamed). This distinguishes it from sibling tools like bitbucket_get_pull_request_diff (which shows diff content) and bitbucket_get_commit_diff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for file-level change information, but it does not explicitly state when to use it over alternatives like get_pull_request_diff or get_commit_diff. No guidance on exclusions or context is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_pull_request_commentsGet PR CommentsA
Read-onlyIdempotent

Get comments and activity for a pull request.

Returns all activities (comments, approvals, status changes) on the PR, including inline code comments with file path and line information.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (1-100)
startNoPagination start index
project_keyYesThe project key
pull_request_idYesThe pull request ID number
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint false. The description adds value by specifying the return includes all activities (comments, approvals, status changes) and inline code comments with details, which is beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff. Front-loaded with the core purpose, immediately useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and 6 parameters (3 required), the description adequately explains what is returned (all activities, inline comments). Could mention the response_format parameter, but not necessary as it's in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage for parameters. The description does not add additional meaning beyond what the schema provides; it mentions the nature of returned data but not param-specific details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets comments and activity for a pull request, specifying it returns all activities including inline code comments with file path and line info. This distinguishes it from sibling tools like get_pull_request or get_pull_request_changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for reading comments and activity, but does not explicitly state when to use it over alternatives or provide exclusions. No guidance on pagination or filtering beyond what parameters offer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_pull_request_diffGet PR DiffB
Read-onlyIdempotent

Get the text diff for a specific file in a pull request.

Returns the unified diff showing additions and deletions for the specified file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path to get the diff for
diff_typeNoEFFECTIVE (merge result) or RANGE (commit range)
whitespaceNoWhitespace handling: SHOW, IGNORE_ALL, or IGNORE_TRAILING
project_keyYesThe project key
context_linesNoNumber of context lines around changes (default: 10)
pull_request_idYesThe pull request ID number
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so safety profile is clear. The description adds that it returns a unified diff, which is minimal additional behavioral context. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that are clear and front-loaded. Slight redundancy but still concise and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the output schema exists (not shown), the description covers basic purpose but does not explain parameter options or return format nuances. Moderately complete given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add any additional meaning to parameters like diff_type, whitespace, context_lines, or response_format beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'text diff for a specific file in a pull request'. It distinguishes from sibling tools like get_pull_request_changes and get_commit_diff by being file-specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives like get_pull_request_changes or get_commit_diff. No context about when to use or when not to.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_pull_requestsGet Pull RequestsA
Read-onlyIdempotent

List pull requests for a repository.

Returns pull requests filtered by state, direction, and text. Defaults to showing OPEN pull requests ordered by newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (1-100)
orderNoOrder: NEWEST or OLDEST
startNoPagination start index
stateNoPR state filter: OPEN, DECLINED, MERGED, or ALL (default: OPEN)
directionNoINCOMING (to this repo) or OUTGOING (from this repo)
filter_textNoFilter PRs by title text
project_keyYesThe project key
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive. The description adds value by specifying default state (OPEN), default order (newest first), and filtering by text. Contradicts no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose. No redundant words. Every sentence adds essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given full schema coverage, rich annotations, and an output schema, the description is sufficient. It covers the main filtering and defaults. Could mention pagination (start, limit) but those are in schema. No major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context by mentioning 'filtered by state, direction, and text' and clarifying the default order ('ordered by newest first'), which goes beyond the schema's 'default: null' for order.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'List pull requests for a repository' with filtering criteria. Distinguishes from siblings like bitbucket_get_pull_request (single PR) by specifying list operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes what the tool does but provides no explicit guidance on when to use it versus alternatives like bitbucket_get_pull_request or bitbucket_get_pull_request_changes. The sibling list is external, and the description lacks 'when to use' or 'when not to use' hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_repositoriesGet RepositoriesA
Read-onlyIdempotent

Get repositories for a Bitbucket project.

Lists all repositories within the specified project that the authenticated user has access to.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (1-1000)
startNoPagination start index
project_keyYesThe project key (e.g. 'PROJ')
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are rich (readOnlyHint, idempotentHint, destructiveHint false). Description adds that it lists only repos the authenticated user has access to, which is a behavioral detail not in annotations. However, it does not describe pagination behavior or result size limits beyond schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences clearly state purpose and scope. Efficient but could be slightly more structured (e.g., mentioning key parameter project_key upfront). Still, no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description is sufficient for a read-only listing tool with a single required parameter and existing output schema. It covers the main use case, though omits mention of pagination or output format options (handled by schema).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description does not elaborate on parameters, leaving schema to define them. No additional semantic context is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Get' and resource 'repositories for a Bitbucket project', distinguishing it from sibling tools like bitbucket_get_repository (singular) and bitbucket_search_repositories (search vs list). It also specifies scope: 'within the specified project' and 'that the authenticated user has access to'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage context (requires project_key, lists accessible repos) but does not explicitly state when to use this tool vs alternatives like bitbucket_search_repositories or bitbucket_get_repository. No 'when not to use' guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_repositoryGet RepositoryA
Read-onlyIdempotent

Get details of a specific repository including clone URLs and configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYesThe project key (e.g. 'PROJ')
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds little beyond confirming it's a read operation. No contradictions; description aligns with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 12 words, no extraneous information. Essential information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Includes key output context (clone URLs, configuration). With an output schema present, this is sufficient for a simple read operation. Could mention that it returns the full repository object, but not necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% parameter descriptions, so the baseline is 3. The description does not enhance parameter understanding; it only mentions output highlights (clone URLs, config).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly specifies the action ('Get details') and resource ('specific repository'), with concrete output features ('clone URLs and configuration'). Differentiates from siblings like bitbucket_get_repositories which lists repositories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage when you need details of a specific repository, but provides no explicit guidance on when to use this tool over alternatives (e.g., browse, search) or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_required_reviewersGet Required ReviewersA
Read-onlyIdempotent

Get required reviewers for a potential pull request between two branches.

Use this before creating a PR to discover mandatory reviewers configured via merge checks or default reviewer rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_refYesSource branch ref ID
target_refYesTarget branch ref ID
project_keyYesThe project key
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as read-only, idempotent, and non-destructive. The description adds important behavioral context about discovering reviewers based on merge checks or rules, without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first for purpose, second for usage. Every sentence is essential and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and full schema coverage, the description covers purpose and usage sufficiently. It could hint at the response_format parameter, but overall it is complete for the task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds no parameter-specific details beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get required reviewers for a potential pull request between two branches,' with a clear verb and resource, and it distinguishes from sibling tools like bitbucket_get_pull_request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this before creating a PR to discover mandatory reviewers configured via merge checks or default reviewer rules,' providing clear when-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_get_tagsGet TagsA
Read-onlyIdempotent

List tags in a repository.

Returns tags with their associated commit hash. Use filter_text to search for tags by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (1-1000)
startNoPagination start index
order_byNoALPHABETICAL or MODIFICATION
filter_textNoFilter tags by name (substring match)
project_keyYesThe project key
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that the tool returns commit hashes and supports filtering, which provides some behavioral context beyond annotations. However, it omits details on pagination behavior, rate limits, or the fact that results are paginated (limit/start parameters). With annotations covering safety, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, highly concise, and front-loaded with the primary purpose. Every sentence adds value: first defines the action, second details output and a key usage tip. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters (100% schema coverage), strong annotations (readOnly, idempotent, destructive=false), and an output schema (exists but not shown), the description is fairly complete. It covers the main purpose, return value, and filtering. Minor omissions (pagination, ordering) are covered by schema descriptions. A brief mention of pagination would improve completeness, but overall it's adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters have descriptions. The description only explicitly mentions filter_text, reinforcing its substring-match behavior. This adds marginal value over the schema, which already describes filter_text similarly. Baseline 3 is correct given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List tags in a repository,' specifying the verb and resource. It distinguishes from siblings like get_branches and get_commits by naming 'tags' explicitly. However, it does not explicitly contrast with other tag-related tools (none apparent), so it's clear but not exceptional.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using the filter_text parameter to search by name, which provides some usage guidance. However, it does not explain when to use this tool versus alternatives like get_branches or get_commits, nor does it mention pagination or ordering usage. Guidance is present but minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_list_filesList FilesA
Read-onlyIdempotent

Recursively list all file paths in a repository or sub-directory.

Returns a flat list of all file paths (no directories). Useful for understanding the project structure or finding files by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoBranch, tag, or commit (default: default branch)
pathNoSub-path to list from (default: repository root)
limitNoMax results (1-5000)
startNoPagination start index
project_keyYesThe project key
repository_slugYesThe repository slug
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is read-only, idempotent, and non-destructive. The description adds behavioral details like recursive listing and returning only file paths, which complements the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, concise, and front-loads the core functionality. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description does not need to explain return values. It covers the core purpose and behavior well, though it could be slightly more detailed about pagination or default behavior. The annotations further complete the context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so parameters are well-documented in the schema. The description does not add significant extra meaning beyond what the schema already provides, so a score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool recursively lists all file paths in a repository or sub-directory and returns a flat list with no directories. However, it does not explicitly differentiate from sibling tools like bitbucket_browse or bitbucket_get_file_content, which might also be used for exploring repository structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is useful for understanding project structure or finding files by name, which gives some context. But it does not provide explicit guidance on when to use this tool versus alternatives or any prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_post_pull_request_commentPost PR CommentA
Destructive

Post a comment on a pull request.

Can post general comments, reply to existing comments, or add inline code comments at a specific file and line.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineNoLine number for inline comment
textYesThe comment text (supports Markdown)
file_pathNoFile path for inline comment
line_typeNoADDED, REMOVED, or CONTEXT for inline comments
parent_idNoParent comment ID to reply to
project_keyYesThe project key
pull_request_idYesThe pull request ID number
repository_slugYesThe repository slug

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already denote destructive write (destructiveHint=true). The description adds that comments can be inline and supports Markdown, providing useful context beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two sentences, front-loaded purpose, no wasted words. Each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters and multiple comment types, the description covers all major use cases. The presence of an output schema reduces the burden. Missing details about permissions or limits, but adequate for typical agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3 applies. The description adds minimal parameter insight beyond what the schema provides (e.g., 'supports Markdown' is in schema). It does not elaborate on parameter semantics meaningfully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool posts a comment on a pull request and lists three distinct modes: general, reply, inline. This specificity distinguishes it from sibling tools like delete or get comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use each mode (general, reply, inline) by referencing parameters like parent_id, file_path, line. However, it does not explicitly guide when not to use this tool or compare with alternatives like update, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_search_repositoriesSearch RepositoriesA
Read-onlyIdempotent

Search repositories across all projects.

Returns repositories the authenticated user has access to, optionally filtered by name, project name, or permission level. Unlike bitbucket_get_repositories, this does not require a project key.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter repositories by name (substring match)
limitNoMax results to return (1-1000)
startNoPagination start index
permissionNoFilter by permission: REPO_READ, REPO_WRITE, or REPO_ADMIN
project_nameNoFilter by project name (substring match)
response_formatNoOutput format: markdown (default) or jsonmarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide read-only, idempotent, and non-destructive hints. The description adds authentication context (user access) and mentions filtering options. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with front-loaded purpose. No unnecessary words, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 optional parameters, full schema coverage, presence of output schema, and comprehensive annotations, the description covers scope, auth context, and key differentiator. Complete for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that the tool does not require a project key, which is implied in the parameter semantics but made explicit here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches repositories across all projects, with optional filters. It explicitly distinguishes from sibling tool bitbucket_get_repositories by noting it does not require a project key.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for when to use (no project key needed) and contrasts with a sibling tool. It could be more explicit about when not to use, but the guidance is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_update_pull_requestUpdate Pull RequestA
Destructive

Update a pull request's title, description, or reviewers.

Requires the current PR version number for optimistic locking — fetch it first using bitbucket_get_pull_request.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNew PR title
versionYesCurrent version of the PR (for optimistic locking — get from bitbucket_get_pull_request)
reviewersNoFull list of reviewer usernames (replaces existing)
descriptionNoNew PR description
project_keyYesThe project key
pull_request_idYesThe pull request ID number
repository_slugYesThe repository slug

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true, and the description adds that it requires version for locking, which is important behavioral context. The schema further notes reviewers replace existing, but the description itself doesn't mention replacement, so slightly less transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences only: first states purpose, second provides critical prerequisite. No wasted words, front-loaded with the action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple update tool with output schema, the description covers the main purpose and a key behavioral note (version). It could mention partial update semantics or error conditions, but it is largely complete given the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context for the version parameter (optimistic locking, where to fetch), which goes beyond the schema's own description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates a pull request's title, description, or reviewers, using specific verbs and resources. It distinguishes itself from sibling tools like bitbucket_create_pull_request or bitbucket_get_pull_request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent it requires the PR version for optimistic locking and instructs to fetch it first using bitbucket_get_pull_request. This provides clear when-to-use and prerequisite guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bitbucket_update_pull_request_commentUpdate PR CommentA
Destructive

Update an existing comment on a pull request.

Requires the current comment version number for optimistic locking.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe new comment text (supports Markdown)
versionYesCurrent version of the comment (for optimistic locking — get from bitbucket_get_pull_request_comments)
comment_idYesThe comment ID to update
project_keyYesThe project key
pull_request_idYesThe pull request ID number
repository_slugYesThe repository slug

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds the critical behavioral constraint of optimistic locking via version, which is beyond what annotations provide. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: the first states the core purpose, the second adds an essential requirement. Every word earns its place; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, return values are covered. The description explains the locking requirement but does not explicitly state that the update is a full replacement (all required params). However, the schema implies that. Overall, sufficient for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the baseline is 3. The description adds value by explaining the version parameter's purpose (optimistic locking) and noting that text supports Markdown, which is extra context beyond the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Update an existing comment on a pull request' clearly identifies the action, resource, and distinguishes from sibling tools like post (create) and delete. The version requirement further differentiates it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the need for the current comment version, implying a prerequisite call to get_comments. However, it does not explicitly state when not to use (e.g., for creating or deleting) nor name alternatives, though siblings are clear from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 23 tool updatesv1.0.0
    • Changedbitbucket_browse1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_code_search1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Addedbitbucket_create_branch
    • Addedbitbucket_delete_pull_request_comment
    • Changedbitbucket_get_branches1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Addedbitbucket_get_commit
    • Addedbitbucket_get_commit_diff
    • Changedbitbucket_get_commits1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_file_content1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_project1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_projects1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_pull_request1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_pull_request_changes1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_pull_request_comments1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_pull_request_diff1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_pull_requests1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_repositories1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_repository1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_required_reviewers1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_get_tags1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Changedbitbucket_list_files1 field changed
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "markdown",
        +  "description": "Output format: markdown (default) or json",
        +  "enum": [
        +    "markdown",
        +    "json"
        +  ],
        +  "type": "string"
        +}
    • Addedbitbucket_search_repositories
    • Addedbitbucket_update_pull_request_comment
  2. 20 tool updatesv0.1.0
    • First observedbitbucket_browse
    • First observedbitbucket_code_search
    • First observedbitbucket_create_pull_request
    • First observedbitbucket_get_branches
    • First observedbitbucket_get_commits
    • First observedbitbucket_get_file_content
    • First observedbitbucket_get_project
    • First observedbitbucket_get_projects
    • First observedbitbucket_get_pull_request
    • First observedbitbucket_get_pull_request_changes
    • First observedbitbucket_get_pull_request_comments
    • First observedbitbucket_get_pull_request_diff
    • First observedbitbucket_get_pull_requests
    • First observedbitbucket_get_repositories
    • First observedbitbucket_get_repository
    • First observedbitbucket_get_required_reviewers
    • First observedbitbucket_get_tags
    • First observedbitbucket_list_files
    • First observedbitbucket_post_pull_request_comment
    • First observedbitbucket_update_pull_request

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct resource and action (e.g., get vs list for pull requests, branches, commits). There is no ambiguity between tools; even closely related ones like get_pull_request_changes and get_pull_request_diff have clear, separate purposes.

Naming Consistency5/5

All tools follow the consistent pattern 'bitbucket_<verb>_<noun>', using snake_case throughout. Examples: bitbucket_create_branch, bitbucket_get_pull_requests, bitbucket_post_pull_request_comment.

Tool Count4/5

26 tools is slightly high but appropriate for a comprehensive Bitbucket server covering projects, repositories, branches, pull requests, commits, files, and search. The count is justified by the breadth of operations, though a few could be merged.

Completeness3/5

Covers many key operations but has notable gaps: no delete for branches/repositories/projects, no merge pull request, no create/update repository. These are common workflows missing, though destructive operations may be intentionally excluded.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.

  • The Buildkite MCP server exposes Buildkite product data (pipelines, builds, jobs, and test data) to AI tools, editors, and agents through the Model Context Protocol. It provides capabilities including pipeline creation and management, build monitoring with specialized tools like 'wait_for_build', efficient log querying using Apache Parquet conversion and caching, and OAuth-based authentication for both read-write and read-only access to Buildkite's REST API.

  • The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.

  • Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to interact with Atlassian Jira and Confluence across Cloud and Server/Data Center environments. It supports tasks like searching and summarizing documentation, managing Jira issues, and creating content through natural language.
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    MCP server for integrating with Bitbucket Cloud and Server APIs, enabling AI assistants to interact with repositories, pull requests, pipelines, and more.
    59
    37
    3
    MIT

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/christopherekfeldt/mcp-bitbucket-dc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server