Skip to main content
Glama

mcp-bitbucket

Bitbucket Server para agentes de IA y los humanos que están a su lado. Lee pull requests y sus diffs sin clonar, redacta una revisión y publícala con un veredicto, publica tareas bloqueantes, explora código y commits, abre, fusiona o rechaza pull requests — desde un cliente MCP, desde una shell, o desde tu propio TypeScript.

Solo Bitbucket Server / Data Center. Bitbucket Cloud no es compatible.

Paquetes

Paquete

Qué es

Bin

core

Cliente de Bitbucket, operaciones, formateadores — todo lo demás es un adaptador fino sobre él

mcp

Servidor MCP, 29 herramientas sobre stdio o Streamable HTTP

mcp-bitbucket

cli

Cliente de shell para las mismas operaciones, infiere el repositorio desde tu remote de git

bb

skill

Habilidad de Claude Code que enseña a un agente el CLI bb

Uso de herramientas de Claude Code / Claude Desktop → mcp. Terminal, scripts, CI, agentes que ejecutan comandos → cli. Si construyes algo más → core. Leen las mismas credenciales y se instalan lado a lado.

Related MCP server: Atlassian Bitbucket MCP Server

Requisitos previos

  • Node.js 18+, pnpm 10+ (corepack enable)

  • Un token de acceso personal de Bitbucket Server — perfil → Manage Account → HTTP Access Tokens, con lectura de repositorio y escritura de pull requests

  • Solo para bb login (llavero del sistema): sudo apt install -y libsecret-1-0 gnome-keyring. Todos los comandos también funcionan con BITBUCKET_TOKEN.

Instalación

pnpm install
pnpm build        # core first, then mcp and cli

Puntos de entrada: packages/mcp/dist/index.js, packages/cli/dist/index.js.

Inicio rápido

Servidor MCP

claude mcp add mcp-bitbucket \
  -e BITBUCKET_URL=https://bitbucket.example.com \
  -e BITBUCKET_TOKEN=your-personal-access-token \
  -- node /absolute/path/to/mcp-bitbucket/packages/mcp/dist/index.js

O en .mcp.json (${VAR} es expandido por Claude Code, así que no se compromete ningún secreto):

{
  "mcpServers": {
    "mcp-bitbucket": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/mcp-bitbucket/packages/mcp/dist/index.js"],
      "env": {
        "BITBUCKET_URL": "${BITBUCKET_URL}",
        "BITBUCKET_TOKEN": "${BITBUCKET_TOKEN}"
      }
    }
  }
}

Transporte HTTP en lugar de stdio: node packages/mcp/dist/index.js --http (puerto 3000) o MCP_HTTP_PORT=8080 node …. Rutas: POST /mcp, GET /mcp (SSE), DELETE /mcp.

CLI bb

pnpm --filter @mcp-bitbucket/cli link --global
bb login          # or export BITBUCKET_URL / BITBUCKET_TOKEN
bb whoami         # proves authentication — `bb ping` only proves reachability
bb pr get 42      # repository comes from the git origin remote

Superficie de comandos: packages/cli/README.md o bb --help.

Habilidad de Claude Code

bash packages/skill/scripts/install.sh            # ~/.claude/skills/bitbucket-review
bash packages/skill/scripts/install.sh ./.claude  # project scope

Necesita bb en PATH y una credencial resoluble.

Configuración

Variables de entorno, .env en la raíz del repositorio se carga automáticamente (cp .env.example .env). El servidor MCP las valida al inicio; el CLI también acepta --url / --token, que tienen prioridad sobre todo.

Variable

Predeterminado

Efecto

BITBUCKET_URL

URL base de la instancia. Requerida para el servidor MCP.

BITBUCKET_TOKEN

Token de acceso personal. Requerido para el servidor MCP.

MCP_PERMISSION_MODE

full

Qué verbos expone el servidor MCP — ver Permisos.

BITBUCKET_ALLOWED_PROJECTS / BITBUCKET_ALLOWED_REPOS

sin definir (todos)

Lista blanca de repositorios — ver Permisos.

MCP_HTTP_PORT

sin definir

Habilita el transporte HTTP en este puerto en lugar de stdio.

LOG_LEVEL

info

fataltrace. Los registros van a stderr.

BITBUCKET_API_BASE

api/1.0

Módulo y versión de REST.

BITBUCKET_USER_SLUG

resuelto

Slug de usuario que usan las herramientas de revisión, cuando un proxy elimina X-AUSERNAME.

BITBUCKET_REPO

sin definir

Solo CLI: valor predeterminado para --repo.

Límites

Cada tope numérico vive en packages/core/src/operations/caps.ts y se puede sobrescribir con variables de entorno: BITBUCKET_DIFF_MAX_CHARS (60000), BITBUCKET_DIFF_HEAD_RATIO (0.6), BITBUCKET_DIFF_CONTEXT_LINES (3), BITBUCKET_DIFF_FETCH_MAX_CHARS (12000000), BITBUCKET_DIFF_CACHE_ENTRIES (4), BITBUCKET_CHANGED_FILES_MAX_ITEMS (1000), BITBUCKET_CHANGED_FILES_STATS_MAX_FILES (500). La truncación nunca es silenciosa: la nota nombra el parámetro y la variable que elevan el tope, y lista cada encabezado de hunk omitido.

Permisos

Dos guardas independientes.

MCP_PERMISSION_MODE — solo servidor MCP. Cada herramienta se clasifica como read, write o destructive en packages/mcp/src/permissions.ts; una herramienta prohibida se oculta de ListTools y se rechaza cuando se llama por nombre.

Modo

Herramientas

sin definir / full

29

modify

