AtlaCP

Una interfaz MCP para productos de Atlassian, incluyendo Jira y Bitbucket.

Documentación

atlacp

Build Coverage

Herramientas de Bitbucket para desarrolladores y agentes de IA.

El proyecto proporciona dos puntos de entrada:

  • bbmd - CLI directo de Bitbucket para humanos, scripts y flujos de trabajo de agentes.
  • bbcp - servidor MCP (Model Context Protocol) para editores y clientes compatibles con MCP.

El CLI bbmd debería ser superior a MCP cuando lo usan agentes de IA.

Instalación rápida

Instala los binarios:

npx --yes @atlacp/install

El instalador coloca bbmd y bbcp en ~/.atlacp/bin y actualiza tu perfil de shell. Reinicia el shell, o carga el perfil actualizado antes de continuar. Sigue la configuración de cuentas para configurar la(s) cuenta(s) de Bitbucket.

Usa bbmd skill para enseñar a tu agente a usar el CLI. Puedes escribirlo en la carpeta de habilidades relevante del agente o agregarlo en algún lugar de AGENTS.md.

### Bitbucket integration

Run `bbmd skill` to learn how to work with bitbucket.

O escribe la habilidad en el ámbito local del proyecto o en el ámbito global:

# Opencode
# Project-local
mkdir -p .opencode/skills/bitbucket && bbmd skill > .opencode/skills/bitbucket/SKILL.md
# Global
mkdir -p ~/.opencode/skills/bitbucket && bbmd skill > ~/.opencode/skills/bitbucket/SKILL.md

# Claude
# Project-local
mkdir -p .claude/skills/bitbucket && bbmd skill > .claude/skills/bitbucket/SKILL.md
# Global
mkdir -p ~/.claude/skills/bitbucket && bbmd skill > ~/.claude/skills/bitbucket/SKILL.md

# Codex
# Project-local
mkdir -p .codex/skills/bitbucket && bbmd skill > .codex/skills/bitbucket/SKILL.md
# Global
mkdir -p ~/.codex/skills/bitbucket && bbmd skill > ~/.codex/skills/bitbucket/SKILL.md

# Cursor
# Project-local
mkdir -p .cursor/skills/bitbucket && bbmd skill > .cursor/skills/bitbucket/SKILL.md
# Global
mkdir -p ~/.cursor/skills/bitbucket && bbmd skill > ~/.cursor/skills/bitbucket/SKILL.md

Estoy cansado de tener 20 carpetas con cosas de IA...

Configuración de cuentas

Puedes tener varias cuentas configuradas. Esto puede ser útil si quieres que la IA use una cuenta diferente para algunas tareas, como publicar revisiones de PR o similares. La cuenta name es solo una etiqueta.

Configura una cuenta de Bitbucket:

bbmd auth add \
  --name user \
  --default \
  --token-type Bearer|Basic \
  --token-value "<token>"

Consulta Bitbucket Access Tokens para más detalles sobre cómo crear tokens.

Nota: Si ya tienes atlassian-accounts.json, simplemente cópialo a ~/.atlacp/accounts.json de la siguiente manera:

cp your/path/to/atlassian-accounts.json ~/.atlacp/accounts.json

Verifica las cuentas configuradas:

bbmd auth status

Comandos compatibles

bbmd (CLI)

  • bbmd auth status - lista las cuentas de Atlassian configuradas con tokens enmascarados.
  • bbmd auth add - agrega o reemplaza una cuenta en el archivo de cuentas local.
  • bbmd auth remove - elimina una cuenta por nombre.
  • bbmd auth set-default - elige la cuenta predeterminada.
  • bbmd pr create - crea una solicitud de extracción (pull request).
  • bbmd pr read - obtiene detalles de una solicitud de extracción.
  • bbmd pr update - actualiza el título, la descripción o el estado de borrador de una solicitud de extracción.
  • bbmd pr approve - aprueba una solicitud de extracción.
  • bbmd pr decline - rechaza una solicitud de extracción.
  • bbmd pr request-changes - elimina la aprobación / solicita cambios.
  • bbmd pr merge - fusiona una solicitud de extracción.
  • bbmd pr diffstat - lista el resumen de archivos modificados de una solicitud de extracción.
  • bbmd pr diff - obtiene el texto del diff sin procesar.
  • bbmd pr add-comment - agrega un comentario general o en línea a una solicitud de extracción.
  • bbmd pr list-comments - lista los comentarios de una solicitud de extracción.
  • bbmd pr resolve-comment - resuelve un hilo de comentarios de una solicitud de extracción.
  • bbmd pr list-tasks - lista las tareas de una solicitud de extracción.
  • bbmd pr create-task - crea una tarea en una solicitud de extracción.
  • bbmd pr update-task - actualiza una tarea de una solicitud de extracción.
  • bbmd file content - obtiene el contenido de un archivo en un commit.

