MCP Bitbucket Python
MCP Bitbucket Python 🦊
Bitbucket との連携を可能にする MCP サーバーの Python 実装です。MCP (Model Context Protocol) は、AI アプリケーションによる安全なローカルツールアクセスを実現します。サーバーは AI アプリケーションと同じマシン上でローカルに実行されます。
インストール
# Install the server locally
git clone https://github.com/kallows/mcp-bitbucket.gitRelated MCP server: bitbucket-mcp-server
利用可能なツール
この MCP サーバーは、次の Bitbucket 統合ツールを提供します。
bb_create_repository: 新しい Bitbucket リポジトリを作成する必須: 名前 (リポジトリ名)
オプション: 説明、ワークスペース (デフォルトは kallows)、プロジェクトキー、is_private (デフォルト: true)、has_issues (デフォルト: true)
bb_create_branch: リポジトリに新しいブランチを作成する必須: repo_slug、branch(新しいブランチの名前)
オプション: ワークスペース (デフォルトは kallows)、start_point (デフォルトは main)
bb_delete_repository: Bitbucket リポジトリを削除する必須: repo_slug
オプション: ワークスペース (デフォルトは kallows)
bb_read_file: リポジトリからファイルを読み取る必須: repo_slug、path (リポジトリ内のファイルパス)
オプション: ワークスペース (デフォルトは kallows)、ブランチ (デフォルトは main/master)
bb_write_file: リポジトリ内のファイルを作成または更新する必須: repo_slug、パス、コンテンツ
オプション: ワークスペース (デフォルトは kallows)、ブランチ (デフォルトは main)、メッセージ (コミットメッセージ)
bb_create_issue: リポジトリに問題を作成する必須: repo_slug、タイトル、コンテンツ
オプション: ワークスペース (デフォルトは kallows)、種類 (バグ/機能強化/提案/タスク)、優先度 (些細/軽微/重大/重大/ブロック)
bb_delete_issue: リポジトリから問題を削除する必須: repo_slug、issue_id
オプション: ワークスペース (デフォルトは kallows)
bb_search_repositories: クエリ構文を使用して Bitbucket リポジトリを検索します必須: クエリ (例: 'name ~ "test"' または 'project.key = "PROJ"')
オプション: ワークスペース (デフォルトは kallows)、ページ (デフォルト: 1)、ページ長 (デフォルト: 10、最大: 100)
bb_delete_file: リポジトリからファイルを削除する必須: repo_slug、パス
オプション: ワークスペース (デフォルトは kallows)、ブランチ (デフォルトは main)、メッセージ (コミットメッセージ)
bb_create_pull_request: プルリクエストを作成する必須: repo_slug、title、source_branch
オプション: ワークスペース (デフォルトは kallows)、 destination_branch (デフォルトは main)、 description、 close_source_branch (デフォルト: true)
環境設定
サーバーでは、Bitbucket の資格情報を環境変数として設定する必要があります。
export BITBUCKET_USERNAME="your-username"
export BITBUCKET_APP_PASSWORD="your-app-password"プロジェクト構造
mcp-bitbucket/
├── README.md
├── pyproject.toml
├── src/
│ └── bitbucket_api/
│ ├── __init__.py
│ └── server.py
└── tests/
├── __init__.py
├── test_bb_api.py
└── test_bb_integration.pyAvailable Tools
10 toolsbb_create_branchC
Create a new branch in a Bitbucket repository
| Name | Required | Description | Default |
|---|---|---|---|
| branch | Yes | Name for the new branch | |
| repo_slug | Yes | Repository slug/name | |
| start_point | No | Branch/commit to create from (defaults to main) | main |
| workspace | No | Repository workspace (defaults to kallows) | kallows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool creates a branch but doesn't mention permissions required, whether it's a destructive operation (though implied as non-destructive), rate limits, or what happens on success/failure. This leaves significant gaps for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain behavioral aspects like permissions, error conditions, or return values, which are crucial for safe and effective use. The high schema coverage helps but doesn't compensate for these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, maintaining the baseline score of 3 for adequate but no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new branch') and resource ('in a Bitbucket repository'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like bb_create_repository or bb_create_pull_request, which also create resources in Bitbucket repositories but different types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., needing repository access), exclusions, or comparisons with sibling tools like bb_create_pull_request that might involve branch creation. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bb_create_issueC
Create an issue in a Bitbucket repository
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Issue content/description | |
| kind | No | Issue type (bug, enhancement, proposal, task) | task |
| priority | No | Issue priority (trivial, minor, major, critical, blocker) | minor |
| repo_slug | Yes | Repository slug/name | |
| title | Yes | Issue title | |
| workspace | No | Repository workspace (defaults to kallows) | kallows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Create') but doesn't describe what happens upon execution—such as whether it requires specific permissions, returns an issue ID, triggers notifications, or has rate limits. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It directly states the tool's function, earning its place with zero waste, making it highly concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a creation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., permissions, response format), usage context, and how it fits with siblings. While the schema covers parameters well, the overall context for effective tool selection and invocation is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting all 6 parameters with their types, defaults, and purposes (e.g., 'Issue content/description', 'Issue type'). The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('issue in a Bitbucket repository'), making the purpose immediately understandable. It distinguishes from siblings like bb_create_branch or bb_create_pull_request by specifying the resource type (issue). However, it doesn't explicitly differentiate from bb_delete_issue or other issue-related tools beyond the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., needing repository access), exclusions (e.g., not for updating existing issues), or comparisons with siblings like bb_create_pull_request for code changes or bb_delete_issue for removal. Usage is implied by the verb 'Create' but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bb_create_pull_requestC
Create a new pull request in a Bitbucket repository
| Name | Required | Description | Default |
|---|---|---|---|
| close_source_branch | No | Close source branch after merge | |
| description | No | Pull request description | |
| destination_branch | No | Branch you want to merge into | main |
| repo_slug | Yes | Repository slug/name | |
| source_branch | Yes | Branch containing your changes | |
| title | Yes | Pull request title | |
| workspace | No | Repository workspace (defaults to kallows) | kallows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a pull request but doesn't describe what happens upon invocation (e.g., whether it opens a draft, requires approvals, triggers notifications, or has side effects like branch locking). For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. Every part of the sentence earns its place by conveying essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like error conditions, permissions needed, or what the tool returns. Given the complexity and lack of structured data, the description should provide more context to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what the input schema already provides. Since schema description coverage is 100%, the baseline score is 3. The description doesn't explain parameter interactions, dependencies, or provide examples, so it doesn't compensate for any schema gaps (though none exist).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new pull request') and resource ('in a Bitbucket repository'), which is specific and unambiguous. However, it doesn't differentiate from sibling tools like 'bb_create_issue' or 'bb_create_branch' beyond mentioning 'pull request', leaving some room for confusion about when to use each creation tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., needing existing branches), exclusions, or compare it to sibling tools like 'bb_create_issue' for different types of requests. Usage is implied by the name but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bb_create_repositoryC
Create a new repository in Bitbucket
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | Repository description | |
| has_issues | No | Whether to initialize the repository with issue tracking enabled | |
| is_private | No | Whether the repository should be private | |
| name | Yes | Repository name | |
| project_key | No | The project key where the repository will be created (optional for personal repos) | |
| workspace | No | Target workspace (defaults to kallows, can use ~ for personal workspace) | kallows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a repository but doesn't mention permissions required, whether the operation is idempotent, potential side effects (e.g., initializing with default settings), or error conditions. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place, achieving optimal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a repository creation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like authentication needs, rate limits, or return values, nor does it provide usage context. For a mutation tool in a collaborative platform like Bitbucket, more guidance is needed to ensure safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting all 6 parameters, so the baseline is 3. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain naming conventions, project_key dependencies, or workspace implications), but it doesn't need to since the schema is comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new repository in Bitbucket'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its siblings like bb_create_branch or bb_create_issue, which also create resources in Bitbucket, so it doesn't fully distinguish itself within the tool family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., needing workspace access), compare it to sibling tools like bb_search_repositories for finding existing repos, or specify scenarios where creation is appropriate versus not. This leaves the agent with minimal context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bb_delete_fileC
Delete a file from a Bitbucket repository
| Name | Required | Description | Default |
|---|---|---|---|
| branch | No | Branch name (defaults to main/master) | main |
| message | No | Commit message for the deletion | Delete file via MCP |
| path | Yes | Path to the file to delete | |
| repo_slug | Yes | Repository slug/name | |
| workspace | No | Repository workspace (defaults to kallows) | kallows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action is 'Delete,' implying a destructive mutation, but doesn't mention critical details like whether deletion is permanent, requires specific permissions, affects repository history, or has rate limits. This is a significant gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and efficiently conveys the core action, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks behavioral context (e.g., permanence, permissions), output expectations, and usage guidelines relative to siblings. Given the complexity and risk of file deletion, more information is needed to adequately guide an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain path formats or branch implications). Baseline 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a file from a Bitbucket repository'), making the purpose immediately understandable. It distinguishes from siblings like bb_delete_issue and bb_delete_repository by specifying 'file' as the target. However, it doesn't explicitly contrast with bb_write_file for file operations, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., needing write permissions), compare with siblings like bb_write_file for file modifications, or indicate when deletion is appropriate versus other actions. This leaves the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bb_delete_issueC
Delete an issue from a Bitbucket repository
| Name | Required | Description | Default |
|---|---|---|---|
| issue_id | Yes | ID of the issue to delete | |
| repo_slug | Yes | Repository slug/name | |
| workspace | No | Repository workspace (defaults to kallows) | kallows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Delete' implies a destructive mutation, it doesn't specify whether this action is reversible, what permissions are required, if there are confirmation prompts, rate limits, or what happens to associated data (e.g., comments). This leaves significant gaps for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized for a straightforward deletion tool and front-loads the core purpose immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description is inadequate. It doesn't cover behavioral aspects like permissions, irreversibility, or error conditions, nor does it explain what happens upon successful deletion. Given the complexity and risk of deletion operations, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any meaningful parameter semantics beyond what's already in the schema (e.g., explaining relationships between parameters or usage patterns). Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('an issue from a Bitbucket repository'), providing a specific verb+resource combination. However, it doesn't differentiate this tool from sibling deletion tools like 'bb_delete_file' or 'bb_delete_repository', which would require mentioning it's specifically for issues rather than files or entire repositories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., needing appropriate permissions), when not to use it (e.g., for archiving instead of deletion), or refer to sibling tools like 'bb_create_issue' for context on issue lifecycle management.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bb_delete_repositoryC
Delete a repository from Bitbucket
| Name | Required | Description | Default |
|---|---|---|---|
| repo_slug | Yes | The repository slug to delete | |
| workspace | No | Target workspace (defaults to kallows, can use ~ for personal workspace) | kallows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Delete' implies a destructive operation, it doesn't specify whether deletion is permanent or reversible, what happens to associated data, or any rate limits/authentication requirements. This is a significant gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple destructive operation and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is insufficient. It doesn't address critical context like whether deletion is permanent, what permissions are required, what happens on success/failure, or how this differs from other deletion operations in the sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, maintaining the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and target resource ('a repository from Bitbucket'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling deletion tools like 'bb_delete_file' or 'bb_delete_issue' beyond specifying the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (like permissions needed), when deletion is appropriate versus other operations, or how this differs from other deletion tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bb_read_fileC
Read a file from a Bitbucket repository
| Name | Required | Description | Default |
|---|---|---|---|
| branch | No | Branch name (defaults to main/master) | main |
| path | Yes | Path to the file in the repository | |
| repo_slug | Yes | Repository slug/name | |
| workspace | No | Repository workspace (defaults to kallows) | kallows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Read a file') but lacks details on permissions, error handling, rate limits, or output format. This is insufficient for a tool that interacts with a repository system, leaving the agent with significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is front-loaded with the core action and resource, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a file-reading tool with no annotations and no output schema, the description is incomplete. It does not explain what the tool returns (e.g., file content, metadata), error conditions, or dependencies like authentication, which are critical for effective use in a Bitbucket context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond what the schema provides, such as examples or context for parameter usage. This meets the baseline score when the schema handles parameter documentation effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Read') and resource ('a file from a Bitbucket repository'), making the purpose unambiguous. However, it does not distinguish this tool from potential alternatives like 'bb_write_file' or 'bb_delete_file' beyond the basic action, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. For example, it does not mention that this is for reading existing files, not creating or modifying them, nor does it reference sibling tools like 'bb_write_file' or 'bb_delete_file' for related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bb_search_repositoriesA
Search repositories in Bitbucket using Bitbucket's query syntax. Search by name (name ~ "pattern"), project key (project.key = "PROJ"), language (language = "python"), or dates (updated_on >= "2024-01-19"). NOTE: All dates must be in ISO 8601 format (YYYY-MM-DD). For searching files within repositories, use Bitbucket's code search in the web interface.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| pagelen | No | Number of results per page (max 100) | |
| query | Yes | Search query (e.g., 'name ~ "test"' or 'project.key = "PROJ"') | |
| workspace | No | Workspace to search in (defaults to kallows) | kallows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions date format requirements (ISO 8601) and pagination context (implied by parameters), but doesn't cover other important behaviors like rate limits, authentication needs, error handling, or what the response looks like. It's adequate but has clear gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with two sentences: the first states the purpose and key capabilities, the second provides important exclusions and alternatives. Every sentence earns its place with no wasted words, and critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 4 parameters, 100% schema coverage, but no annotations and no output schema, the description is moderately complete. It covers the core purpose and usage boundaries well, but lacks information about response format, error conditions, and other behavioral aspects that would help an agent use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema - it provides query syntax examples that align with the schema's description, but doesn't explain parameters like 'workspace' or 'pagelen' beyond what's already in the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Search repositories in Bitbucket') and resource ('repositories'), distinguishing it from sibling tools like bb_create_repository or bb_delete_repository. It explicitly mentions using Bitbucket's query syntax, which adds specificity beyond a generic search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 this tool (searching repositories) and when not to use it (for searching files within repositories, directing users to Bitbucket's web interface instead). It also distinguishes from siblings by focusing on repository-level search rather than file operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bb_write_fileC
Write/update a file in a Bitbucket repository
| Name | Required | Description | Default |
|---|---|---|---|
| branch | No | Branch name (defaults to main/master) | main |
| content | Yes | Content to write to the file | |
| message | No | Commit message | Update file via MCP |
| path | Yes | Path where to create/update the file | |
| repo_slug | Yes | Repository slug/name | |
| workspace | No | Repository workspace (defaults to kallows) | kallows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'write/update' which implies mutation, but fails to describe critical behaviors like authentication requirements, error handling (e.g., if the file doesn't exist), commit creation, or potential side effects. This leaves significant gaps for a tool that modifies repository content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without any fluff. It's front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like what happens on success/failure, commit implications, or how it interacts with version control. Given the complexity of file operations in a repository, more context is needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning about parameters beyond what's in the schema (e.g., it doesn't explain parameter interactions or provide examples). This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('write/update') and resource ('a file in a Bitbucket repository'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like bb_delete_file or bb_read_file, which would require mentioning creation vs. deletion vs. reading operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. For example, it doesn't clarify if this should be used for new files versus updates, or how it relates to bb_delete_file or bb_read_file. The description only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Every tool has a clearly distinct purpose targeting specific Bitbucket resources and actions, with no overlap or ambiguity. For example, bb_create_branch, bb_create_issue, and bb_create_pull_request each handle different creation operations, while bb_read_file and bb_write_file are distinct file operations.
All tools follow a consistent 'bb_verb_noun' pattern throughout, using snake_case and starting with 'bb_' as a prefix. This predictable naming convention makes it easy to understand each tool's function at a glance, with no deviations or mixed styles.
With 10 tools, the server is well-scoped for Bitbucket operations, covering repository, branch, issue, pull request, and file management. Each tool earns its place by addressing a core functionality without being overly broad or sparse, fitting typical server tool counts of 3-15.
The tool set provides strong CRUD/lifecycle coverage for Bitbucket's key resources, including create/delete for repositories, issues, and files, and create for branches and pull requests. A minor gap exists in update operations (e.g., updating issues or pull requests), but agents can work around this with create/delete or other methods.
Maintenance
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
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A MCP server built for developers enabling Git based project management with project and personal…
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Related MCP Servers
- AlicenseCqualityBmaintenanceMCP server for integrating with Bitbucket Cloud and Server APIs, enabling AI assistants to interact with repositories, pull requests, pipelines, and more.59373MIT
- AlicenseNot gradedqualityBmaintenanceA Model Context Protocol (MCP) server that provides tools for interacting with Bitbucket repositories, pull requests, issues, and more.40ISC
- AlicenseAqualityDmaintenanceAn MCP server for BitBucket Cloud operations that enables AI agents to manage repositories, branches, pull requests, and search code.32MIT
- AlicenseBqualityDmaintenanceMCP server for Bitbucket Cloud that enables AI agents to manage repositories, branches, pull requests, and deployments via typed tools.1740ISC
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Kallows/mcp-bitbucket'
If you have feedback or need assistance with the MCP directory API, please join our Discord server