Skip to main content
Glama

Atlassian Bitbucket MCP Server

by aashari

Atlassian Bitbucket MCP 服务器

适用于 Atlassian Bitbucket Cloud 的 Node.js/TypeScript 模型上下文协议 (MCP) 服务器。它使 AI 系统(例如 Claude 或 Cursor AI 等 LLM)能够安全地实时与您的代码库、拉取请求、工作区和代码进行交互。

为什么要使用此服务器?

  • 最少输入,最大输出:简单的标识符无需额外的标志即可提供全面的详细信息。
  • 丰富的代码可视化:通过文件统计、差异视图和智能上下文深入了解代码变化。
  • 安全的本地身份验证:使用您的凭据在本地运行,永远不会在远程服务器上存储令牌。
  • 直观的 Markdown 响应:所有输出均采用结构良好、一致的 Markdown 格式。
  • 完整的 Bitbucket 集成:访问工作区、存储库、拉取请求、评论、代码搜索等。

什么是 MCP?

模型上下文协议 (MCP) 是一种开放标准,用于将 AI 系统安全地连接到外部工具和数据源。此服务器为 Bitbucket Cloud 实现了 MCP,使 AI 助手能够以编程方式与您的 Bitbucket 数据进行交互。

先决条件

  • Node.js (>=18.x):下载
  • Bitbucket 云帐户

设置

步骤 1:验证

选择以下身份验证方法之一:

选项 A:Bitbucket 应用程序密码(推荐)

Bitbucket App Passwords生成一个。最低权限:

  • 工作区:阅读
  • 存储库:阅读
  • 拉取请求:阅读

您还可以设置BITBUCKET_DEFAULT_WORKSPACE来指定未明确提供时的默认工作区。

选项 B:Atlassian API 令牌

Atlassian API Tokens生成一个。

**注意:**强烈建议使用 Bitbucket App Passwords,因为它们提供更细粒度的、特定于 Bitbucket 的权限。

第 2 步:配置凭证

选项 A:MCP 配置文件(推荐)

编辑或创建~/.mcp/configs.json

使用 Bitbucket 应用程序密���:

{ "bitbucket": { "environments": { "ATLASSIAN_BITBUCKET_USERNAME": "<your_username>", "ATLASSIAN_BITBUCKET_APP_PASSWORD": "<your_app_password>" } } }

使用 Atlassian API 令牌:

{ "bitbucket": { "environments": { "ATLASSIAN_SITE_NAME": "bitbucket", "ATLASSIAN_USER_EMAIL": "<your_email>", "ATLASSIAN_API_TOKEN": "<your_api_token>" } } }
选项 B:环境变量
export ATLASSIAN_BITBUCKET_USERNAME="<your_username>" export ATLASSIAN_BITBUCKET_APP_PASSWORD="<your_app_password>"

步骤3:安装并运行

npx快速入门
npx -y @aashari/mcp-server-atlassian-bitbucket ls-workspaces
全局安装
npm install -g @aashari/mcp-server-atlassian-bitbucket mcp-atlassian-bitbucket ls-workspaces

步骤4:连接到AI助手

配置与 MCP 兼容的客户端(例如 Claude、Cursor AI):

{ "mcpServers": { "bitbucket": { "command": "npx", "args": ["-y", "@aashari/mcp-server-atlassian-bitbucket"] } } }

MCP 工具

