Skip to main content
Glama
Upendrasengar

bitbucket-server-mcp

bitbucket-server-mcp

npm version npm downloads Bitbucket Server TypeScript Node License CI CodeQL

Quickstart

Install in VS Code Install in Cursor Install in LM Studio

Or via Claude Code:

claude mcp add bitbucket \
  -e BITBUCKET_URL=https://your-bitbucket-server.com \
  -e BITBUCKET_TOKEN=your-token \
  -- npx -y @upendra_sengar/bitbucket-server-mcp

Related MCP server: Atlassian Bitbucket MCP Server

Requirements

  • Bitbucket Server / Data Center 7.21+ (the E2E suite covers 7.21, 8.5, 8.9, 8.19, 9.4 and 10.2).

  • One of:

Installation

Add to your workspace .vscode/mcp.json:

{
  "servers": {
    "bitbucket": {
      "command": "npx",
      "args": ["-y", "@upendra_sengar/bitbucket-server-mcp"],
      "env": {
        "BITBUCKET_URL": "https://your-bitbucket-server.com",
        "BITBUCKET_TOKEN": "your-access-token"
      }
    }
  }
}

These clients all use the same mcpServers format. Add the JSON below to the config file for your client:

Client

Config file

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Cursor

~/.cursor/mcp.json (one-click install)

Windsurf

~/.codeium/windsurf/mcp_config.json

JetBrains

Settings > Tools > AI Assistant > MCP, or ~/.junie/mcp/mcp.json

Neovim

mcphub.nvim mcpservers.json

{
  "mcpServers": {
    "bitbucket": {
      "command": "npx",
      "args": ["-y", "@upendra_sengar/bitbucket-server-mcp"],
      "env": {
        "BITBUCKET_URL": "https://your-bitbucket-server.com",
        "BITBUCKET_TOKEN": "your-access-token"
      }
    }
  }
}

Add to your Zed settings (~/.config/zed/settings.json on Linux, ~/Library/Application Support/Zed/settings.json on macOS):

{
  "context_servers": {
    "bitbucket": {
      "source": "custom",
      "command": "npx",
      "args": ["-y", "@upendra_sengar/bitbucket-server-mcp"],
      "env": {
        "BITBUCKET_URL": "https://your-bitbucket-server.com",
        "BITBUCKET_TOKEN": "your-access-token"
      }
    }
  }
}

For environments without Node.js:

{
  "mcpServers": {
    "bitbucket": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "BITBUCKET_URL=https://your-bitbucket-server.com",
        "-e", "BITBUCKET_TOKEN=your-access-token",
        "ghcr.io/upendrasengar/bitbucket-server-mcp"
      ]
    }
  }
}

Or build locally: docker build -t bitbucket-mcp .

TIP

Bun users can replace npx -y with bunx in any of the configs above.

Tools

Repositories

Tool

Description

list_projects

List all accessible Bitbucket projects

list_repositories

List repositories in a project

browse_repository

Browse files and directories

get_file_content

Read file contents with pagination

upload_attachment

Upload a local file and get a markdown reference for PR comments

edit_file

Edit a file by committing a new version via the REST API

get_server_info

Get Bitbucket Server version and properties

get_file_blame

Get line-by-line blame/history for a file

create_repository

Create a new repository

delete_repository

Delete a repository (irreversible)

Pull Requests

Tool

Description

create_pull_request

Create a PR, including cross-repo from forks (sourceProject/sourceRepository) and drafts (draft: true). Auto-fetches default reviewers unless includeDefaultReviewers: false.

get_pull_request

Get PR details

update_pull_request

Safely update title, description, or reviewers (read-modify-write, preserves fields not explicitly changed)

merge_pull_request

Merge a PR with optional strategy (no-ff, ff, ff-only, squash, rebase-no-ff, rebase-ff-only, squash-ff-only)

decline_pull_request

Decline a PR

list_pull_requests

List PRs with filtering by state, author, direction

list_dashboard_pull_requests

List PRs across all repos for the authenticated user, filtered by role (AUTHOR/REVIEWER/PARTICIPANT), state, and review status

get_pull_request_activity

Get PR activity timeline, filtered by type (all, reviews, comments)

get_diff

Get PR diff with per-file truncation support. Use stat: true for a lightweight summary of changed files instead of the full diff.

get_pull_request_commits

List commits in a pull request

get_commit_pull_requests

List pull requests containing a specific commit

Code Review

Tool

Description

manage_comment

Unified create/edit/delete for PR comments. Supports inline anchoring (filePath/line/lineType), draft state (state: PENDING), task creation (severity: BLOCKER), threaded replies (parentId), and resolve/unresolve (state: RESOLVED/OPEN).

manage_review

Unified approve/unapprove/publish. Publish transitions all PENDING comments to visible and optionally sets participantStatus (APPROVED/NEEDS_WORK).

Branches & Commits

Tool

Description

list_branches

List branches with default branch detection

list_commits

Browse commit history with branch and author filtering

manage_branches

Create or delete branches (safety check prevents deleting default branch)

get_commit

Get details of a specific commit by its ID

compare_refs

List commits reachable from one ref but not another

list_tags

List tags in a repository

manage_tags

Create or delete tags

get_tag

Get details of a specific tag by its name

Search & Insights

Tool

Description

search

Search code and files across repositories

get_code_insights

Fetch Code Insights reports (SonarQube, security scans) and annotations

get_build_status

Get CI build status (state, name, URL) by commit ID or PR. When using prId, resolves the latest commit automatically.

Forks

Tool

Description

list_forks

List forks of a repository

fork_repository

Fork a repository into a target project

Users

Tool

Description

get_user_profile

Get a user profile by slug

search_users

Search users by filter query

Labels

Tool

Description

list_labels

List labels for a repository

manage_labels

Add or remove repository labels

Webhooks

Tool

Description

list_webhooks

List webhooks for a repository

manage_webhooks

Create, update, or delete webhooks

Commit Comments

Tool

Description

list_commit_comments

List comments on a specific commit

manage_commit_comments

Create, edit, or delete comments on a commit

Repository Settings

Tool

Description

list_default_reviewer_conditions

List default reviewer conditions

list_branch_restrictions

List branch permission restrictions

list_repository_hooks

List repository hooks and their status

manage_repository_hooks

Enable, disable, or configure repository hooks

list_merge_checks

List merge check configurations

manage_merge_checks

Configure merge check settings

list_reviewer_groups

List reviewer groups

manage_reviewer_groups

Create or delete reviewer groups

list_secret_scanning_rules

List secret scanning allowlist rules (8.5+)

Keys

Tool

Description

list_ssh_keys

List SSH keys for the authenticated user

manage_ssh_keys

Add or delete SSH keys

list_gpg_keys

List GPG keys for the authenticated user

manage_gpg_keys

Add or delete GPG keys

Prompts

Prompt

Description

review-pr

Step-by-step workflow for reviewing a PR: fetch details, read diff, check CI, create draft comments, and publish the review. Invoke via /bitbucket:review-pr in Claude Code. No arguments needed; the LLM asks for the PR interactively. You can add context, e.g. /bitbucket:review-pr PR #42 in my-repo.

Resources

Resource

URI

Description

projects

bitbucket://projects

Cached list of all accessible projects (5 min TTL). Useful as ambient context without explicit tool calls.

Configuration

Environment Variables

Variable

Required

Description

BITBUCKET_URL

Yes

Base URL of your Bitbucket Server instance

BITBUCKET_TOKEN

Yes*

Personal access token

BITBUCKET_USERNAME

Yes*

Username for basic auth

BITBUCKET_PASSWORD

Yes*

Password for basic auth

BITBUCKET_DEFAULT_PROJECT

No

Default project key when not specified in tool calls

BITBUCKET_READ_ONLY

No

Set to true to disable all write operations

BITBUCKET_CUSTOM_HEADERS

No

Extra headers for all requests (Key=Value,Key2=Value2). Useful for Zero Trust tokens.

BITBUCKET_DIFF_MAX_LINES_PER_FILE

No

Max lines per file in diffs. Set to 0 for no limit.

BITBUCKET_CACHE_TTL

No

Cache duration in seconds (default: 300). Set to 0 to disable caching.

BITBUCKET_ENABLED_TOOLS

No

Comma-separated list of tool names to enable. If not set, all tools are available.

BITBUCKET_STARTUP_HEALTHCHECK

No

Set to true to run a connectivity check against Bitbucket on startup (default: false).

HTTPS_PROXY

No