26 — sin merge_pull_request, decline_pull_request, delete_pr_comment

readonly

17

cualquier otro

0 — un error tipográfico falla de forma segura, con una advertencia en stderr

El CLI no lo lee. Una implementación readonly no detiene bb review merge.

Lista blanca de repositorios — ambos puntos de entrada. BITBUCKET_ALLOWED_PROJECTS / BITBUCKET_ALLOWED_REPOS aceptan patrones separados por comas, punto y coma o espacios: PROJ, PROJ/*, PROJ/repo-a. La comprobación se ejecuta dentro del cliente compartido antes de que se abra cualquier socket, por lo que todas las herramientas y todos los comandos bb la heredan. Sin definir significa todos los repositorios. No distingue mayúsculas; los repositorios personales son el proyecto ~username. Un patrón malformado se descarta, nunca se amplía — un valor compuesto solo de patrones malformados no permite nada.

Herramientas

29 herramientas MCP: 17 de lectura, 9 de escritura, 3 destructivas. Parámetros completos en docs/tools.md.

Grupo

Herramientas

Diagnóstico

ping_bitbucket

Repositorio

list_projects · list_repositories · list_branches · get_file_content

Pull request

list_pull_requests · get_pull_request · get_pull_request_comments · create_pull_request · update_pull_request

Comentario

add_pr_comment · create_pr_task · update_pr_comment

Contexto

get_current_repo · find_pull_request

Diff

list_pr_changed_files · get_pull_request_diff

Commit

list_commits · get_commit_detail

Explorar

browse_directory

Búsqueda

search_code

Revisión

add_pr_draft_comment · get_pr_draft_review · submit_pr_review · discard_pr_draft_review · set_review_status · merge_pull_request · decline_pull_request · delete_pr_comment

Valores predeterminados notables

  • La discusión resuelta está oculta. get_pull_request_comments / bb comment ls necesitan includeResolved (--include-resolved) para mostrar hilos y tareas resueltos; la respuesta indica cuántos ocultó. Un filtro state explícito anula el valor predeterminado.

  • Las revisiones se redactan, no se publican. add_pr_draft_comment / bb review draft almacenan un comentario invisible; submit_pr_review publica todos los comentarios pendientes con un veredicto como una sola notificación. pending: false (--no-pending) publica inmediatamente; discard_pr_draft_review descarta el borrador.

  • bb ping ≠ autenticación. /application-properties responde 200 de forma anónima en muchas instancias. bb whoami es la comprobación de autenticación.

Desarrollo

pnpm build | typecheck | test | lint | format | clean
pnpm dev:mcp                 # MCP server from source (tsx)
pnpm cli pr ls               # bb from source
pnpm --filter @mcp-bitbucket/core test

La regla de capas que evita que los adaptadores se desvíen:

  • core no sabe nada de MCP ni del CLI — sin SDK de MCP, sin yargs, sin stdout. Las operaciones toman un cliente más parámetros y devuelven datos estructurados o lanzan una excepción.

  • Los adaptadores son dueños de la validación de entrada y la forma de salida — zod más la forma de resultado de MCP en mcp, yargs más texto/--json en cli. Ninguno se filtra a core.

  • Los mensajes de error se escriben una vez, en core, con marcadores de posición estilo {projects} / {login} que cada adaptador renderiza en su propio vocabulario — el mismo fallo dice "usa list_projects" a un modelo y "usa bb project ls" a ti.

  • Una nueva capacidad es una operación más un formateador en core, luego un adaptador fino en cada uno de mcp y cli.

Docker

La imagen lleva solo el servidor MCP.

docker build -t mcp-bitbucket .
docker run -i --rm -e BITBUCKET_URL=… -e BITBUCKET_TOKEN=… mcp-bitbucket
docker run --rm -p 3000:3000 -e BITBUCKET_URL=… -e BITBUCKET_TOKEN=… -e MCP_HTTP_PORT=3000 mcp-bitbucket

Solución de problemas

docs/troubleshooting.md. Los tres más comunes: una herramienta que falta en la lista del cliente significa que MCP_PERMISSION_MODE la ocultó (un valor no reconocido oculta las 29); Refused: … outside the configured repository allowlist significa que la lista blanca no cubre ese repositorio; menos comentarios que en la interfaz web significa que los hilos resueltos están ocultos.

Limitaciones

  • Solo Bitbucket Server; sin Bitbucket Cloud, sin OAuth/SSO ni contraseñas de aplicación.

  • bb login almacena credenciales solo en el llavero del sistema — sin almacenamiento en texto plano, sin --password.

  • Sin webhooks ni modo dirigido por eventos; el servidor responde a llamadas de herramientas.

  • Los diffs son texto de diff unificado renderizado por el servidor; los comentarios en línea anclados al diff no se exponen.

  • search_code necesita el índice de código de la instancia: rama predeterminada, palabras completas, sin expresiones regulares.

  • MCP_PERMISSION_MODE controla solo el servidor MCP; la lista blanca controla ambos.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Facilitates interaction with Bitbucket Server for pull request management using the MCP protocol, supporting operations such as creating, merging, commenting, and reviewing pull requests.
    15
    66
    Apache 2.0
  • A
    license
    B
    quality
    C
    maintenance
    Enables LLMs to interact with Bitbucket repositories to manage pull requests, branches, and commits through the Model Context Protocol. It supports repository operations such as searching code, accessing file contents, and comparing branches using natural language.
    16
    5,033
    MIT

View all related MCP servers

Related MCP Connectors

  • A MCP server built for developers enabling Git based project management with project and personal…

  • MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

View all MCP Connectors

Latest Blog Posts

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/cuonghuunguyen/bitbucket-mcp'

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