Bitbucket MCP Server
使用说明(Markdown 格式)
-
项目简介
- 这是一个用 TypeScript 编写的 MCP 服务器实现。它暴露了一组用于 Bitbucket Cloud 的资源读取、代码/PR/分支操作等工具,通过 MCP 的 JSON-RPC 协议与客户端通信,支持标准的 ListTools 与 CallTool 请求流程,并使用 stdio 传输(无 HTTP 端口)。
-
主要功能点
- MCP 服务器核心:实现 MCP 的 ListTools 请求与 CallTool 请求的处理,返回工具清单与工具执行结果。
- 工具集成:提供丰富的 Bitbucket 相关工具,如 read_repository、read_branch、read_commit、read_file、search_code、list_pull_requests、read_pull_request、create_pull_request、update_pull_request、reply_to_comment、delete_branch、write_file、commit_files 等。
- Bitbucket 客户端:通过 Bitbucket Cloud API v2.0 进行网络请求,使用 Atlassian 账户邮箱和 API Token 进行 Basic Authentication。
- 会话与错误处理:使用 MCP 错误码与自定义 McpError 进行错误上抛,提供清晰的失败信息。
- 环境化配置:支持通过 .env 文件或环境变量配置 Atlassian 凭证以及默认的工作区和仓库。
- 传输协议:默认通过 STDIO 传输(stdio server transport),不对外开启 HTTP 端口,适合嵌入式或管道式思路的代理/代理链场景。
- 参数灵活性:工具调用支持通过工作区/仓库来自环境变量或通过 prUrl/repoUrl 提取,提升对比/检索时的便利性。
- 安全与合规:对受保护分支的删除进行防护,错误处理尽量给出可追溯信息。
-
安装步骤
- 安装依赖:npm install
- 构建:npm run build
- 运行(stdio MCP):npm start
- 启动后你应该看到输出 Bitbucket MCP server ready (stdio)
-
服务器配置(MCP 客户端连接说明) 说明:MCP 客户端通常通过 Cursor 等工具的 mcp.json 配置来连接服务器。以下为符合仓库实现的配置示例(JSON 形式,便于理解与粘贴到配置文件中,实际使用时请替换为真实值): { "mcpServers": { "bitbucket": { "command": "node", "args": ["dist/index.js"], "env": { "ATLASSIAN_EMAIL": "[email protected]", "ATLASSIAN_API_TOKEN": "your-api-token", "BITBUCKET_WORKSPACE": "your-workspace", "BITBUCKET_REPOSITORY": "your-repository" } } } } 说明:
- server name 对应于 mcpServers 的 key,此处为 bitbucket。
- command 与 args 指定启动服务器所需的命令及参数,在打包后的环境中通常为 node dist/index.js。
- env 中包含启动所需的凭证与默认工作区/仓库信息;若环境变量 BITBUCKET_WORKSPACE/BITBUCKET_REPOSITORY 已经设置,可以省略 env 中的对应字段。
- 该配置用于 MCP 客户端建立连接并向服务器发送 ListTools/CallTool 请求,服务端将基于请求执行对应的 Bitbucket 操作。
-
基本使用方法
- 确保本地或部署环境具备 Node.js 18+、网络访问 Bitbucket Cloud。
- 按安装步骤完成构建与启动,控制台输出应为 Bitbucket MCP server ready (stdio)。
- 使用 MCP 客户端(如 Cursor)通过 JSON-RPC 方式向服务器发送以下请求:
- ListTools 请求:获取当前可用工具列表。
- CallTool 请求:指定工具名称及参数,服务器将调度 BitbucketClient 完成相应操作并返回结果文本。
- 参数解析与错误处理:如果必要的环境变量未设置,服务端会抛出清晰的错误信息,提示缺失的参数与获取参数的方法。