MCP 工具使用snake_case名称、 camelCase参数,并返回 Markdown 格式的响应。

  • bb_ls_workspaces :列出可用的工作区( query :str opt)。用途:查看可访问的工作区。
  • bb_get_workspace :获取工作区详细信息( workspaceSlug :str req)。用途:查看工作区信息。
  • bb_ls_repos :列出存储库( workspaceSlug :str opt, projectKey :str opt, query :str opt, role :str opt)。用途:查找存储库。
  • bb_get_repo :获取存储库详细信息( workspaceSlug :str req, repoSlug :str req)。用途:访问存储库信息。
  • bb_search :搜索 Bitbucket 内容( workspaceSlug :str req、 query :str req、 scope :str opt、 language :str opt、 extension :str opt)。用途:查找代码或 PR。
  • bb_ls_prs :列出拉取请求( workspaceSlug :str req、 repoSlug :str req、 state :str opt)。用途:查看打开或合并的 PR。
  • bb_get_pr :获取 PR 详细信息( workspaceSlug :str req、 repoSlug :str req、 prId :str req)。用途:查看带有差异的 PR 详细信息。
  • bb_ls_pr_comments :列出 PR 评论( workspaceSlug :str req、 repoSlug :str req、 prId :str req)。用途:查看 PR 讨论。
  • bb_add_pr_comment :向 PR 添加评论( workspaceSlug :str req、 repoSlug :str req、 prId :str req、 content :str req、 inline :obj opt)。用途:向 PR 添加反馈。
  • bb_add_pr :创建一个 PR( workspaceSlug :str req、 repoSlug :str req、 title :str req、 sourceBranch :str req、 targetBranch :str opt)。用途:创建新的 PR。
  • bb_add_branch :创建一个分支( workspaceSlug :str req, repoSlug :str req, newBranchName :str req, sourceBranchOrCommit :str opt)。用途:创建一个功能分支。
  • bb_clone_repo :克隆存储库( workspaceSlug :str req, repoSlug :str req, targetPath :str req)。用途:本地克隆代码。
  • bb_get_commit_history :获取提交历史记录( workspaceSlug :str req, repoSlug :str req, revision :str opt, path :str opt)。用途:查看代码历史记录。
  • bb_get_file :获取文件内容( workspaceSlug :str req、 repoSlug :str req、 filePath :str req、 revision :str opt)。用途:查看特定文件。
  • bb_diff_branches :显示分支之间的差异( workspaceSlug :str req、 repoSlug :str req、 sourceBranch :str req、 targetBranch :str req)。用途:比较分支。
  • bb_diff_commits :显示提交之间的差异( workspaceSlug :str req、 repoSlug :str req、 sourceCommit :str req、 targetCommit :str req)。用途:比较提交。
  • bb_list_branches :列出分支( workspaceSlug :str req、 repoSlug :str req、 query :str opt、 sort :str opt)。用途:查看所有分支。

bb_ls_workspaces

列出所有工作区:

{}

搜索工作区:

{ "query": "devteam" }

bb_get_workspace

获取工作区详细信息:

{ "workspaceSlug": "acme-corp" }

bb_ls_repos

列出工作区中的存储库:

{ "workspaceSlug": "acme-corp", "projectKey": "PROJ" }

使用默认工作区列出存储库:

{ "projectKey": "PROJ" }

bb_get_repo

获取存储库详细信息:

{ "workspaceSlug": "acme-corp", "repoSlug": "backend-api" }

搜索代码:

{ "workspaceSlug": "acme-corp", "query": "Logger", "scope": "code", "language": "typescript" }

bb_ls_prs

列出开放的 PR:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "state": "OPEN" }

bb_get_pr

获取 PR 详细信息:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "prId": "42" }

bb_ls_pr_comments

列出 PR 评论:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "prId": "42" }

bb_add_pr_comment

添加一般评论:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "prId": "42", "content": "Looks good." }

添加内联评论:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "prId": "42", "content": "Consider refactoring.", "inline": { "path": "src/utils.js", "line": 42 } }

bb_add_pr

创建拉取请求:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "title": "Add login screen", "sourceBranch": "feature/login" }

bb_add_branch

创建新分支:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "newBranchName": "feature/new-feature", "sourceBranchOrCommit": "main" }

bb_clone_repo

克隆存储库:

{ "workspaceSlug": "acme-corp", "repoSlug": "backend-api", "targetPath": "/Users/me/projects" }

bb_get_commit_history

查看提交历史记录:

{ "workspaceSlug": "acme-corp", "repoSlug": "backend-api" }

过滤提交历史记录:

{ "workspaceSlug": "acme-corp", "repoSlug": "backend-api", "revision": "develop", "path": "src/main/java/com/acme/service/UserService.java" }

bb_get_file

获取文件内容:

{ "workspaceSlug": "acme-corp", "repoSlug": "backend-api", "filePath": "src/main/java/com/acme/service/Application.java", "revision": "main" }

bb_diff_branches

比较分支:

{ "workspaceSlug": "acme-corp", "repoSlug": "web-app", "sourceBranch": "develop", "targetBranch": "main" }

bb_diff_commits

比较提交:

{ "workspaceSlug": "acme-corp", "repoSlug": "web-app", "sourceCommit": "a1b2c3d", "targetCommit": "e4f5g6h" }

bb_list_branches

列出所有分支:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app" }

已过滤的分支:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "query": "feature/", "sort": "name" }

CLI 命令