HTTP/HTTPS proxy URL (e.g. http://proxy.corp.com:8080). Useful in corporate environments.

NODE_EXTRA_CA_CERTS

No

Path to a PEM file with additional CA certificates. Use when Bitbucket is behind a self-signed TLS cert.

*Either BITBUCKET_TOKEN or both BITBUCKET_USERNAME and BITBUCKET_PASSWORD are required.

Token Permissions

The Personal Access Token needs the following Bitbucket permissions depending on what you intend to do:

Permission

Required for

Project read

list_projects, list_repositories, browse_repository, get_file_content

Repository read

All read tools (branches, commits, tags, diff, blame)

Repository write

edit_file, manage_branches, manage_tags, create_repository, delete_repository

Pull request read

list_pull_requests, get_pull_request, get_diff, get_pull_request_commits

Pull request write

create_pull_request, update_pull_request, merge_pull_request, decline_pull_request, manage_comment, manage_review

For a read-only setup, Project read + Repository read + Pull request read is sufficient.

Read-Only Mode

Set BITBUCKET_READ_ONLY=true to restrict the server to read-only operations. All create_*, update_*, delete_*, manage_*, merge_*, decline_*, fork_*, upload_*, and edit_* tools are disabled.

Tool Filtering

Set BITBUCKET_ENABLED_TOOLS to load only specific tools, reducing context window usage:

BITBUCKET_ENABLED_TOOLS=get_pull_request,get_diff,manage_comment,manage_review

Startup Healthcheck

When BITBUCKET_STARTUP_HEALTHCHECK=true, the server probes /rest/api/1.0/application-properties on startup and logs whether Bitbucket is reachable. If not, it logs a diagnostic line referencing the relevant env vars (BITBUCKET_URL, BITBUCKET_TOKEN, HTTPS_PROXY, NODE_EXTRA_CA_CERTS) without blocking the server. Useful for debugging connectivity issues before the first tool call fails with a generic error.

BITBUCKET_STARTUP_HEALTHCHECK=true

Response Curation

Read tools return compact responses by default, keeping only the fields an AI assistant typically needs. Every read tool accepts a fields parameter to customize:

  • Omit fields: returns a curated summary (e.g. PR id, title, state, author, branches, reviewers, task count)

  • fields: "*all": returns the complete raw Bitbucket API response

  • fields: "id,title,author.user.name": returns exactly those fields (dot notation for nested paths)

Caching

The server caches frequently accessed data in memory (project lists, repository metadata, default reviewers) to reduce API calls. The cache uses LRU eviction (max 500 entries) so memory stays bounded, and write operations automatically invalidate related entries.

By default, cached entries expire after 5 minutes. Configure with BITBUCKET_CACHE_TTL (in seconds), or set to 0 to disable caching entirely.

Bitbucket Cloud

This server targets Bitbucket Server / Data Center only. Bitbucket Cloud (bitbucket.org) uses a different REST API and is not supported.

Usage Examples

List open PRs assigned to you for review

list_dashboard_pull_requests with role=REVIEWER, state=OPEN

Create an inline draft comment on a PR

manage_comment with prId=42, filePath="src/auth.ts", line=17, lineType="ADDED",
text="This token is never invalidated — add expiry.", state="PENDING"

Then publish all draft comments at once:

manage_review with prId=42, action="publish", participantStatus="NEEDS_WORK"

Get a lightweight diff summary without reading every line

get_diff with prId=42, stat=true

Enable only the tools you need (reduces context window usage)

BITBUCKET_ENABLED_TOOLS=get_pull_request,get_diff,manage_comment,manage_review

Troubleshooting

UNABLE_TO_VERIFY_LEAF_SIGNATURE or self-signed certificate errors Set NODE_EXTRA_CA_CERTS=/path/to/your-ca-bundle.pem to point Node.js at your internal CA.

403 Forbidden on write operations Your token is missing a write-level permission. See the Token Permissions table above for the exact scope needed.

Server starts but can't reach Bitbucket Enable BITBUCKET_STARTUP_HEALTHCHECK=true — it will log a diagnostic line showing which env vars are missing or misconfigured. In corporate environments also set HTTPS_PROXY.

401 Unauthorized Token auth and basic auth are mutually exclusive. Set either BITBUCKET_TOKEN alone, or both BITBUCKET_USERNAME + BITBUCKET_PASSWORD. Having all three set will cause unpredictable behaviour — remove whichever pair you don't intend to use.

Tool not found / unexpected behaviour on older Bitbucket versions Some tools require Bitbucket 8.5+ (e.g. list_secret_scanning_rules). Check the tool description in the Tools section for version requirements. The E2E suite covers 7.21, 8.5, 8.9, 8.19, 9.4, and 10.2.

Contributing

See CONTRIBUTING.md for development setup, architecture overview, and how to add new tools.

License

Apache 2.0

Available Tools

59 tools
browse_repositoryC
Read-onlyIdempotent

Browse files and directories in a repository to understand project structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirectory path to browse (default: root).
limitNoMax items to return (default: 50).
branchNoBranch or commit hash (default: default branch).
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. However, the description does not disclose additional behaviors like pagination (implied by the limit parameter), error handling, or the structure of the returned directory listing. This leaves the agent uncertain about the response format.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks structure. It does not front-load key information like output format or behavior, and it could be more informative without being verbose.

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

Completeness2/5

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

Given 5 parameters and no output schema, the description should explain what the tool returns (e.g., a list of files/directories with names and types). The current description only vaguely mentions 'understand project structure,' which is insufficient for an agent to use the tool effectively without additional inference.

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 all parameters documented in the input schema. The description adds no extra meaning beyond what the schema provides, so a baseline 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 states 'Browse files and directories in a repository to understand project structure,' which clearly identifies the tool's action and resource. However, it does not explicitly distinguish from sibling tools like get_file_content or list_repositories, which also deal with repository contents.

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 provides no guidance on when to use this tool versus alternatives such as get_file_content for reading file contents or list_repositories for listing repos. There is no mention of context, prerequisites, or exclusions.

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

compare_refsA
Read-onlyIdempotent

Compare two refs and list commits accessible from to but not from from. Supports custom field selection via the fields param ('*all' for full raw response, 'id,message,author.name' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoTarget ref (commits reachable from here are included).
fromNoSource ref (commits reachable from here are excluded).
limitNoNumber of commits to return (default: 25, max: 1000).
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate safe read-only and idempotent behavior. The description adds the core logic of commit comparison and details field selection, which provides behavioral context 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?

The description is two sentences, front-loaded with the primary purpose, and provides param details without extraneous information. Every sentence 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?

While the description covers the main purpose and field selection, it lacks explanation of pagination parameters (limit, start), default project behavior, and repository requirement. The schema documents these, but the description could be more complete for a tool with 7 parameters and no output schema.

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, baseline is 3. The description adds meaningful value by explaining the `to`/`from` ref semantics and providing concrete `fields` examples ('*all', custom subset), which clarifies usage 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 tool compares two refs and lists commits accessible from `to` but not from `from`, with a specific verb and resource. This uniquely identifies its function among siblings like list_commits or get_commit.

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 explains what the tool does but does not provide explicit guidance on when to use it over alternatives (e.g., list_commits). The use case is inferable but not stated, leaving ambiguity in tool selection.

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

create_pull_requestA

Create a new pull request. Supports cross-repo PRs via sourceProject/sourceRepository and automatic default reviewer merging.

ParametersJSON Schema
NameRequiredDescriptionDefault
draftNoCreate the pull request as a draft.
titleYesPull request title.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
reviewersNoUsernames to assign as reviewers.
repositoryYesRepository slug.
descriptionNoPull request description (Markdown supported).
sourceBranchYesSource branch name.
targetBranchYesTarget branch name.
sourceProjectNoSource project key for cross-repo PRs.
sourceRepositoryNoSource repository slug for cross-repo PRs.
includeDefaultReviewersNoMerge default reviewers into the reviewer list (default: true).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate write operation (readOnlyHint=false, destructiveHint=false). Description adds specific behavioral details: supports cross-repo PRs via sourceProject/sourceRepository and automatic default reviewer merging, which are beyond annotation scope. 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 sentences, 20 words. Core purpose first, then feature highlights. No redundancy, every word earns its place. Front-loaded with critical verb and resource.

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 11 parameters, 100% schema coverage, no output schema, description captures core action and key features. Lacks mention of return value or side effects, but annotations and intent are clear. Reasonably complete for agent decision-making.

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 3. Description adds meaning by explaining the purpose of sourceProject/sourceRepository (cross-repo PRs) and includeDefaultReviewers (automatic merging), directly connecting to those parameters and providing context not in schema 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?

Description starts with 'Create a new pull request' – a specific verb and resource. It immediately distinguishes from siblings like update_pull_request and merge_pull_request by focusing on creation and mentioning unique features (cross-repo, default reviewers).

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?

Clearly implies creation use case, but lacks explicit guidance on when to avoid (e.g., 'use for new PRs, not for editing or merging'). No mention of prerequisites beyond required params. Usage is implied but not fully specified.

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

create_repositoryB

Create a new repository in a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRepository name.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
descriptionNoRepository description.
defaultBranchNoDefault branch name (defaults to 'main' if not set).

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate non-readonly, non-idempotent, non-destructive behavior; description adds no further behavioral context such as side effects or permissions.

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 is concise and front-loaded, but could include more relevant details without being verbose.

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 with no output schema, description is minimally adequate; lacks handling for edge cases like duplicate names.

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 covers all parameters with descriptions (100% coverage), so description adds no extra meaning beyond summarizing the action.

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 'Create a new repository in a project' using a specific verb and resource, distinguishing from siblings like delete_repository.

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 like fork_repository; no prerequisites or context provided.

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

decline_pull_requestA
Destructive

Decline a pull request. Fetches the current version automatically for optimistic locking.

ParametersJSON Schema
NameRequiredDescriptionDefault
prIdYesPull request ID.
messageNoReason for declining.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, so the tool's mutation nature is known. The description adds valuable behavioral context: it uses optimistic locking by fetching the current version automatically. This transparency about the locking mechanism is 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?

The description is two concise sentences with no redundant information. The purpose is stated first, followed by the key behavioral detail. Every word earns its place; ideal length for clarity.

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 destructive mutation tool with 4 parameters and no output schema, the description covers purpose and one behavioral trait (optimistic locking). It lacks information on return values, error states, or prerequisites, leaving some gaps for an agent to infer.

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% parameter description coverage (4 params, all described). The description does not add any additional information about parameters beyond the schema, so it meets the baseline of 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?

The description clearly states the tool's action with a specific verb ('Decline') and resource ('a pull request'). It also adds the unique detail about automatic version fetching for optimistic locking, which distinguishes it from siblings like merge_pull_request or update_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 Guidelines3/5

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

The description implies usage for declining pull requests but provides no explicit guidance on when to use this tool versus alternatives (e.g., merge_pull_request, update_pull_request). No context on prerequisites or exclusions is given.

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

delete_repositoryA
Destructive

Delete a repository. This action is irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A3.6/5.0
Behavior3/5

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

The description adds the irreversible nature, which complements the destructiveHint annotation. However, it lacks details on side effects, permissions, or cascading impacts.

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 with two short sentences that front-load the main action and key behavioral trait (irreversible). 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?

For a simple delete operation with destructiveHint annotation, the description is mostly complete. It could mention required permissions or effects on forks, but the core information is present.

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 tool description does not add further explanation for parameters, so 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?

The description clearly states the tool deletes a repository, which is a specific verb and resource. It is distinct from sibling tools like create_repository or fork_repository.

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 over alternatives or when not to use it. It does not mention prerequisites or context for safe usage.

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

edit_fileA

Edit a file in a repository by committing a new version via the Bitbucket REST API. Returns the commit metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
branchYesTarget branch name.
contentYesFull new file content as a string.
messageYesCommit message.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
filePathYesPath to the file in the repository.
repositoryYesRepository slug.
sourceBranchNoFork point branch when creating a new branch.
sourceCommitIdNoCurrent commit ID for optimistic locking. If provided and the branch has advanced, the request will fail with a 409 conflict.

TDQS

A3.5/5.0
Behavior3/5

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

The description states it commits a new version and returns commit metadata, which adds context beyond annotations (readOnlyHint=false, destructiveHint=false). However, it does not disclose that the file content is fully overwritten (replacing existing content) nor explain the optimistic locking behavior hinted by sourceCommitId in the schema.

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 a single, well-formed sentence that efficiently conveys the action and return value. No extraneous words or redundancy.

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 moderate complexity (8 parameters, 5 required, no output schema), the description covers the core operation but omits context like default project behavior, sourceBranch usage, and conflict handling. It is functional but not fully comprehensive.

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 parameters are adequately described. The tool description adds no extra semantic meaning beyond the schema; it merely says 'Edit a file' which is already implied by the action.

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 explicitly states the action ('Edit a file'), the resource ('in a repository'), and the mechanism ('by committing a new version via the Bitbucket REST API'), making the purpose clear. The verb 'edit' is unique among sibling tools (no other 'edit' tool), distinguishing it from browsing, getting content, etc.

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 is provided on when to use this tool versus alternatives like creating a file or managing branches. There is no mention of prerequisites (e.g., branch must exist) or when not to use it (e.g., for renaming or moving files).

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

fork_repositoryA

Fork a repository into a target project. Creates a copy of the source repository in the specified target project.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the forked repository. Defaults to the source repository name.
projectNoSource project key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesSource repository slug.
target_projectNoTarget project key where the fork will be created. Defaults to the user's personal project.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate it is a mutation (readOnlyHint=false) and not destructive. The description adds that it creates a copy, but does not explain potential side effects like linked history or permissions required. With annotations covering the basic safety profile, the description provides minimal additional behavior context.

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, front-loaded with the core action, 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's complexity (4 parameters, no output schema, no nested objects), the description adequately covers the purpose and action. It could be improved by mentioning return value or behavior (e.g., the fork is independent), but it is largely complete.

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% (all 4 parameters have descriptions), so the description adds no extra meaning beyond what the schema already provides. 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?

The description clearly states the verb (Fork) and resource (repository), and distinguishes it from siblings like create_repository (which creates a new empty repo) and delete_repository (destructive).

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, such as when to fork vs create a new repository. No exclusions or prerequisites mentioned.

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

get_build_statusA
Read-onlyIdempotent

Get CI build status for a commit or pull request. When prId is provided, automatically resolves the latest commit. Returns build state (SUCCESSFUL, FAILED, INPROGRESS), name, and URL to the CI build.

ParametersJSON Schema
NameRequiredDescriptionDefault
prIdNoPull request ID. If provided, resolves the latest commit automatically.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT. Only needed with prId.
commitIdNoFull commit hash. Use this or prId, not both.
repositoryNoRepository slug. Only needed with prId.

TDQS

A4.4/5.0
Behavior4/5

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

Description adds value beyond annotations by specifying return fields (build state, name, URL) and auto-resolution behavior for prId. Annotations already indicate read-only and idempotent nature.

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, no unnecessary words. Purpose is front-loaded, and structure is clear and efficient.

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 covers return values and parameter usage for both modes. No output schema exists, but return info is provided. Consideration of error cases or rate limits is absent but not critical for this 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 has 100% coverage, so baseline is 3. Description adds context that prId auto-resolves latest commit and that project/repository are only needed with prId, which slightly enhances 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?

Description clearly states it gets CI build status for a commit or pull request, specifying the resource and action. It distinguishes from siblings by focusing on build status for commits/PRs, and adds nuance about automatic commit resolution.

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?

Description explains when to use prId vs commitId, and that project/repository are only needed with prId. However, it does not explicitly guide when to choose this tool over alternatives like get_code_insights or get_commit.

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

get_code_insightsA
Read-onlyIdempotent

Get code insight reports and their annotations for a pull request. Shows build results, code quality, and other analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
prIdYesPull request ID.
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
fileLimitNoNumber of files to fetch annotations for per page. Only used when includeFileAnnotations is true (default: 50, max: 100).
fileStartNoPage start index for file annotations. Only used when includeFileAnnotations is true (default: 0).
repositoryYesRepository slug.
includeFileAnnotationsNoInclude per-file annotations keyed by file path (default: false). Fetches changed files and retrieves annotations for each. Paginate with fileStart/fileLimit. Adds `fileAnnotations` to the response.

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 and idempotentHint=true. The description adds context about what the tool shows (build results, code quality) but does not add new behavioral traits 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?

The description is two concise sentences, front-loaded with the key action, and contains no unnecessary verbiage.

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 7 parameters including pagination options (fileLimit, fileStart, includeFileAnnotations) and no output schema, the description is brief and does not explain how to use these features or what the response structure is. It covers the basics but lacks depth for a complex 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 description coverage is 100% with detailed parameter descriptions. The tool description adds no additional meaning beyond the schema, so a 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?

The description states a specific verb ('Get') and resource ('code insight reports and their annotations for a pull request'), clearly differentiating it from siblings like get_pull_request or get_build_status.

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 using it for code insight reports but does not provide explicit guidance on when to use vs alternatives or exclude cases.

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

get_commitA
Read-onlyIdempotent

Get details of a specific commit by its ID. Supports custom field selection via the fields param ('*all' for full raw response, 'id,message,author.name' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
commitIdYesFull commit hash.
repositoryYesRepository slug.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds custom field selection behavior with examples. No mention of error responses or rate limits, but sufficient for a read-only tool.

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 unnecessary words. Every 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 simple retrieval tool with 4 parameters and no output schema, the description covers the key functionality. Could mention return format or error cases, but not essential given annotations.

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 has 100% coverage, but description enhances understanding of the fields parameter with concrete examples ('*all', 'id,message,author.name'), adding value beyond schema 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?

Clearly states 'Get details of a specific commit by its ID', which is a specific verb+resource scope. Distinct from sibling tools like list_commits and get_commit_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 Guidelines3/5

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

Does not explicitly state when to use this tool versus alternatives like list_commits. The verb 'get' implies single resource retrieval, but no guidance on when not to use it.

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

get_commit_pull_requestsA
Read-onlyIdempotent

List pull requests that contain a specific commit. Returns the PRs that include the given commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 25, max: 100).
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
commitIdYesFull commit hash.
repositoryYesRepository slug.

TDQS

A4/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, indicating a safe read operation. The description adds no further behavioral details beyond the core function, so it meets the baseline with the annotations carrying the transparency burden.

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 (16 words), front-loaded, and contains no extraneous information. 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?

The description is adequate for a simple list tool with comprehensive schema and annotations. It could mention pagination behavior (limit/start), but the schema covers those details, so completeness is good.

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% with all 6 parameters described. The tool description adds no additional meaning beyond restating the purpose, so it achieves the baseline of 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?

The description clearly states the verb 'list' and the resource 'pull requests that contain a specific commit'. It distinguishes from sibling tools like list_pull_requests and get_pull_request by specifying that it returns PRs including a given commit.

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 implies usage context (finding PRs containing a commit), but does not explicitly state when not to use it or compare with alternatives. It is clear enough for a focused tool.

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

get_diffA
Read-onlyIdempotent

Get the diff of a pull request. Use stat=true for a lightweight summary of changed files (and line counts if the server supports it) instead of the full diff.

ParametersJSON Schema
NameRequiredDescriptionDefault
prIdYesPull request ID.
statNoIf true, return only the list of changed files and types (ADD, MODIFY, DELETE, RENAME, COPY) instead of the full diff. Line count summary included when available (Bitbucket DC 9.1+).
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
filePathNoPath to a specific file to get the diff for. Use with stat=true first to discover file paths, then request individual diffs.
repositoryYesRepository slug.
contextLinesNoNumber of context lines around changes (default: 10). Ignored when stat=true.
maxLinesPerFileNoMax lines per file. 0 = no limit. Defaults to BITBUCKET_DIFF_MAX_LINES_PER_FILE. Ignored when stat=true.

TDQS

A4.2/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 context about the stat parameter producing a summary and server-dependent line counts. 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?

The description is two sentences long, front-loads the main purpose, and contains no superfluous text. Every word 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?

Given no output schema and 7 parameters, the description captures the essential behavior (full diff vs. stat summary). It could mention that the output is a diff, but that is implied by the name and parameter descriptions. Annotations cover safety aspects.

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 provides complete descriptions for all 7 parameters (100% coverage). The description does not add significant new meaning beyond what the schema already offers, so 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?

The description clearly states 'Get the diff of a pull request' with a specific verb and resource. It also distinguishes the stat option for a summary, and no sibling tool overlaps with this exact functionality.

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 on when to use `stat=true` for a lightweight summary versus the full diff. However, it does not mention alternative tools or conditions where this tool should not be used.

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

get_file_blameA
Read-onlyIdempotent

Get blame/history information for a file. Returns line-by-line commit authorship data.

ParametersJSON Schema
NameRequiredDescriptionDefault
branchNoBranch or commit hash (default: default branch).
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
filePathYesPath to the file in the repository.
repositoryYesRepository slug.

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. The description adds 'line-by-line commit authorship data' which provides specific output behavior beyond annotations. No mention of permissions or limits, but given strong annotations, it's acceptable.

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: first states purpose, second describes output. No wasted words, highly concise 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?

Given 4 parameters, no output schema, and annotations covering safety, the description adequately explains what the tool does and returns. Could mention output format but not essential.

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 parameters are already documented. The description does not add extra meaning to parameters (e.g., branch) beyond what the schema provides. Baseline 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?

The description clearly states the verb 'Get', the resource 'blame/history information for a file', and the output 'line-by-line commit authorship data'. It distinguishes from sibling tools like 'get_file_content' or 'get_commit'.

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 guidance on when to use this tool versus alternatives like 'get_commit' or 'get_diff'. Usage is implied but not elaborated with exclusions or context.

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

get_file_contentA
Read-onlyIdempotent

Read file contents from a repository with pagination support for large files.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax lines per request (default: 100, max: 1000).
startNoStarting line number (default: 0).
branchNoBranch or commit hash (default: default branch).
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
filePathYesPath to the file in the repository.
repositoryYesRepository slug.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate idempotent read behavior. The description adds value by disclosing pagination support, which is a key behavioral trait. However, it does not discuss error handling or rate limits, which would push it to 5.

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 a single, front-loaded sentence that uses only 12 words. Every word adds value, with no redundancy or fluff.

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 tool with 6 parameters and no output schema, the description is adequate but lacks details like response format, encoding, or error scenarios. Pagination is mentioned but not fully elaborated.

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 are already described. The description does not enhance parameter meaning beyond the schema, resulting in a baseline score of 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?

The description clearly states the action 'Read file contents' and the resource 'from a repository', and includes a distinguishing feature 'with pagination support for large files'. This differentiates it from siblings like browse_repository or get_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 use for reading file contents, especially large ones, but does not explicitly state when to use this tool over siblings like browse_repository or get_file_blame. No alternatives or exclusions are mentioned.

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

get_pull_requestA
Read-onlyIdempotent

Get details of a specific pull request including status, reviewers, and metadata. Supports custom field selection via the fields param ('*all' for full raw response, 'id,title,state' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
prIdYesPull request ID.
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.
includeMergeVetoesNoInclude merge vetoes from the /merge endpoint (default: false). Adds `mergeCheck` with canMerge, conflicted, outcome, and vetoes fields.
includeBuildSummariesNoInclude build summaries from the UI-layer endpoint (default: false). Adds `buildSummaries` with aggregated CI status per commit. May not be available in older Bitbucket deployments.

TDQS

A4.2/5.0
Behavior4/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 tool is safe and idempotent. The description adds value by explaining the `fields` parameter behavior and the default return content (status, reviewers, metadata). 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?

The description is two sentences: first sentence defines purpose, second sentence explains the key customization parameter. It is front-loaded, concise, and every sentence earns its place 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?

Given 6 parameters with full schema coverage, no output schema, and no nested objects, the description covers the main behaviors: what the tool returns and how to customize. It does not detail the exact response structure or error cases, but for a read-only detail tool moderated by annotations, it is sufficiently complete.

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 meaningful context for the `fields` parameter ('*all' for full response, custom subsets) and implies default output fields. This goes beyond the schema descriptions and helps the agent understand how to tailor the response.

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 'details of a specific pull request', listing included information (status, reviewers, metadata). This distinguishes it from sibling tools like list_pull_requests (which returns a list) and get_pull_request_activity or get_pull_request_commits (which return specific subsets).

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 fetching a single PR's details but does not explicitly provide when-to-use vs alternatives (e.g., 'Use this for a single PR; use list_pull_requests for a list'). With many sibling tools, some guidance would be beneficial, but the purpose is clear enough for basic selection.

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

get_pull_request_activityA
Read-onlyIdempotent

Get activity feed for a pull request. Optionally filter to only reviews or comments.

ParametersJSON Schema
NameRequiredDescriptionDefault
prIdYesPull request ID.
limitNoMaximum number of results to return (default: 25, max: 100).
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
filterNoFilter activity type (default: all).
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.
excludeUsersNoUsernames to exclude from results (e.g. bot accounts like sa_sec_appsec_auto).

TDQS

A3.7/5.0
Behavior3/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, so the safety profile is clear. The description adds the ability to filter activity (reviews/comments) but does not discuss pagination, rate limits, or return structure beyond what filters imply.

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 a single concise sentence that front-loads the tool's purpose and key option (filter). No 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 8 parameters and no output schema, the description is adequate but lacks details about return values, pagination behavior (start, limit), or the 'fields' parameter. Annotations cover safety, but behavioral detail beyond filtering is missing.

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 input schema fully documents all 8 parameters. The description mentions optional filtering (mapping to the 'filter' parameter) but adds no additional meaning 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 specifies the action (get), the resource (activity feed for a pull request), and mentions optional filtering by activity type. This clearly distinguishes it from siblings like get_pull_request or get_pull_request_commits.

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 states optional filtering but does not explicitly guide when to use this tool versus alternatives like list_pull_requests or search. Usage context is implied but not fully articulated.

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

get_pull_request_commitsA
Read-onlyIdempotent

List commits for a specific pull request. Returns the commits that are part of the pull request with pagination support.

ParametersJSON Schema
NameRequiredDescriptionDefault
prIdYesPull request ID.
limitNoMaximum number of results to return (default: 25, max: 100).
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds 'with pagination support', which is a behavioral detail 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?

Single sentence is efficient and front-loaded. No extraneous words; every part 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?

Covers core functionality and pagination support. No output schema exists, but for a simple list tool, the description is sufficient. Minor gap: no detail on commit fields returned.

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 parameters are fully described in the schema. The description adds no additional meaning to parameters, scoring the baseline of 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?

The description clearly states the tool lists commits for a specific pull request, which distinguishes it from siblings like list_commits (all commits) and get_commit (single commit).

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 guidance on when to use this tool versus alternatives like list_commits or get_commit. The purpose is implied but not contrasted with siblings.

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

get_server_infoA
Read-onlyIdempotent

Get Bitbucket Server version and properties. Useful to check connectivity and server version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/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 minimal behavioral detail. However, it confirms the tool retrieves properties, consistent with 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?

The description is a single sentence that is front-loaded and to the point, with 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?

For a simple read-only tool with no parameters and no output schema, the description adequately covers what the tool does and why to use it.

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?

There are no parameters, so the schema covers everything. With 0 parameters, a baseline of 4 is appropriate; the description does not need to add parameter 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 retrieves Bitbucket Server version and properties, distinguishing it from sibling tools that operate on repositories, pull requests, etc.

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 mentions it is useful for checking connectivity and server version, providing clear context for when to use. It does not specify when not to use or mention alternatives, but the sibling list makes the context clear.

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

get_tagA
Read-onlyIdempotent

Get details of a specific tag by its name. Supports custom field selection via the fields param ('*all' for full raw response, 'id,displayId,hash' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTag name (e.g. 'v1.0.0').
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. Description adds valuable behavioral detail on custom field selection, including special values like '*all'. This goes 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?

Two concise sentences, front-loaded with purpose. 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?

For a simple retrieval tool without output schema, the description covers purpose, parameters, and field selection. It could mention return value structure but is largely complete.

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%. The description adds significant meaning to the 'fields' parameter by explaining allowed values and default behavior, surpassing the schema 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 retrieves details of a specific tag by name, using a specific verb and resource. It distinguishes from sibling 'list_tags' which lists all tags.

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 for retrieving a single tag but does not explicitly exclude alternatives or state when not to use. It provides field selection examples but lacks guide on choosing between this and similar tools.

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

get_user_profileA
Read-onlyIdempotent

Get a Bitbucket user profile by user slug. Returns user details including display name, email, and active status.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
userSlugYesUser slug (username) to look up.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the agent knows it's a safe, idempotent read operation. The description adds that it returns display name, email, and active status, providing useful behavioral 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?

The description is a single concise sentence that covers the action, resource, and key return fields. No unnecessary words or repetition.

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 simple nature of the tool and the presence of annotations covering safety, the description adequately conveys what the tool does and what it returns. It could mention error cases or pagination, but those are not critical for this lookup. Output schema is absent, but the description lists key fields.

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%, and the description does not add any new information about parameters beyond what the schema already provides. The description briefly lists example return fields but does not explain parameter semantics further.

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 action ('Get'), the resource ('Bitbucket user profile'), and the required identifier ('by user slug'). It also lists returned fields, making the purpose unambiguous. Among siblings, only 'search_users' might overlap, but this tool is specific to a single user lookup.

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 implies usage when needing a specific user's profile details. It does not explicitly exclude alternative tools or mention when not to use, but the context is clear enough that no sibling tool directly matches this purpose.

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

list_branchesA
Read-onlyIdempotent

List branches in a repository. Also returns the default branch when available. Supports custom field selection via the fields param ('*all' for full raw response, 'displayId,latestCommit' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of branches to return (default: 25, max: 1000).
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
filterTextNoFilter branches by name substring.
repositoryYesRepository slug.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds behavioral context: it returns the default branch when available and explains the 'fields' param usage, which extends 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?

Two sentences only: the first states the core purpose, the second adds essential details on default branch and field selection. No wasted words, and key 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?

The tool has 6 parameters and no output schema. The description covers the main purpose, default branch, and field selection. It does not describe the response structure, but for a straightforward list tool, the provided context is sufficient given the detailed parameter schema.

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 description coverage is 100%, so baseline is 3. The description adds value by explaining the 'fields' parameter with examples ('*all', custom subsets) and noting the default branch return behavior, which is not 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 'List branches in a repository', using a specific verb and resource. It distinguishes itself from siblings like 'list_branch_restrictions' and 'manage_branches', and adds details about returning the default branch and supporting field selection.

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 does not provide explicit guidance on when to use this tool versus alternatives or when not to use it. It implies usage for listing branches but lacks direct comparison to sibling tools.

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

list_branch_restrictionsA
Read-onlyIdempotent

List branch restrictions for a repository. These control which users/groups can push to or delete specific branches or branch patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 25, max: 100).
startNoStart index for pagination (default: 0).
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive. The description adds domain context on what branch restrictions control, going 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 concise sentences, front-loaded with purpose, no unnecessary 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 is complete for a list tool with well-documented schema. Could mention return type, but not required given no output 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 description coverage is 100%, so baseline is 3. The description does not add any parameter-specific information.

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 'List' and resource 'branch restrictions' and explains what these restrictions control (push/delete permissions). This distinguishes it from siblings like '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 explicit guidance on when to use this tool versus alternatives. Given many sibling listing tools, the description lacks context for selection.

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

list_commit_commentsA
Read-onlyIdempotent

Get comments for a specific commit. Returns all comments on the commit with pagination support.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 25, max: 100).
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
commitIdYesFull commit hash.
repositoryYesRepository slug.

TDQS

A3.7/5.0
Behavior4/5

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

Description confirms read-only, idempotent behavior as per annotations, and adds that pagination is supported. 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 sentences, no redundancy. First sentence immediately states purpose.

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?

No output schema, and description doesn't mention return structure or field details. Adequate but could be more helpful for a tool with 6 parameters.

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 covers all 6 parameters with descriptions (100% coverage). Description adds no additional meaning beyond what schema provides.

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 comments for a specific commit' with specific verb and resource, and distinguishes from sibling 'manage_commit_comments' which is CRUD.

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 like 'get_commit' or 'manage_commit_comments'. No explicit when-not or context for pagination.

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

list_commitsA
Read-onlyIdempotent

List commits in a repository, optionally filtered by branch and author. Supports custom field selection via the fields param ('*all' for full raw response, 'id,message,author.name' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of commits to return (default: 25, max: 1000).
startNoStart index for pagination (default: 0).
authorNoClient-side filter by author (case-insensitive match on name, slug, or displayName). Only filters the current page of results. Use with start/limit to paginate for more matches.
branchNoBranch name to list commits from.
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description is not required to restate safety. However, it adds behavioral details: the author filter is client-side and only applies to the current page, and the fields param supports '*all' for full raw response. This exceeds the baseline.

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 consists of two concise sentences. The first sentence states the core purpose and filtering options; the second details the fields param. No redundant information; 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 7 parameters and no output schema, the description covers the main use case, filtering, field selection, and client-side behavior of the author filter. It does not explain branch filter behavior or response format, but these are secondary. Overall, it is largely complete.

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 beyond schema: it explains the fields param with examples and clarifies that the author filter is client-side and pagination-dependent. This adds meaningful value.

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 lists commits in a repository with optional filtering by branch and author. The verb 'list' and resource 'commits' are specific, and the tool is distinct from siblings like 'get_commit' (single commit) and 'list_commit_comments'.

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 for listing commits in a repository with filters, but it does not explicitly state when to use this tool versus alternatives like 'get_commit' or 'get_commit_pull_requests'. 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.

list_dashboard_pull_requestsA
Read-onlyIdempotent

Get pull requests from the authenticated user dashboard. No project/repo needed. Supports custom field selection via the fields param ('*all' for full raw response, 'id,title,state' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoFilter by user role.
limitNoMaximum number of results to return (default: 25, max: 100).
orderNoSort order.
startNoStart index for pagination (default: 0).
stateNoFilter by state.
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
closedSinceNoOnly return PRs closed after this timestamp (epoch ms).
participantStatusNoFilter by participant status.

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description doesn't need to repeat safety. It adds behavioral context about custom field selection via the `fields` parameter, which is valuable 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?

Two sentences: first states the core purpose, second explains a key parameter. No wasteful words, front-loaded with 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?

The description covers the tool's purpose and a key parameter. Omits mention of pagination defaults (start, limit) or sorting, but the schema covers these. Given no output schema, it is sufficiently complete.

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?

With 100% schema coverage, the schema already describes all 8 parameters. The description adds meaningful guidance for the `fields` parameter (example values, dot notation, defaults), justifying above baseline.

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', the resource 'pull requests', and the scope 'from the authenticated user dashboard'. It explicitly distinguishes itself from sibling tools like list_pull_requests by noting 'No project/repo needed'.

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 clear context for when to use this tool (dashboard PRs without a specific repo). It lacks explicit when-not or alternative tools, but the sibling context and 'No project/repo needed' imply appropriate usage.

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

list_default_reviewer_conditionsA
Read-onlyIdempotent

List default reviewer conditions for a repository. These conditions determine which users are automatically added as reviewers to pull requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds minimal behavioral context beyond stating the purpose ('automatically added as reviewers'). It doesn't disclose any other behaviors (e.g., pagination, sorting, or error cases), but for a simple read-only list this is acceptable.

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?

The description is very concise: two sentences with no wasted words. It front-loads the action and resource, immediately followed by a clarifying sentence about the purpose. It 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 tool's simplicity (no output schema, only 3 parameters with full coverage), the description is complete enough for an agent to understand what it does. It could optionally mention the return format or pagination behavior, but that's not required for core functionality.

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 the parameters are already documented. The description does not add any extra meaning or usage guidance for the parameters beyond what the schema provides. Baseline 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 action (list) and the resource (default reviewer conditions for a repository) with enough context about what these conditions do (automatically add reviewers to PRs). It distinguishes from siblings like list_reviewer_groups and list_branch_restrictions by specifying a unique resource, though it doesn't explicitly differentiate.

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 when to use the tool (to view conditions that auto-add reviewers), but it doesn't provide explicit guidance on when not to use it or mention alternatives among the many sibling list tools. The context is clear enough for an agent to infer usage based on the resource name.

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

list_forksA
Read-onlyIdempotent

List forks of a repository. Supports custom field selection via the fields param ('*all' for full raw response, 'slug,name' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of forks to return (default: 25, max: 1000).
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, which are consistent. The description adds useful behavioral detail about custom field selection via the `fields` param, 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?

The description is two sentences, clearly front-loaded with the core purpose followed by additional parameter detail. No unnecessary 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 main behavior and custom field selection, but lacks mention of pagination or the `limit`/`start` parameters, which are present in the schema. However, for a simple list tool with good annotations, it is largely complete.

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 schema covers all parameters with descriptions (100% coverage). The description adds examples and clarification for the `fields` parameter, providing extra value 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 tool's action ('List forks of a repository') and resource. It distinguishes from sibling tools by being specific to forks, and adds extra detail about custom field selection.

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 does not provide explicit guidance on when to use this tool versus alternatives. It mentions the `fields` parameter but lacks context about selection criteria or comparisons to other list tools.

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

list_gpg_keysA
Read-onlyIdempotent

List GPG keys for the authenticated user.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 25, max: 100).
startNoStart index for pagination (default: 0).
userSlugNoFilter by user slug (admin only).

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no further behavioral context beyond what annotations convey, so it meets an adequate baseline.

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?

One concise sentence with immediate verb and resource, no extraneous words. Highly efficient.

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 low complexity and comprehensive annotations and schema, the description is mostly complete. Could optionally mention default pagination or return format, 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 description coverage is 100% with three parameters described. The description adds no parameter information beyond the schema, so baseline score of 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 clearly states the tool lists GPG keys for the authenticated user, a specific verb-resource combination. It distinguishes from sibling 'manage_gpg_keys' which implies mutation.

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 guidance on when to use this tool versus alternatives. The description implies usage for reading GPG keys, but no when-not or alternatives are mentioned.

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

list_labelsB
Read-onlyIdempotent

List labels for a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 25, max: 100).
startNoStart index for pagination (default: 0).
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already convey read-only and idempotent behavior. The description adds no further behavioral context (e.g., pagination details or default limits). It does not contradict annotations, but also does not enhance beyond them.

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?

The description is a single, front-loaded sentence that efficiently communicates the purpose. It is appropriately sized for a simple list operation.

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 fully documented input schema and safety annotations, the description provides minimal context about output or typical use cases. It is adequate but could mention expected output format or example usage.

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 each parameter has a description. The tool description does not add additional context or nuances beyond what is already in the schema. Baseline 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 action (list) and resource (labels) with a repository scope. It is specific enough to differentiate from other list tools like list_branches, but does not explicitly distinguish from the sibling manage_labels which might handle CRUD operations.

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 is provided on when to use this tool versus alternatives. The presence of manage_labels suggests a more comprehensive label management tool, but the description does not clarify when listing alone is appropriate.

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

list_merge_checksA
Read-onlyIdempotent

List merge check configurations for a repository. Merge checks control conditions that must be met before a pull request can be merged.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover safety (readOnlyHint, idempotentHint). Description adds conceptual explanation but no additional behavioral constraints (e.g., pagination, 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.

Conciseness5/5

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

Two sentences, no redundancy. First sentence states action, second adds context. Efficient 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?

Adequate for a simple read-only list tool with no output schema. Explains concept of merge checks. Could explicitly mention return format 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 description coverage is 100% for project and repository parameters. Description adds no extra semantic details beyond what's in schema.

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 states 'List merge check configurations for a repository', clearly indicating the verb and resource. It distinguishes from siblings like manage_merge_checks (which modifies) but lacks differentiation from other list tools.

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?

Provides context that merge checks control merge conditions, implying use when viewing checks. No explicit when-to-use or alternatives given, leaving the agent to infer.

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

list_projectsA
Read-onlyIdempotent

List all Bitbucket projects you have access to. Use this first to discover project keys. Supports custom field selection via the fields param ('*all' for full raw response, 'key,name' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of projects to return (default: 25, max: 1000)
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.

TDQS

A4.4/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. The description adds value by detailing the `fields` parameter behavior and pagination support, going beyond the schema.

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?

Remarkably concise—two sentences that are front-loaded with the purpose and key guidance. Every sentence adds value without waste.

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?

No output schema exists, but the description adequately covers the tool's purpose, parameters, and usage. It may lack details on return format, but for a list tool with pagination, it is sufficient.

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?

All parameters are described in the schema (100% coverage). The description enhances understanding by providing usage examples for the `fields` parameter (`'*all'` and `'key,name'`).

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 (list), resource (Bitbucket projects), and intended use (discover project keys). It is specific and distinct from sibling tools that deal with repositories, pull requests, etc.

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?

Provides explicit guidance to use this tool first to discover project keys. While it does not list when not to use or alternatives, the context is clear given the sibling tools.

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

list_pull_requestsA
Read-onlyIdempotent

List pull requests in a repository. Supports filtering by state, direction, order, and client-side author filtering. Supports custom field selection via the fields param ('*all' for full raw response, 'id,title,state' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 25, max: 100).
orderNoSort order.
startNoStart index for pagination (default: 0).
stateNoFilter by state (default: OPEN).
authorNoClient-side filter by author username/displayName. Only filters the current page of results. Use with start/limit to paginate for more matches.
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
directionNoPR direction filter.
repositoryYesRepository slug.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond annotations (readOnly, idempotent), description clarifies that author filtering is client-side and page-limited, and explains `fields` param with examples. Adds concrete behavioral context not present in 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 states purpose and filters, second details `fields` param. Front-loaded with core function, no redundant or irrelevant content.

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?

Covers purpose and key parameters but lacks description of return structure (no output schema). Agent may need to infer default fields or pagination details from schema. Minor gap given 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 describes all 9 parameters fully (100% coverage). Description adds value by summarizing key filters and providing a concrete example for `fields` ('id,title,state'), aiding quick comprehension without reading 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?

Description clearly states 'List pull requests in a repository' with specific verb and scope. Differentiates from siblings like 'get_pull_request' (single PR) and 'list_dashboard_pull_requests' (dashboard scope) by explicitly mentioning repository context.

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?

Implies usage for repository-specific listing via name and description, but does not explicitly contrast with alternative tools like 'search' or 'list_dashboard_pull_requests'. Does provide guidance on filtering parameters and client-side author filtering behavior.

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

list_repositoriesA
Read-onlyIdempotent

List repositories in a project. Use this to find repository slugs for other operations. Supports custom field selection via the fields param ('*all' for full raw response, 'slug,name' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of repositories to return (default: 25, max: 1000)
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds behavioral context about custom field selection and pagination (via limit/start params), which are not fully covered by 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?

The description is compact at two sentences, with the purpose stated first and usage guidance immediately following. No extraneous information; every sentence is purposeful.

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?

While the description covers core behavior, it does not explicitly state the return format (e.g., list of repository objects) or pagination details beyond parameter names. Given no output schema, slightly more detail would be helpful.

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 description coverage is 100%, but the description adds value by providing examples for the 'fields' parameter ('*all', 'slug,name') and mentioning the default project, enhancing understanding 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 'List' and resource 'repositories in a project', and distinguishes its use for finding repository slugs for other operations, differentiating it from sibling tools like browse_repository or create_repository.

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 advises to use this tool for finding repository slugs, but does not provide explicit when-not-to-use scenarios or alternative tools. However, the context of sibling tools implies alternatives.

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

list_repository_hooksA
Read-onlyIdempotent

List repository hooks and their enabled/disabled state.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 25, max: 100).
startNoStart index for pagination (default: 0).
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A4/5.0
Behavior4/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 agent knows it's a safe read. The description adds that it returns enabled/disabled state, which is useful behavioral 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?

The description is a single sentence that is front-loaded with verb and resource. Every word is necessary, with no fluff or 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?

For a simple read-only list tool with rich annotations and fully specified schema parameters, the description is nearly complete. It could mention return format (list of hooks with states), but that is implied by 'list...state'. Adequate for the tool's simplicity.

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% (all 4 parameters have descriptions). The tool description does not add any additional parameter-level information beyond what is in the schema, so baseline 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?

The description clearly states the verb 'list' and the resource 'repository hooks', and specifies the output includes 'enabled/disabled state'. It distinguishes from sibling 'manage_repository_hooks' which implies mutations, and 'list_webhooks' for a different resource.

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?

Usage is implied (list hooks), but there is no explicit guidance on when to use this tool vs alternatives like 'manage_repository_hooks' for modifications or other list tools. No when-not-to-use or comparative advice is provided.

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

list_reviewer_groupsA
Read-onlyIdempotent

List reviewer groups configured for a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A3.8/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. Description adds no additional behavioral context beyond what annotations provide, so it meets the baseline but does not excel.

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 core purpose.

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 list tool with full schema coverage and annotations, description is mostly complete. However, lacking usage guidelines slightly reduces completeness.

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 further. Baseline of 3 is appropriate as the description adds no 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 verb 'List' and resource 'reviewer groups configured for a repository'. It is distinct from sibling tools like list_default_reviewer_conditions and manage_reviewer_groups.

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 guidance on when to use this tool versus alternatives. While the name implies listing existing groups, there is no mention of when not to use or comparison with similar list tools.

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

list_secret_scanning_rulesA
Read-onlyIdempotent

List secret scanning allowlist rules for a repository. Requires Bitbucket Server 8.5+.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

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, indicating a safe read operation. The description adds no further behavioral details (e.g., pagination, rate limits, or output format). Since annotations cover safety, the description adds no extra transparency, scoring at baseline.

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: one sentence explaining the purpose and one sentence for the version requirement. Every word is necessary, and it is front-loaded with the primary action. No wasteful 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?

For a list tool with no output schema, the description does not explain what the return value looks like (e.g., whether it's paginated, sorted, or includes all rules). Given the annotations and full schema coverage, it is minimally adequate but lacks richness: no mention of typical use cases or result limits.

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%: all three parameters ('fields', 'project', 'repository') have descriptions in the schema. The tool description does not add any additional meaning beyond what the schema already provides, so it meets the baseline for parameter semantics.

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 specifies the verb 'List', the resource 'secret scanning allowlist rules', and the scope 'for a repository'. It is specific and distinct from sibling tools like list_branches or list_repositories, making the tool's purpose unmistakable.

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 includes a version requirement ('Requires Bitbucket Server 8.5+'), which provides a necessary precondition. However, it lacks guidance on when to use this tool versus alternatives or when to avoid it. No comparison with sibling list tools is given.

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

list_ssh_keysA
Read-onlyIdempotent

List SSH keys for the authenticated user.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 25, max: 100).
startNoStart index for pagination (default: 0).
userSlugNoFilter by user slug (admin only).

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description confirms read-only listing, adding no extra behavioral context beyond what annotations already provide.

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 is concise and front-loaded. Could improve by mentioning pagination behavior, but no wasteful content.

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?

Adequate for a simple list operation with well-documented parameters. Lacks explicit mention of return structure (e.g., paginated list of SSH key objects), but schema coverage compensates.

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% description coverage for all 3 parameters, including limits and filtering. Description adds no additional semantic value 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?

Description clearly states 'List SSH keys for the authenticated user.' It uses specific verb and resource, distinguishing it from siblings like manage_ssh_keys which handles mutations.

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. Siblings like manage_ssh_keys and list_gpg_keys exist, but no explicit context for selection.

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

list_tagsA
Read-onlyIdempotent

List tags in a repository. Supports custom field selection via the fields param ('*all' for full raw response, 'id,displayId,hash' for a custom subset).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of tags to return (default: 25, max: 1000).
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
filterTextNoFilter tags by name substring.
repositoryYesRepository slug.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by detailing the custom field selection capability with concrete examples ('*all', 'id,displayId,hash').

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 filler. First sentence states purpose, second adds key detail. 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?

For a simple list tool with full schema coverage and complete annotations, the description is adequate. It could mention pagination or that it returns a list, but those are implied. No output schema is fine.

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 detailed descriptions for all 6 parameters. The description provides concrete examples for the fields parameter, adding practical guidance beyond the schema definitions.

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 'List tags in a repository', using a specific verb and resource. It distinguishes from siblings like get_tag (single tag retrieval) and manage_tags (CRUD operations).

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 guidance on when to use versus alternatives like get_tag or other list tools. Usage is implied from the name and purpose, but lacks any when-to-use or when-not-to-use advice.

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

list_webhooksA
Read-onlyIdempotent

List webhooks configured for a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 25, max: 100).
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

A3.8/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 no behavioral context beyond listing webhooks per repository, which is already implied by the name and 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?

The description is a single, well-structured sentence that front-loades the essential information: action, resource, and scope. No extraneous 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 there is no output schema, the description could mention the return type or key fields, but for a list webhooks tool, the purpose is clear and the fields parameter offers customization. It is mostly complete for its simplicity.

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%; each parameter already has a clear description in the schema. The tool description does not add additional meaning or context for 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 action ('List') and resource ('webhooks configured for a repository'). It distinguishes from sibling tools like 'manage_webhooks' (which suggests create/update/delete) and 'list_repository_hooks' (different hook type).

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 gives no explicit guidance on when to use this tool versus alternatives (e.g., manage_webhooks). It implies usage for reading webhooks but doesn't mention pagination, default limits, or when to use parameters like start and limit.

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

manage_branchesA
Destructive

Manage branches in a repository. Actions: "create" (create a new branch), "delete" (delete a branch). Refuses to delete the default branch.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesOperation to perform.
branchYesBranch name.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.
startPointNoRef to branch from (create only).

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate destructive behavior (destructiveHint=true). The description adds the specific constraint about not deleting the default branch, but does not disclose other behaviors like auth requirements, rate limits, or consequences of actions (e.g., whether creation is immediate or reversible).

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 that front-load the main purpose, then list actions and a key constraint. No wasted words; every sentence adds value.

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?

The description covers the core functionality but lacks details about return values, error cases, or success indicators. Given no output schema, the description should clarify what the agent can expect after invoking the tool (e.g., confirmation message, updated branch list).

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 the schema already documents all parameters. The description adds minimal value beyond the schema, only restating that actions are create/delete and that startPoint is for create only. 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?

The description clearly states the tool manages branches in a repository, enumerates the two actions (create and delete), and adds a specific constraint (refuses to delete default branch). This distinguishes it from sibling tools like list_branches and other management tools.

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 for creating or deleting branches but does not explicitly state when to use this tool versus alternatives (e.g., using list_branches for viewing, or other manage tools for different resources). No guidance on prerequisites or workflow.

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

manage_commentA

Manage pull request comments. Actions: "create" (general, inline, threaded, or tasks), "edit" (update text/severity/state/threadResolved), "delete", "react" (add emoji reaction), "unreact" (remove reaction). state: RESOLVED toggles the task checkbox on a BLOCKER comment; threadResolved: true closes the conversation (the "Resolve" button in the UI). They are independent and can be passed together.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineNoLine number for inline comments (create only).
prIdYesPull request ID.
textNoComment text (required for create and edit).
stateNoComment state. PENDING = draft (create only). RESOLVED = mark as resolved (edit only). OPEN = reopen (edit only).
actionYesOperation to perform on the comment.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
versionNoComment version for optimistic locking (required for edit and delete).
diffTypeNoWhich diff to anchor the comment on. EFFECTIVE = overall PR diff (default). COMMIT = a single commit's diff. RANGE = diff between two specific commits.
emoticonNoEmoticon shortcut for react/unreact (e.g. thumbsup, heart, tada). Use search_emoticons to find available options.
filePathNoFile path for inline comments (create only).
fileTypeNoWhich side of the diff. TO = new version (default). FROM = old version (useful for renames).
lineTypeNoType of line being commented on. ADDED = new line, REMOVED = deleted line, CONTEXT = unchanged line visible in the diff.
parentIdNoParent comment ID for threaded replies (create only).
severityNoComment severity. BLOCKER marks it as a task (create and edit).
commentIdNoComment ID (required for edit, delete, react, unreact).
repositoryYesRepository slug.
threadResolvedNoClose or reopen the comment thread (edit only). Independent of `state`. Requires Bitbucket Data Center >= 8.9; older servers accept the PUT but ignore the field.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations don't provide behavioral details, but the description discloses important traits: optimistic locking via version, independence of state and threadResolved, and the Bitbucket Data Center requirement for threadResolved. This adds significant value 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.

Conciseness4/5

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

The description is relatively concise, combining paragraph and bullet-like structure for actions. It could be more structured (e.g., separate sections for actions and behaviors), but every 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?

Given 17 parameters, no output schema, and many enums, the description covers main behaviors and parameter constraints. It lacks return value details but is complete enough for an agent to invoke correctly.

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 description coverage is 100%, so baseline is 3. The description adds meaning by explaining the interaction between state and threadResolved, the meaning of RESOLVED vs threadResolved, and that version is required for edit/delete. This extends beyond 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 manages pull request comments with specific actions (create, edit, delete, react, unreact) and explains key behaviors like state and threadResolved. It distinguishes itself from siblings by focusing on PR comments, not commit comments.

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 guidance on when to use this tool vs alternatives (e.g., manage_commit_comments). It provides context for actions but lacks when-not-to-use or comparisons to sibling tools.

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

manage_commit_commentsC

Manage comments on a commit. Actions: "create" (add a new comment), "edit" (update an existing comment), "delete" (remove a comment).

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoComment text (required for create and edit).
actionYesOperation to perform.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
versionNoComment version for optimistic locking (required for edit and delete).
commitIdYesFull commit hash.
commentIdNoComment ID (required for edit and delete).
repositoryYesRepository slug.

TDQS

C2.9/5.0
Behavior1/5

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

The description claims a delete action, which is destructive, but the annotations set destructiveHint to false. This is a direct contradiction, as the tool can delete comments. Additionally, no other behavioral traits (auth needs, side effects) are disclosed, so transparency is poor.

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 with no filler. It front-loads the purpose and actions, making it easy to scan. 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?

Given the tool has 7 parameters and no output schema, the description does not explain return values or behavior in edge cases (e.g., what happens on delete of non-existent comment). It covers the basics but leaves gaps for a moderately complex 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?

Input schema has 100% coverage with descriptions for all parameters. The description adds minimal extra context by stating which actions require which parameters (e.g., version for edit/delete). This is helpful but largely redundant with the schema descriptions, so baseline 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 that the tool manages comments on a commit with specific actions (create, edit, delete), providing a clear verb and resource. However, it does not differentiate from the sibling tool 'manage_comment', which presumably handles comments on pull requests or other objects, so ambiguity remains.

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 lists the allowed actions but provides no guidance on when to use this tool versus alternatives like 'manage_comment' or when not to use it. It lacks explicit context or exclusions, leaving the agent to infer usage without direction.

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

manage_deploymentsA

Manage deployments for a commit. Actions: "get" (retrieve a deployment), "create" (record a new deployment), "delete" (remove a deployment). GET requires key, environmentKey, and deploymentSequenceNumber. POST body requires deploymentSequenceNumber, description, displayName, environment (with displayName, key, optional type), key, state, and optional url. DELETE requires key, environmentKey, and deploymentSequenceNumber.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoDeployment key (required for get/delete). Example: "deploy-prod-1".
urlNoDeployment URL (for create, max 1024 chars).
stateNoDeployment state (for create).
actionYesOperation to perform.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
commitIdYesFull commit hash.
repositoryYesRepository slug.
descriptionNoDeployment description (for create, max 255 chars).
displayNameNoDeployment display name (for create, max 255 chars).
environmentKeyNoEnvironment key (required for get/delete). Example: "prod".
environmentTypeNoEnvironment type (for create).
environmentDisplayNameNoEnvironment display name (for create). Example: "Production".
deploymentSequenceNumberNoDeployment sequence number (required for get/delete). Example: 1.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations provide no hints (readOnlyHint=false, etc.), so the description must convey behavior. It discloses that 'get' is read-only, 'create' and 'delete' are mutative. It does not mention idempotency or other traits, but the action descriptions are sufficient.

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?

The description is front-loaded with the main purpose and then lists actions and requirements. It is somewhat verbose but well-organized, with each sentence serving a purpose.

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?

No output schema exists, but the description does not mention what the tool returns (e.g., deployment details for get, success status for create/delete). For a tool with 13 parameters and three actions, omitting return information leaves a gap.

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 mapping specific parameters to actions (e.g., 'GET requires key, environmentKey, and deploymentSequenceNumber') and providing examples like 'Example: "deploy-prod-1".'

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 manages deployments for a commit and lists the three actions (get, create, delete). It distinguishes itself from sibling tools, none of which focus on deployments.

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 specifies which parameters are required for each action (e.g., GET requires key, environmentKey, deploymentSequenceNumber). It does not explicitly state when not to use the tool or mention alternatives, but the action-based guidance is clear.

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

manage_gpg_keysB

Manage GPG keys for the authenticated user. Actions: "add" (add a key), "delete" (remove a key).

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoGPG public key text (required for add).
keyIdNoKey ID (required for delete).
actionYesOperation to perform.

TDQS

B3.3/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, but the tool modifies GPG keys (add/delete). The description does not disclose side effects, authentication requirements, or constraints (e.g., impact on existing keys). For a mutation tool, more behavioral context is expected.

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?

The description is concise with one sentence and an actions list. It front-loads the purpose. Slightly more structure (e.g., bullet points) could improve readability, but it is efficient.

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?

The tool is simple (add/delete GPG key), but the description lacks information on return values, authorization, or limits. Given no output schema, the agent would benefit from knowing what happens on success/failure. It is adequate but not comprehensive.

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%, providing baseline. The description adds clarifications: 'add a key' for 'add', 'remove a key' for 'delete', and notes that 'text' is required for add and 'keyId' for delete. This adds value beyond the schema's property descriptions.

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 manages GPG keys for the authenticated user and lists the available actions (add, delete). It distinguishes from sibling tools like list_gpg_keys (for listing) and manage_ssh_keys (for SSH keys). However, it could be more specific about the scope.

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 for adding/deleting GPG keys, but provides no explicit guidance on when to choose this tool over alternatives (e.g., list_gpg_keys for viewing). No exclusions or prerequisites are mentioned.

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

manage_labelsB

Manage repository labels. Actions: "add" (create a new label), "remove" (delete a label).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLabel name.
actionYesOperation to perform.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.

TDQS

B3.1/5.0
Behavior1/5

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

Annotations set 'destructiveHint: false', but the description explicitly mentions deleting labels ('remove' action). This contradicts the annotation, misleading an agent about the tool's destructive nature.

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 unnecessary words. Front-loaded with verb and resource, then enumerates actions compactly.

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?

Lacks details on return values, error handling, or permissions needed. For a mutation tool with no output schema and contradictory annotations, more context would be beneficial.

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 parameters are documented. The description adds clarification for the 'action' enum values ('add'/'remove' meanings), but does not enrich other parameters beyond schema 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 clearly states the tool's action ('Manage repository labels') and lists the two specific operations ('add' and 'remove'), which distinguishes it from read-only siblings like 'list_labels'.

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., 'list_labels' for viewing). No explicit when-not-to-use or context for selecting between 'add' and 'remove'.

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

manage_merge_checksB

Configure merge check settings for a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
hookKeyYesMerge check hook key.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
settingsYesHook settings object.
repositoryYesRepository slug.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, idempotentHint=false, destructiveHint=false, suggesting it's a mutating but non-destructive operation. The description adds 'configure' which implies modification, but does not clarify whether changes are additive or overwrite, or any side effects like requiring admin rights. Given annotations, the description adds minimal context.

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 a single sentence with no wasted words. It is front-loaded and efficiently conveys the tool's purpose.

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

Completeness2/5

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

The description is very sparse for a configuration tool with a complex nested parameter ('settings') and no output schema. It does not explain what merge checks are, how settings work, or what the response indicates. More context is needed for effective 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% with all parameters described. The description does not add meaning beyond the schema; notably, 'settings' is an open-ended object without typical examples. Since schema coverage is high, a baseline 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?

The description 'Configure merge check settings for a repository' uses a specific verb ('configure') and explicitly names the resource ('merge check settings for a repository'). It clearly distinguishes from the sibling tool 'list_merge_checks' which lists settings rather than configuring them.

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 provides no guidance on when to use this tool vs. alternatives, such as first listing existing merge checks, or prerequisites like repository permissions. The sibling 'list_merge_checks' exists but no relationship is mentioned.

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

manage_repository_hooksA

Manage repository hook settings. Actions: "enable" (enable a hook), "disable" (disable a hook), "configure" (set hook settings).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesOperation to perform.
hookKeyYesHook key (e.g. 'com.atlassian.bitbucket.server.bitbucket-bundled-hooks:force-push-hook').
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
settingsNoHook settings object (for 'configure' action).
repositoryYesRepository slug.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate non-read-only, non-idempotent, and non-destructive behavior. The description adds the actions but does not disclose side effects, required permissions, or failure modes. It is consistent with annotations but adds minimal behavioral context.

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?

The description is a single concise sentence listing actions. It is efficient but could benefit from clearer structure, such as separating actions into a list or adding formatting. Still, it is well above minimal.

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 5 parameters, a nested settings object, and no output schema, the description should provide more context on how to use the settings parameter or the effects of each action. It is adequate but incomplete for complex usage.

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 all 5 parameters. The tool description adds a brief explanation of the three actions (enable, disable, configure) but does not clarify the structure of the 'settings' object or provide examples. This matches the baseline for high 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 the tool manages repository hook settings and lists specific actions (enable, disable, configure). This distinguishes it from the sibling 'list_repository_hooks' which is read-only, making the purpose and resource unambiguous.

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 when needing to change hook settings but provides no explicit guidance on when to use this tool vs alternatives like 'list_repository_hooks' for inspection. No prerequisites or exclusions are mentioned.

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

manage_reviewA

Approve, unapprove, or publish a review on a pull request. Use "approve" to approve, "unapprove" to remove your approval, and "publish" to submit a review with an optional overview comment and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
prIdYesPull request ID.
actionYesReview action to perform.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.
commentTextNoOverview comment text (for publish action).
participantStatusNoParticipant status to set (for publish action).

TDQS

A4.2/5.0
Behavior3/5

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

Annotations are all false, providing no hints about mutability or destructiveness. The description discloses basic behavioral traits (each action's effect) but does not cover permissions, side effects, or what happens after actions (e.g., whether approval triggers anything). Adequate but not exhaustive.

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 three short sentences, front-loaded with the overall purpose, then specifying actions. No redundant text; every sentence is essential.

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 6 parameters (3 required, 2 enums) and no output schema, the description covers core functionality and action-specific parameters. It could mention defaults (e.g., project) or error behavior, but it is largely complete for typical usage.

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 parameters are documented. The description adds value by linking 'commentText' and 'participantStatus' to the 'publish' action, clarifying their usage 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 clearly states the tool's purpose: 'Approve, unapprove, or publish a review on a pull request.' It uses a specific verb ('manage' implied) and distinguishes from sibling tools by focusing on review actions on 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 Guidelines4/5

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

The description provides explicit usage for each action: 'Use "approve" to approve, "unapprove" to remove your approval, and "publish" to submit a review with an optional overview comment and status.' While it does not explicitly compare to alternatives (e.g., manage_comment or merge_pull_request), the guidance is clear for the intended use.

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

manage_reviewer_groupsC

Manage reviewer groups for a repository. Actions: "create" (create a group), "delete" (remove a group).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesReviewer group name.
actionYesOperation to perform.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
reviewersNoUsernames to include in the group (create only).
repositoryYesRepository slug.
descriptionNoGroup description (create only).

TDQS

C2.9/5.0
Behavior1/5

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

The description indicates that the 'delete' action removes a group, which is a destructive operation. However, the annotations set destructiveHint=false, directly contradicting the description. Additionally, the description provides no behavioral context about side effects (e.g., permanent removal, impact on assigned reviewers) beyond the action names. This is a serious inconsistency.

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: two sentences with no redundant words. It front-loads the purpose and then lists actions efficiently. Every sentence adds value without waste.

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 6 parameters and no output schema, the description covers the core operations but omits important context: error behavior (e.g., duplicate group name on create, non-existent group on delete), permission requirements, and whether changes are immediate or reversible. For a management tool with destructive actions, this lacks necessary completeness.

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 the description adds limited new meaning. It clarifies that 'reviewers' and 'description' are applicable only for the 'create' action, which is already stated in the schema descriptions. The description does not further explain parameter semantics, such as format constraints or defaults for 'project'. Baseline 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 manages reviewer groups for a repository and enumerates the supported actions (create and delete). While it specifies the verb and resource, it does not explicitly differentiate from sibling tools like list_reviewer_groups or manage_review, but the name and actions make the purpose distinct enough.

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. There is no mention of prerequisites, error handling, or when not to use it (e.g., if a group already exists or does not exist). The implied use case is for creating or deleting reviewer groups, but without explicit context, the agent may misuse it.

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

manage_ssh_keysA

Manage SSH keys for the authenticated user. Actions: "add" (add a key), "delete" (remove a key).

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoSSH public key text (required for add).
keyIdNoKey ID (required for delete).
actionYesOperation to perform.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations do not indicate readonly or destructive behavior. Description mentions 'authenticated user' but does not elaborate on consequences of deletion or authentication requirements beyond that.

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, efficient sentence that front-loads the purpose and actions. No filler or redundant 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?

Covers the two actions and mentions user scope. Lacks details on response format or side effects, but for a simple mutation tool, the description is largely 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% and description aligns with enum values. No additional semantic information beyond what the schema provides, so baseline score 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?

Description clearly states it manages SSH keys with specific actions (add/delete), distinguishing it from sibling tools like list_ssh_keys and manage_gpg_keys.

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 explicit guidance on when to use this tool vs alternatives (e.g., list_ssh_keys for listing). The description only lists actions without providing context.

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

manage_tagsB
Destructive

Manage tags in a repository. Actions: "create" (create a new tag pointing to a commit), "delete" (delete a tag by name).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTag name (e.g. 'v1.0.0').
actionYesOperation to perform.
messageNoOptional message for the tag (create only).
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
repositoryYesRepository slug.
startPointNoCommit hash to tag (create only).

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already provide destructiveHint: true; description adds no further context (e.g., permanence of delete, auth needs, side effects). No added value 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?

Extremely concise: one sentence with a list of actions. No fluff; every word earns its place.

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

Completeness2/5

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

Lacks details on return values, error scenarios (e.g., tag already exists), and behavior for delete on nonexistent tag. Absent output schema increases need for description completeness.

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 covers all 6 parameters completely (100% coverage). Description reiterates actions but adds no extra meaning not in 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?

Clearly states it manages tags with actions 'create' and 'delete', specific to tags and repository, distinguishing from siblings like 'list_tags' and 'get_tag'.

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 (e.g., creating vs listing) or alternatives. Does not mention prerequisites like commit existence for create.

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

manage_webhooksC

Manage repository webhooks. Actions: "create" (add a new webhook), "update" (modify an existing webhook), "delete" (remove a webhook).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoWebhook callback URL (required for create).
nameNoWebhook name (required for create).
actionYesOperation to perform.
activeNoWhether the webhook is active (default: true).
eventsNoList of event types to subscribe to (e.g. 'repo:refs_changed', 'pr:opened').
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
webhookIdNoWebhook ID (required for update and delete).
repositoryYesRepository slug.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations provide no safety cues (all false), so description must fill the gap. It lists actions but doesn't disclose side effects (e.g., deleting a webhook is permanent, updating overwrites). No mention of idempotency or destructive behavior. The behavioral burden is not met.

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?

The description is a single sentence that efficiently communicates the purpose and actions. It is front-loaded with 'Manage repository webhooks' and then enumerates actions. However, more structure (e.g., bullet points or separate sentences) could improve readability.

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

Completeness2/5

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

Given 8 parameters and no output schema, the description is insufficient. It doesn't explain the behavior of each action, required fields per action, or output expectations. The schema covers parameters but the description fails to tie them together into a coherent workflow.

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 the schema already describes all parameters. The description adds no additional parameter meaning beyond listing actions. Baseline 3 is appropriate; no extra value is provided.

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 manages repository webhooks and lists three actions (create, update, delete). It distinguishes from sibling tools like list_webhooks which only lists. However, the verb 'manage' is generic and could be more specific (e.g., 'Create, update, or delete webhooks on a repository').

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 like list_webhooks or manage_repository_hooks. No prerequisites or required context (e.g., repository must exist) are mentioned. The description provides minimal usage context.

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

merge_pull_requestA
Destructive

Merge an approved pull request. Fetches the current version automatically for optimistic locking.

ParametersJSON Schema
NameRequiredDescriptionDefault
prIdYesPull request ID.
messageNoCustom merge commit message.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
strategyNoMerge strategy ID. no-ff = merge commit, ff = fast-forward, ff-only = fast-forward only, squash = squash, rebase-no-ff = rebase + merge commit, rebase-ff-only = rebase + fast-forward.
repositoryYesRepository slug.

TDQS

A3.9/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 value by explaining the automatic optimistic locking behavior, providing behavioral context 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 efficient sentences with no waste. The first sentence states the purpose, and the second adds critical detail about automatic version fetching.

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?

The description is concise but lacks information about return values, prerequisites (e.g., approval status), and potential failure scenarios, leaving some gaps for a mutation tool with no output 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?

With 100% schema coverage, the baseline is 3. The description adds minimal extra meaning beyond schema descriptions, only hinting at optimistic locking for the merge operation.

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 action ('Merge an approved pull request') and the resource ('pull request'), effectively distinguishing it from sibling tools like create_pull_request or decline_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 Guidelines3/5

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

The description implies usage after approval but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites.

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

search_emoticonsA
Read-onlyIdempotent

Search available emoticons for comment reactions. Returns matching shortcut names to use with manage_comment react/unreact.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term (e.g. thumb, fire, heart).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare safe/idempotent. Description adds that it returns 'matching shortcut names' and its purpose for reactions, providing useful context 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?

Two sentences, no wasted words, front-loaded purpose and output. Efficient and clear.

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 simple search tool with one parameter and no output schema, description fully covers purpose, output, and usage context. 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% for single parameter 'query' with example. Description does not add significant meaning beyond schema; baseline score 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?

Clear verb 'Search' and resource 'emoticons for comment reactions', distinguishes from siblings by focusing on emoticon search for reactions. Explicitly states output (shortcut names) and connection to manage_comment.

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?

States it's for comment reactions and returns shortcut names for manage_comment react/unreact, implying when to use. Lacks explicit when-not or alternatives, but context is clear.

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

search_usersA
Read-onlyIdempotent

Search Bitbucket users by filter query. Returns matching users.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 25, max: 100).
startNoStart index for pagination (default: 0).
fieldsNoComma-separated fields to return (dot notation for nested paths). Omit for a curated default; use '*all' for the full raw API response.
filterYesFilter query substring to match against user names and display names.

TDQS

A3.5/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 agent knows it is a safe read operation. The description adds minimal behavioral context beyond 'returns matching users', which is already implied by the 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 concise sentences with no redundant information. However, it could be slightly expanded to include more context without losing efficiency.

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 search tool with 4 well-documented parameters and no output schema, the description plus schema provide sufficient context for an agent to invoke the tool correctly.

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 having a description. The description only reinforces that 'filter' is used for the query, adding no new semantics beyond the schema. 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 uses a specific verb 'Search' and resource 'Bitbucket users' with a clear method 'by filter query'. It distinguishes from sibling tools like 'search' (general) and 'search_emoticons' by targeting users exclusively.

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. There is no mention of prerequisites, exclusions, or comparison with sibling search tools.

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

update_pull_requestA
Idempotent

Update a pull request (title, description, target branch, or reviewers). Only changed fields are applied; reviewers are preserved if not provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
prIdYesPull request ID.
titleNoNew title.
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
reviewersNoReplace reviewer list with these usernames.
repositoryYesRepository slug.
descriptionNoNew description.
targetBranchNoNew target branch.

TDQS

A4/5.0
Behavior4/5

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

Description adds behavioral detail beyond annotations: only changed fields applied, reviewers preserved if omitted. Annotations already indicate idempotent and non-destructive, so description complements well.

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?

One efficient sentence covering what the tool does and key behaviors, no fluff.

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?

Tool is simple update. Schema covers all params. Missing return value info and error handling, but reasonable for this type of 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 covers 100% of parameters with descriptions. Description adds minor nuance about reviewer preservation but doesn't explain other param behaviors beyond 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?

Clear verb 'Update' with specific resources: title, description, target branch, or reviewers. Distinguishes from sibling create and merge tools.

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 use when modifying an existing PR but no explicit when-to-use vs alternatives like create_pull_request or merge_pull_request.

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

upload_attachmentB

Upload a file attachment to a repository. Returns a markdown reference to embed in PR comments or descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNoProject key. Defaults to BITBUCKET_DEFAULT_PROJECT.
filePathYesAbsolute path to the file on the local filesystem.
repositoryYesRepository slug.

TDQS

B3.3/5.0
Behavior2/5

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

The description adds little beyond the annotations. It states it uploads and returns a markdown reference, but does not disclose behavioral details like file size limits, overwrite behavior, permissions required, or rate limits. Annotations already indicate it is not read-only or idempotent.

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 with no unnecessary words. It front-loads the primary action and immediately states the return value. Every sentence serves a purpose.

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?

The description covers the basic purpose and return value, but with no output schema it could be more complete. It omits details like error handling, prerequisites, or whether the attachment is visible in the UI. Adequate but has 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 clear parameter descriptions. The description adds context about the return value (markdown reference) but does not elaborate on parameter constraints or relationships. Baseline 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?

The description clearly states 'Upload a file attachment to a repository' which is a specific verb-resource pairing. It also distinguishes from sibling tools like edit_file or create_pull_request by focusing on file attachments and their use (embedding in PR comments).

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 is provided on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or suggest other tools for different scenarios (e.g., editing files directly).

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. 59 tool updatesv0.1.0
    • First observedbrowse_repository
    • First observedcompare_refs
    • First observedcreate_pull_request
    • First observedcreate_repository
    • First observeddecline_pull_request
    • First observeddelete_repository
    • First observededit_file
    • First observedfork_repository
    • First observedget_build_status
    • First observedget_code_insights
    • First observedget_commit
    • First observedget_commit_pull_requests
    • First observedget_diff
    • First observedget_file_blame
    • First observedget_file_content
    • First observedget_pull_request
    • First observedget_pull_request_activity
    • First observedget_pull_request_commits
    • First observedget_server_info
    • First observedget_tag
    • First observedget_user_profile
    • First observedlist_branch_restrictions
    • First observedlist_branches
    • First observedlist_commit_comments
    • First observedlist_commits
    • First observedlist_dashboard_pull_requests
    • First observedlist_default_reviewer_conditions
    • First observedlist_forks
    • First observedlist_gpg_keys
    • First observedlist_labels
    • First observedlist_merge_checks
    • First observedlist_projects
    • First observedlist_pull_requests
    • First observedlist_repositories
    • First observedlist_repository_hooks
    • First observedlist_reviewer_groups
    • First observedlist_secret_scanning_rules
    • First observedlist_ssh_keys
    • First observedlist_tags
    • First observedlist_webhooks
    • First observedmanage_branches
    • First observedmanage_comment
    • First observedmanage_commit_comments
    • First observedmanage_deployments
    • First observedmanage_gpg_keys
    • First observedmanage_labels
    • First observedmanage_merge_checks
    • First observedmanage_repository_hooks
    • First observedmanage_review
    • First observedmanage_reviewer_groups
    • First observedmanage_ssh_keys
    • First observedmanage_tags
    • First observedmanage_webhooks
    • First observedmerge_pull_request
    • First observedsearch
    • First observedsearch_emoticons
    • First observedsearch_users
    • First observedupdate_pull_request
    • First observedupload_attachment

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have distinct purposes, but with 59 tools, some overlap may occur (e.g., multiple 'manage' tools for different resources). However, naming and descriptions help differentiate.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (e.g., list_branches, create_pull_request, manage_webhooks) with no mixing of conventions.

Tool Count2/5

59 tools is excessive for a typical server. While the scope covers many Bitbucket features, many tools are narrow (e.g., manage_gpg_keys, list_ssh_keys) and could be consolidated, leading to a heavy surface.

Completeness4/5

The tool set covers a wide range of Bitbucket Server operations including browsing, commits, PRs, branches, tags, hooks, keys, and more. Minor gaps exist (e.g., no tool for creating projects directly), but overall coverage is strong.

Maintenance

ActivitySlowing
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

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables management of Bitbucket Cloud pull requests through natural language, including creating, reviewing, approving, and commenting on PRs with automatic default reviewer support.
    79
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables LLMs to interact with Bitbucket repositories to manage pull requests, branches, and commits through the Model Context Protocol. It supports repository operations such as searching code, accessing file contents, and comparing branches using natural language.
    16
    5,033
    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/Upendrasengar/bitbucket-server-mcp'

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