Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Provider-agnostic, AI-review-first MCP server for Bitbucket Cloud.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
BITBUCKET_ACCESS_TOKEN, BITBUCKET_EMAIL, BITBUCKET_DEFAULT_WORKSPACE, LLM_PROVIDER, OPENAI_API_KEY「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"bitbucket": {
"command": "npx",
"args": [
"-y",
"@droplinkperformance/bitbucket-mcp-server"
],
"env": {
"BITBUCKET_ACCESS_TOKEN": "your-value",
"BITBUCKET_EMAIL": "your-value",
"BITBUCKET_DEFAULT_WORKSPACE": "your-value",
"LLM_PROVIDER": "your-value",
"OPENAI_API_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add bitbucket --env BITBUCKET_ACCESS_TOKEN=your-value --env BITBUCKET_EMAIL=your-value --env BITBUCKET_DEFAULT_WORKSPACE=your-value --env LLM_PROVIDER=your-value --env OPENAI_API_KEY=your-value -- npx -y @droplinkperformance/bitbucket-mcp-server動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"bitbucket": {
"command": "npx",
"args": [
"-y",
"@droplinkperformance/bitbucket-mcp-server"
],
"env": {
"BITBUCKET_ACCESS_TOKEN": "your-value",
"BITBUCKET_EMAIL": "your-value",
"BITBUCKET_DEFAULT_WORKSPACE": "your-value",
"LLM_PROVIDER": "your-value",
"OPENAI_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"bitbucket": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@droplinkperformance/bitbucket-mcp-server"
],
"env": {
"BITBUCKET_ACCESS_TOKEN": "your-value",
"BITBUCKET_EMAIL": "your-value",
"BITBUCKET_DEFAULT_WORKSPACE": "your-value",
"LLM_PROVIDER": "your-value",
"OPENAI_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
BITBUCKET_DEFAULT_WORKSPACE envLLM_PROVIDER envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント droplinkperformance で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:BITBUCKET_ACCESS_TOKEN, BITBUCKET_EMAIL, OPENAI_API_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.2.0)がレジストリに届いたのは2 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, arr-mcp
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
One server, 40 tools, the whole media stack: *arrs, Jellyfin, Plex, Seerr, Cleanuparr, downloaders
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Provider-agnostic, AI-review-first Model Context Protocol (MCP) server for Bitbucket Cloud.
The primary value of this server is AI-powered code review and pull request analysis, not CRUD against the Bitbucket API. Every major dependency (SCM access, cache, token storage, rate limiting, LLM, events) is hidden behind a provider-agnostic interface so the same business logic can later target GitHub / GitLab / Azure DevOps and OpenAI / Anthropic / Gemini / Bedrock without changes to use-cases, agents, or domain contracts.
Status: Phase 1. See Roadmap.
http, for remote/production).ToolRegistry — no manual registration.workspace + optional repository) on every tool — multi-workspace ready.BitbucketClient: auth injection, auto-pagination, retry/backoff, rate-limit handling, caching, secret masking.analyze_pull_request) backed by a CodeReviewAgent that chunks large PRs and returns a standard ReviewResult.| Tool | Description |
|---|---|
get_current_user | Authenticated user. |
list_pull_requests | List PRs (filter by state/query). |
get_pull_request | Fetch a PR by id. |
create_pull_request | Open a PR. |
update_pull_request | Edit an open PR title and/or description. |
get_pull_request_diff | Raw unified diff. |
get_pull_request_files | Changed files + line stats. |
get_pull_request_comments | PR comments. |
comment_pull_request | Add a (optionally inline) comment. |
analyze_pull_request | AI review returning a standard ReviewResult. |
All tool inputs accept workspace (optional if BITBUCKET_DEFAULT_WORKSPACE is set) and, where applicable, repository.
src/
index.ts entry: chooses transport container.ts composition root (the only place wiring concretes) mcp/ McpServer + ToolRegistry (auto-discovery) + transports tools/ thin MCP adapters (*.tool.ts) -> call exactly one use-case application/ use-cases (CQRS-ish: command|query) with Input/Output DTOs agents/ autonomous workflows implementing Agent domain/ provider-agnostic types, repository contracts, ReviewResult repositories/bitbucket/ Bitbucket implementations of the contracts clients/bitbucket/ resilient REST client auth/ AuthProvider (+ token/oauth) and TokenStore implementations cache/ CacheProvider (+ memory/redis) ratelimit/ RateLimitStrategy (+ bitbucket) llm/ LlmProvider (+ openai/anthropic/gemini/bedrock) events/ EventBus (+ in-memory) services/ reusable services (masking, chunking) telemetry/ OpenTelemetry bootstrap + metrics infrastructure/ config, logger, http, attachments shared/ errors, result envelope, http-status, BitbucketContext
Flow: tool -> use-case -> (agent | repository contract) -> repositories/bitbucket -> BitbucketClient. Agents may also use the LlmProvider and EventBus. Tools never contain business logic.
Published as @droplinkperformance/bitbucket-mcp-server.
npx -y @droplinkperformance/bitbucket-mcp-server
From source:
npm install
npm run build
Merges to main run .github/workflows/release.yml: tests, build, then semantic-release. Version and npm publish happen only when the merge includes Conventional Commits:
| Commit | Bump |
|---|---|
fix: | patch |
feat: | minor |
BREAKING CHANGE / feat!: | major |
Other messages skip publish. The GitHub secret NPM_TOKEN (npm Automation token for the droplinkperformance org) is required.
After a successful npm release, the same workflow waits until that version is visible on the npm registry, then publishes metadata to the MCP Registry as io.github.droplinkperformance/bitbucket-mcp-server (OIDC, no extra secret). To republish MCP metadata for the current package.json version without cutting a new release, run the workflow manually with Publish mcp only. github.com/mcp syncs from that registry; if the server does not appear, email partnerships@github.com.
To stay on 0.x for the first release, tag the current commit (git tag v0.1.0 && git push origin v0.1.0) before the first conventional merge; otherwise semantic-release starts at 1.0.0.
Copy .env.example to .env and fill in values. Load it with Node's built-in flag:
node --env-file=.env dist/index.js
Key variables:
| Variable | Default | Notes | |||
|---|---|---|---|---|---|
MCP_TRANSPORT | stdio | stdio or http. | |||
HTTP_HOST / HTTP_PORT | 0.0.0.0 / 3000 | HTTP transport bind. | |||
BITBUCKET_DEFAULT_WORKSPACE | – | Fallback when a tool omits workspace. | |||
BITBUCKET_ACCESS_TOKEN | – | API token (ATATT…), app password, or OAuth access token | |||
BITBUCKET_EMAIL | – | Required with API tokens (ATATT…) — your Atlassian account email | |||
BITBUCKET_CLIENT_ID / BITBUCKET_CLIENT_SECRET | – | Required for OAuth (when no access token). | |||
BITBUCKET_REFRESH_TOKEN | – | Optional seed for headless OAuth. | |||
TOKEN_STORE | file | file \ | memory \ | redis. | |
CACHE_PROVIDER | memory | memory \ | redis. | ||
LLM_PROVIDER | openai | openai \ | anthropic \ | gemini \ | bedrock. |
MAX_FILES_PER_CHUNK / MAX_DIFF_LINES_PER_CHUNK | 50 / 5000 | Large-PR chunking thresholds. | |||
OTEL_ENABLED | false | No-op metrics unless enabled. |
Bearer (OAuth access token): set BITBUCKET_ACCESS_TOKEN only (non-ATATT tokens).
API token (recommended, ATATT…): set BITBUCKET_ACCESS_TOKEN and BITBUCKET_EMAIL (your Atlassian account email from Bitbucket → Personal settings → Email aliases). API tokens use HTTP Basic auth, not Bearer.
App password (legacy, until June 2026): set BITBUCKET_ACCESS_TOKEN and BITBUCKET_USERNAME (your Bitbucket username).
OAuth 2.0 (Authorization Code): set BITBUCKET_CLIENT_ID / BITBUCKET_CLIENT_SECRET. Tokens are persisted by the configured TOKEN_STORE; Bitbucket rotates refresh tokens, and the server persists the new one on every refresh. For headless boot, provide a previously obtained BITBUCKET_REFRESH_TOKEN.
Bitbucket OAuth endpoints used: authorize https://bitbucket.org/site/oauth2/authorize, token https://bitbucket.org/site/oauth2/access_token. The authorize URL can be built from OAuthProvider.buildAuthorizeUrl() and the returned ?code= exchanged via OAuthProvider.loginWithCode(code).
Set LLM_PROVIDER and the matching key:
LLM_PROVIDER=openai # OPENAI_API_KEY
LLM_PROVIDER=anthropic # ANTHROPIC_API_KEY LLM_PROVIDER=gemini # GEMINI_API_KEY LLM_PROVIDER=bedrock # AWS creds + BEDROCK_MODEL_ID (needs @aws-sdk/client-bedrock-runtime)
ioredis (Redis providers) and @aws-sdk/client-bedrock-runtime (Bedrock) are optional and loaded lazily — only needed when selected.
MCP_TRANSPORT=stdio node --env-file=.env dist/index.js
MCP_TRANSPORT=http HTTP_PORT=3000 node --env-file=.env dist/index.js
npx @modelcontextprotocol/inspector node dist/index.js
~/.cursor/mcp.json (or project .cursor/mcp.json):
{
"mcpServers": { "bitbucket": { "command": "npx", "args": ["-y", "@droplinkperformance/bitbucket-mcp-server"], "env": { "MCP_TRANSPORT": "stdio", "BITBUCKET_ACCESS_TOKEN": "ATATT-your-api-token", "BITBUCKET_EMAIL": "you@company.com", "BITBUCKET_DEFAULT_WORKSPACE": "your-workspace", "LLM_PROVIDER": "openai", "OPENAI_API_KEY": "sk-..." } } } }
claude_desktop_config.json:
{
"mcpServers": { "bitbucket": { "command": "npx", "args": ["-y", "@droplinkperformance/bitbucket-mcp-server"], "env": { "BITBUCKET_ACCESS_TOKEN": "your-token", "BITBUCKET_DEFAULT_WORKSPACE": "your-workspace", "LLM_PROVIDER": "anthropic", "ANTHROPIC_API_KEY": "sk-ant-..." } } } }
npm run dev # tsx watch (stdio)
npm run typecheck npm run lint npm test npm run test:coverage
BitbucketClient, tool auto-discovery, PR tools, analyze_pull_request.pipeline-investigator agent, auto_review_pull_request (dry-run / publish inline comments).analyze_dotnet_pull_request (dotnet-review agent), advanced agents, automation workflows.MIT