CLI 命令使用kebab-case )。运行--help获取详细信息(例如, mcp-atlassian-bitbucket ls-workspaces --help )。

  • ls-workspaces :列出工作区( --query )。例如: mcp-atlassian-bitbucket ls-workspaces
  • get-workspace :获取工作区详情 ( --workspace-slug )。例如: mcp-atlassian-bitbucket get-workspace --workspace-slug acme-corp
  • ls-repos :列出仓库( --workspace-slug--project-key--query )。例如: mcp-atlassian-bitbucket ls-repos --workspace-slug acme-corp
  • get-repo :获取仓库详情( --workspace-slug--repo-slug )。例如: mcp-atlassian-bitbucket get-repo --workspace-slug acme-corp --repo-slug backend-api
  • search :搜索代码( --workspace-slug--query--scope--language )。例如: mcp-atlassian-bitbucket search --workspace-slug acme-corp --query "auth"
  • ls-prs :列出 PR( --workspace-slug--repo-slug--state )。例如: mcp-atlassian-bitbucket ls-prs --workspace-slug acme-corp --repo-slug backend-api
  • get-pr :获取 PR 详情( --workspace-slug--repo-slug--pr-id )。例如: mcp-atlassian-bitbucket get-pr --workspace-slug acme-corp --repo-slug backend-api --pr-id 42
  • ls-pr-comments :列出 PR 注释( --workspace-slug--repo-slug--pr-id )。例如: mcp-atlassian-bitbucket ls-pr-comments --workspace-slug acme-corp --repo-slug backend-api --pr-id 42
  • add-pr-comment :添加 PR 评论( --workspace-slug--repo-slug--pr-id--content )。例如: mcp-atlassian-bitbucket add-pr-comment --workspace-slug acme-corp --repo-slug backend-api --pr-id 42 --content "Looks good"
  • add-pr :创建 PR( --workspace-slug--repo-slug--title--source-branch )。例如: mcp-atlassian-bitbucket add-pr --workspace-slug acme-corp --repo-slug backend-api --title "New feature" --source-branch feature/login
  • get-file :获取文件内容( --workspace-slug--repo-slug--file-path )。例如: mcp-atlassian-bitbucket get-file --workspace-slug acme-corp --repo-slug backend-api --file-path src/main.js
  • add-branch :创建分支( --workspace-slug--repo-slug--new-branch-name )。例如: mcp-atlassian-bitbucket add-branch --workspace-slug acme-corp --repo-slug backend-api --new-branch-name feature/new

列出并查看工作区/存储库

# List all workspaces mcp-atlassian-bitbucket ls-workspaces # Get details of a specific workspace mcp-atlassian-bitbucket get-workspace --workspace-slug acme-corp # List repositories in a workspace mcp-atlassian-bitbucket ls-repos --workspace-slug acme-corp --project-key PROJ # Get details of a specific repository mcp-atlassian-bitbucket get-repo --workspace-slug acme-corp --repo-slug backend-api

使用拉取请求

# List open pull requests in a repository mcp-atlassian-bitbucket ls-prs --workspace-slug acme-corp --repo-slug frontend-app --state OPEN # Get details of a specific pull request with code changes mcp-atlassian-bitbucket get-pr --workspace-slug acme-corp --repo-slug frontend-app --pr-id 42 # List comments on a pull request mcp-atlassian-bitbucket ls-pr-comments --workspace-slug acme-corp --repo-slug frontend-app --pr-id 42 # Add a comment to a pull request mcp-atlassian-bitbucket add-pr-comment --workspace-slug acme-corp --repo-slug frontend-app --pr-id 42 --content "Looks good to merge." # Create a new pull request mcp-atlassian-bitbucket add-pr --workspace-slug acme-corp --repo-slug frontend-app --title "Add login screen" --source-branch feature/login

代码和提交

# Search for code mcp-atlassian-bitbucket search --workspace-slug acme-corp --query "Logger" --scope code --language typescript # View commit history mcp-atlassian-bitbucket get-commit-history --workspace-slug acme-corp --repo-slug backend-api --revision develop # Get file content mcp-atlassian-bitbucket get-file --workspace-slug acme-corp --repo-slug backend-api --file-path "src/Application.java" --revision main # Compare branches mcp-atlassian-bitbucket diff-branches --workspace-slug acme-corp --repo-slug web-app --source-branch develop --target-branch main # Compare commits mcp-atlassian-bitbucket diff-commits --workspace-slug acme-corp --repo-slug web-app --source-commit a1b2c3d --target-commit e4f5g6h

分支机构管理

