From ab73c92e6dfb92724052f6f7716fabd4e5b4cef9 Mon Sep 17 00:00:00 2001 From: Nicolas FRADIN Date: Wed, 20 May 2026 23:09:12 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20update=20README=20with=20full=20capabil?= =?UTF-8?q?ities=20=E2=80=94=20write=20ops,=20repo=20browsing,=20tasks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 (1M context) --- README.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 5571454..ac02861 100644 --- a/README.md +++ b/README.md @@ -15,16 +15,19 @@ ## Overview -This MCP server exposes **read-only** Bitbucket Cloud Pull Request operations as tools that AI agents (Claude, etc.) can invoke over stdio. It connects your AI workflow directly to your Bitbucket repositories. +This MCP server exposes Bitbucket Cloud operations as tools that AI agents (Claude, etc.) can invoke over stdio. It connects your AI workflow directly to your Bitbucket repositories — covering everything from read-only PR inspection to full write operations. ### Capabilities | Category | Operations | |----------|-----------| -| **Pull Requests** | List, get details, get full expanded PR | +| **Workspaces & Repos** | List workspaces, list/get repositories, list branches | +| **Pull Requests (read)** | List, get details, get full expanded PR, status | +| **Pull Requests (write)** | Create, update, merge, decline | | **Code Review** | Diff, patch, file changes, commits | -| **Collaboration** | Comments, activities, participants, reviewers | -| **Workflow** | Status, tasks, task count | +| **Collaboration** | Comments (read/add/edit/delete), activities, participants, reviewers | +| **Review Workflow** | Approve, unapprove, request changes, remove request-changes | +| **Tasks** | Get tasks, task count, create/update/delete tasks | | **Auth** | Token validation | --- @@ -108,6 +111,15 @@ Restart Claude (or reload MCP servers), then ask Claude to run the `validate_tok |------|-------------| | `validate_token` | Verify credentials are valid | +### Workspaces & Repositories + +| Tool | Description | Key Parameters | +|------|-------------|----------------| +| `list_workspaces` | List all workspaces the authenticated user belongs to | `page?`, `pagelen?` | +| `list_repositories` | List repositories in a workspace | `workspace`, `role?`, `page?`, `pagelen?` | +| `get_repository` | Get metadata for a specific repository | `workspace`, `repository` | +| `list_branches` | List branches in a repository | `workspace`, `repository`, `filter_by_name?`, `page?`, `pagelen?` | + ### Pull Request Discovery | Tool | Description | Key Parameters | @@ -117,6 +129,24 @@ Restart Claude (or reload MCP servers), then ask Claude to run the `validate_tok | `get_full_pull_request` | Get PR with all fields expanded | `workspace`, `repository`, `pullRequestId` | | `get_pull_request_status` | Get PR state (open/merged/declined) | `workspace`, `repository`, `pullRequestId` | +### Pull Request Write Operations + +| Tool | Description | Key Parameters | +|------|-------------|----------------| +| `create_pull_request` | Create a new pull request | `workspace`, `repository`, `title`, `source_branch`, `destination_branch`, `description?`, `reviewers?`, `close_source_branch?` | +| `update_pull_request` | Update title, description, reviewers, or destination branch | `workspace`, `repository`, `pullRequestId`, `title?`, `description?`, `reviewers?`, `destination_branch?` | +| `merge_pull_request` | Merge an open pull request | `workspace`, `repository`, `pullRequestId`, `merge_strategy?`, `commit_message?`, `close_source_branch?` | +| `decline_pull_request` | Decline (close) an open pull request | `workspace`, `repository`, `pullRequestId` | + +### Review Workflow + +| Tool | Description | Key Parameters | +|------|-------------|----------------| +| `approve_pull_request` | Approve a pull request | `workspace`, `repository`, `pullRequestId` | +| `unapprove_pull_request` | Remove your approval | `workspace`, `repository`, `pullRequestId` | +| `request_changes_pull_request` | Request changes on a pull request | `workspace`, `repository`, `pullRequestId` | +| `remove_request_changes_pull_request` | Remove a request-changes vote | `workspace`, `repository`, `pullRequestId` | + ### Code Changes | Tool | Description | Key Parameters | @@ -126,12 +156,20 @@ Restart Claude (or reload MCP servers), then ask Claude to run the `validate_tok | `get_pull_request_changes` | List modified files | `workspace`, `repository`, `pullRequestId` | | `get_pull_request_commits` | List commits in PR | `workspace`, `repository`, `pullRequestId` | -### Collaboration +### Comments | Tool | Description | Key Parameters | |------|-------------|----------------| | `get_pull_request_comments` | Get all comments | `workspace`, `repository`, `pullRequestId` | | `get_pull_request_comment` | Get a specific comment | `workspace`, `repository`, `pullRequestId`, `commentId` | +| `add_pull_request_comment` | Add a general or inline comment | `workspace`, `repository`, `pullRequestId`, `content`, `inline_path?`, `inline_line?`, `parent_comment_id?` | +| `update_pull_request_comment` | Edit an existing comment | `workspace`, `repository`, `pullRequestId`, `commentId`, `content` | +| `delete_pull_request_comment` | Delete a comment | `workspace`, `repository`, `pullRequestId`, `commentId` | + +### Activities & Participants + +| Tool | Description | Key Parameters | +|------|-------------|----------------| | `get_pull_request_activities` | Get activity feed | `workspace`, `repository`, `pullRequestId` | | `get_pull_request_participants` | Get all participants | `workspace`, `repository`, `pullRequestId` | | `get_pull_request_reviewers` | Get assigned reviewers | `workspace`, `repository`, `pullRequestId` | @@ -142,8 +180,11 @@ Restart Claude (or reload MCP servers), then ask Claude to run the `validate_tok |------|-------------|----------------| | `get_pull_request_tasks` | Get PR tasks | `workspace`, `repository`, `pullRequestId` | | `get_pull_request_task_count` | Get task count | `workspace`, `repository`, `pullRequestId` | +| `create_pull_request_task` | Create a review task | `workspace`, `repository`, `pullRequestId`, `content`, `comment_id?` | +| `update_pull_request_task` | Update or resolve/unresolve a task | `workspace`, `repository`, `pullRequestId`, `taskId`, `content?`, `state?` | +| `delete_pull_request_task` | Delete a task | `workspace`, `repository`, `pullRequestId`, `taskId` | -> **Pagination:** Tools that return lists support `limit` and `start` parameters. +> **Pagination:** Tools that return lists support `page` and `pagelen` parameters. ---