bbcp (herramientas MCP)

  • bitbucket_add_pr_comment - agrega un comentario a una solicitud de extracción.
  • bitbucket_approve_pr - aprueba una solicitud de extracción.
  • bitbucket_decline_pr - rechaza una solicitud de extracción.
  • bitbucket_create_pr - crea una solicitud de extracción.
  • bitbucket_create_pr_task - crea una tarea en una solicitud de extracción.
  • bitbucket_get_file_content - obtiene el contenido de un archivo de un repositorio en un commit específico.
  • bitbucket_get_pr_diff - obtiene el diff de una solicitud de extracción.
  • bitbucket_get_pr_diffstat - obtiene el diffstat de una solicitud de extracción.
  • bitbucket_list_pr_comments - lista los comentarios de una solicitud de extracción.
  • bitbucket_list_pr_tasks - lista las tareas de una solicitud de extracción.
  • bitbucket_merge_pr - fusiona una solicitud de extracción.
  • bitbucket_read_pr - lee una solicitud de extracción.
  • bitbucket_resolve_pr_comment - resuelve un hilo de comentarios de una solicitud de extracción.
  • bitbucket_request_pr_changes - solicita cambios en una solicitud de extracción.
  • bitbucket_update_pr - actualiza una solicitud de extracción.
  • bitbucket_update_pr_task - actualiza una tarea en una solicitud de extracción.

Servidor MCP

Transportes compatibles:

  • HTTP en http://localhost:8080.
  • SSE en http://localhost:8080/sse.
  • STDIO mediante bbcp stdio.

Para ejecutar el servidor HTTP/SSE:

bbcp http

O simplemente usa STDIO:

bbcp stdio

Integrar herramientas de IA

La configuración de MCP de Cursor (.cursor/mcp.json) podría verse así para el transporte STDIO:

{
  "mcpServers": {
    "Bitbucket": {
      "command": "bbcp",
      "args": ["stdio"]
    }
  }
}

O si prefieres el transporte HTTP:

{
  "mcpServers": {
    "Bitbucket": {
      "url": "http://localhost:8080"
    }
  }
}

Una vez configurado, envía un prompt similar a:

Check titbucket pull request https://bitbucket.org/workspace/repo-slug/pull-requests/123

Deberías ver una respuesta con los detalles del PR.

Tokens de acceso de Bitbucket

Consulta la documentación oficial:

  • Personal API Tokens (ten en cuenta que debes crear un token básico para uso de API). Al usar tokens de acceso personal, todas las solicitudes se realizarán en nombre del usuario.
  • Bitbucket Access Tokens - bueno para bots y otras herramientas de automatización.

Token de API de usuario

  • Ve a https://id.atlassian.com/manage-profile/security/api-tokens
  • Crea un nuevo token, con al menos los siguientes alcances:
    read:account
    read:issue:bitbucket
    read:me
    read:pipeline:bitbucket
    read:project:bitbucket
    read:pullrequest:bitbucket
    read:repository:bitbucket
    read:runner:bitbucket
    read:snippet:bitbucket
    read:user:bitbucket
    write:issue:bitbucket
    write:pullrequest:bitbucket
    
  • Crea un token básico a partir de él usando el siguiente comando de shell:
    echo -n "<your-email>:<your-api-token>" | base64
    
  • Agrega la cuenta de usuario al archivo de cuentas local:
    bbmd auth add \
      --name user \
      --default \
      --token-type Basic \
      --token-value "<base64-email-colon-api-token>"
    

Token de API de bot

Si planeas que tu agente de IA opere como un bot, la mejor opción es crear un "Access token" en lugar de un "User API token".

  • Ve a la configuración de tu repositorio o espacio de trabajo, haz clic en "Access tokens"
  • Crea un nuevo token con los siguientes permisos:
    pullrequest
    pipeline
    repository:write
    repository
    pullrequest:write
    
  • Agrega la cuenta de bot al archivo de cuentas local:
    bbmd auth add \
      --name bot \
      --token-type Bearer \
      --token-value "<your-bot-api-token>"
    
    Nota: Puedes usar cualquier nombre en lugar de bot en el comando anterior. Es solo una etiqueta.

Contribuir

Consulta CONTRIBUTING.md para más detalles.

Licencia

MIT