# List branches mcp-atlassian-bitbucket list-branches --workspace-slug acme-corp --repo-slug frontend-app --query "feature/" --sort name # Create a new branch mcp-atlassian-bitbucket add-branch --workspace-slug acme-corp --repo-slug frontend-app --new-branch-name feature/new-feature --source-branch-or-commit main # Clone a repository mcp-atlassian-bitbucket clone --workspace-slug acme-corp --repo-slug backend-api --target-path ./cloned-projects

响应格式

所有回复均为 Markdown 格式,包括:

  • 标题:执行的操作或查看的实体。
  • 上下文:工作区、存储库、拉取请求或分支信息。
  • 内容:文件内容、PR 详细信息或搜索结果等主要数据。
  • 元数据:时间戳、作者和统计数据。
  • 差异:代码更改,语法突出显示分支/提交之间的差异。

存储库详细信息

# Repository: backend-api **Workspace:** acme-corp **Full Name:** acme-corp/backend-api **Language:** Java **Created:** 2024-01-15 by John Smith **Updated:** 2025-05-10 (2 days ago) ## Overview Spring Boot backend API for the ACME product suite. ## Statistics - **Default Branch:** main - **Size:** 24.5 MB - **Commits:** 358 - **Open PRs:** 4 - **Forks:** 3 ## Recent Activity - PR #42: "Add OAuth2 support" by Jane Doe (Open) - PR #41: "Fix pagination bug" by Alex Kim (Merged) - PR #40: "Update dependencies" by John Smith (Merged) *Repository URL: https://bitbucket.org/acme-corp/backend-api*

拉取请求审查

# Pull Request #42: Add OAuth2 support **Repository:** acme-corp/backend-api **Author:** Jane Doe **State:** OPEN **Created:** 2025-05-15 (4 days ago) **Updated:** 2025-05-18 (yesterday) ## Description Implements OAuth2 authentication flow with support for: - Authorization code grant - Refresh tokens - Token caching ## Changes - **Files changed:** 7 - **Additions:** 245 lines - **Deletions:** 32 lines ## Diff for src/auth/OAuthService.java @@ -10,6 +10,25 @@ public class OAuthService { private final TokenRepository tokenRepository; private final HttpClient httpClient; + @Autowired + public OAuthService( + TokenRepository tokenRepository, + HttpClient httpClient) { + this.tokenRepository = tokenRepository; + this.httpClient = httpClient; + } + + public TokenResponse refreshToken(String refreshToken) { + // Validate refresh token + if (StringUtils.isEmpty(refreshToken)) { + throw new InvalidTokenException("Refresh token cannot be empty"); + } + + // Call OAuth server for new access token + return httpClient.post("/oauth/token") + .body(Map.of("grant_type", "refresh_token", "refresh_token", refreshToken)) + .execute() + .as(TokenResponse.class); + } ## Comments (3) 1. **John Smith** (2 days ago): > Please add unit tests for the refresh token flow 2. **Jane Doe** (yesterday): > Added tests in the latest commit 3. **Approval by:** Alex Kim (yesterday) *Pull Request URL: https://bitbucket.org/acme-corp/backend-api/pull-requests/42*

发展

# Clone repository git clone https://github.com/aashari/mcp-server-atlassian-bitbucket.git cd mcp-server-atlassian-bitbucket # Install dependencies npm install # Run in development mode npm run dev:server # Run tests npm test

贡献

欢迎投稿!请:

  1. 分叉存储库。
  2. 创建功能分支( git checkout -b feature/xyz )。
  3. 提交更改( git commit -m "Add xyz feature" )。
  4. 推送到分支( git push origin feature/xyz )。
  5. 打开拉取请求。

有关详细信息,请参阅CONTRIBUTING.md

执照

ISC 许可证

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    A custom server implementation that allows AI assistants to interact with GitLab repositories, providing capabilities for searching, fetching files, creating/updating content, and managing issues and merge requests.
    Last updated -
    JavaScript
  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server that enables AI assistants like Claude to interact with GitHub repositories, issues, and pull requests.
    Last updated -
    129
    Python
  • -
    security
    F
    license
    -
    quality
    A modular command processor server that enables interaction with GitHub's REST API to fetch user details, repository information, and authenticated user data through natural language commands in Claude.
    Last updated -
    Python
  • -
    security
    F
    license
    -
    quality
    A Multi-Claude Program for interacting with GitHub APIs through Claude Desktop, allowing users to search repositories, manage issues, pull requests, repository settings, workflows, and collaborators.
    Last updated -
    1
    Python
    • Linux
    • Apple

View all related MCP servers

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/aashari/mcp-server-atlassian-bitbucket'

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