Servidor MCP de Atlassian Bitbucket
Un servidor de Protocolo de Contexto de Modelo (MCP) Node.js/TypeScript para Atlassian Bitbucket Cloud. Permite que los sistemas de IA (p. ej., LLM como Claude o Cursor AI) interactúen de forma segura con sus repositorios, solicitudes de extracción, espacios de trabajo y código en tiempo real.
👁 Versión NPM
👁 Estado de compilación
¿Por qué utilizar este servidor?
Entrada mínima, salida máxima : los identificadores simples proporcionan detalles completos sin necesidad de indicadores adicionales.
Visualización de código enriquecido : obtenga información detallada sobre los cambios de código con estadísticas de archivos, vistas de diferencias y contexto inteligente.
Autenticación local segura : ejecútela localmente con sus credenciales y nunca almacene tokens en servidores remotos.
Respuestas intuitivas de Markdown : formato de Markdown consistente y bien estructurado para todas las salidas.
Integración completa con Bitbucket : acceda a espacios de trabajo, repositorios, solicitudes de extracción, comentarios, búsqueda de código y más.
Related MCP server: Atlassian Bitbucket MCP Server
¿Qué es MCP?
El Protocolo de Contexto de Modelo (MCP) es un estándar abierto para conectar de forma segura sistemas de IA a herramientas y fuentes de datos externas. Este servidor implementa MCP para Bitbucket Cloud, lo que permite que los asistentes de IA interactúen con sus datos de Bitbucket mediante programación.
Prerrequisitos
Node.js (>=18.x): Descargar
Cuenta en la nube de Bitbucket
Configuración
Paso 1: Autenticar
Elija uno de los siguientes métodos de autenticación:
Opción A: Contraseña de la aplicación Bitbucket (recomendada)
Genera una desde las contraseñas de la aplicación Bitbucket . Permisos mínimos:
Espacios de trabajo: Leer
Repositorios: Leer
Solicitudes de extracción: lectura
También puede configurar BITBUCKET_DEFAULT_WORKSPACE para especificar un espacio de trabajo predeterminado cuando no se proporciona explícitamente.
Opción B: Token de API de Atlassian
Genere uno a partir de tokens API de Atlassian .
Nota: Se recomienda encarecidamente utilizar contraseñas de aplicaciones Bitbucket, ya que proporcionan permisos más granulares y específicos de Bitbucket.
Paso 2: Configurar credenciales
Opción A: Archivo de configuración MCP (recomendado)
Editar o crear ~/.mcp/configs.json :
Usando la contraseña de la aplicación Bitbucket:
{
"bitbucket": {
"environments": {
"ATLASSIAN_BITBUCKET_USERNAME": "<your_username>",
"ATLASSIAN_BITBUCKET_APP_PASSWORD": "<your_app_password>"
}
}
}Uso del token API de Atlassian:
{
"bitbucket": {
"environments": {
"ATLASSIAN_SITE_NAME": "bitbucket",
"ATLASSIAN_USER_EMAIL": "<your_email>",
"ATLASSIAN_API_TOKEN": "<your_api_token>"
}
}
}Opción B: Variables de entorno
export ATLASSIAN_BITBUCKET_USERNAME="<your_username>"
export ATLASSIAN_BITBUCKET_APP_PASSWORD="<your_app_password>"Paso 3: Instalar y ejecutar
Inicio rápido con npx
npx -y @aashari/mcp-server-atlassian-bitbucket ls-workspacesInstalación global
npm install -g @aashari/mcp-server-atlassian-bitbucket
mcp-atlassian-bitbucket ls-workspacesPaso 4: Conéctese al Asistente de IA
Configure su cliente compatible con MCP (por ejemplo, Claude, Cursor AI):
{
"mcpServers": {
"bitbucket": {
"command": "npx",
"args": ["-y", "@aashari/mcp-server-atlassian-bitbucket"]
}
}
}Herramientas MCP
Las herramientas MCP utilizan nombres snake_case , parámetros camelCase y devuelven respuestas con formato Markdown.
bb_ls_workspaces : Enumera los espacios de trabajo disponibles (
query: str opt). Uso: Ver espacios de trabajo accesibles.bb_get_workspace : Obtiene detalles del espacio de trabajo (
workspaceSlug: str req). Uso: Ver información del espacio de trabajo.bb_ls_repos : Lista los repositorios (
workspaceSlug: str opt,projectKey: str opt,query: str opt,role: str opt). Uso: Buscar repositorios.bb_get_repo : Obtiene los detalles del repositorio (
workspaceSlug: str req,repoSlug: str req). Uso: Accede a la información del repositorio.bb_search : Busca contenido de Bitbucket (
workspaceSlug: str req,query: str req,scope: str opt,language: str opt,extension: str opt). Uso: Buscar código o solicitudes de solicitud (PR).bb_ls_prs : Lista las solicitudes de extracción (
workspaceSlug: str req,repoSlug: str req,state: str opt). Uso: Ver solicitudes de extracción abiertas o fusionadas.bb_get_pr : Obtiene los detalles de la solicitud de retorno (
workspaceSlug: str req,repoSlug: str req,prId: str req). Uso: Ver detalles de la solicitud de retorno con diferencias.bb_ls_pr_comments : Lista los comentarios de la solicitud de relaciones públicas (
workspaceSlug: str req,repoSlug: str req,prId: str req). Uso: Ver las discusiones de la solicitud de relaciones públicas.bb_add_pr_comment : Agrega un comentario a la solicitud de relaciones públicas (
workspaceSlug: str req,repoSlug: str req,prId: str req,content: str req,inline: obj opt). Uso: Agrega comentarios a las solicitudes de relaciones públicas.bb_add_pr : Crea una solicitud de solicitud (
workspaceSlug: str req,repoSlug: str req,title: str req,sourceBranch: str req,targetBranch: str opt). Uso: Crea nuevas solicitudes de solicitud.bb_add_branch : Crea una rama (
workspaceSlug: str req,repoSlug: str req,newBranchName: str req,sourceBranchOrCommit: str opt). Uso: Crea una rama de funciones.bb_clone_repo : Clona un repositorio (
workspaceSlug: str req,repoSlug: str req,targetPath: str req). Uso: Clona código localmente.bb_get_commit_history : Obtiene el historial de confirmaciones (
workspaceSlug: str req,repoSlug: str req,revision: str opt,path: str opt). Uso: Ver el historial de código.bb_get_file : Obtiene el contenido del archivo (
workspaceSlug: str req,repoSlug: str req,filePath: str req,revision: str opt). Uso: Ver archivo específico.bb_diff_branches : Muestra la diferencia entre ramas (
workspaceSlug: str req,repoSlug: str req,sourceBranch: str req,targetBranch: str req). Uso: Compara ramas.bb_diff_commits : Muestra la diferencia entre confirmaciones (
workspaceSlug: str req,repoSlug: str req,sourceCommit: str req,targetCommit: str req). Uso: Comparar confirmaciones.bb_list_branches : Lista las ramas (
workspaceSlug: str req,repoSlug: str req,query: str opt,sort: str opt). Uso: Ver todas las ramas.
bb_ls_workspaces
Listar todos los espacios de trabajo:
{}Buscar espacios de trabajo:
{ "query": "devteam" }bb_get_workspace
Obtener detalles del espacio de trabajo:
{ "workspaceSlug": "acme-corp" }bb_ls_repos
Lista de repositorios en el espacio de trabajo:
{ "workspaceSlug": "acme-corp", "projectKey": "PROJ" }Lista de repositorios que utilizan el espacio de trabajo predeterminado:
{ "projectKey": "PROJ" }bb_get_repo
Obtener detalles del repositorio:
{ "workspaceSlug": "acme-corp", "repoSlug": "backend-api" }bb_search
Código de búsqueda:
{
"workspaceSlug": "acme-corp",
"query": "Logger",
"scope": "code",
"language": "typescript"
}bb_ls_prs
Lista de PR abiertas:
{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "state": "OPEN" }bb_get_pr
Obtenga detalles de relaciones públicas:
{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "prId": "42" }bb_ls_pr_comments
Lista de comentarios de relaciones públicas:
{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "prId": "42" }bb_add_pr_comment
Añadir comentario general:
{
"workspaceSlug": "acme-corp",
"repoSlug": "frontend-app",
"prId": "42",
"content": "Looks good."
}Agregar comentario en línea:
{
"workspaceSlug": "acme-corp",
"repoSlug": "frontend-app",
"prId": "42",
"content": "Consider refactoring.",
"inline": { "path": "src/utils.js", "line": 42 }
}bb_add_pr
Crear solicitud de extracción:
{
"workspaceSlug": "acme-corp",
"repoSlug": "frontend-app",
"title": "Add login screen",
"sourceBranch": "feature/login"
}bb_add_branch
Crear nueva rama:
{
"workspaceSlug": "acme-corp",
"repoSlug": "frontend-app",
"newBranchName": "feature/new-feature",
"sourceBranchOrCommit": "main"
}bb_clone_repo
Repositorio de clones:
{
"workspaceSlug": "acme-corp",
"repoSlug": "backend-api",
"targetPath": "/Users/me/projects"
}bb_get_commit_history
Ver historial de confirmaciones:
{
"workspaceSlug": "acme-corp",
"repoSlug": "backend-api"
}Historial de confirmaciones filtrado:
{
"workspaceSlug": "acme-corp",
"repoSlug": "backend-api",
"revision": "develop",
"path": "src/main/java/com/acme/service/UserService.java"
}bb_get_file
Obtener el contenido del archivo:
{
"workspaceSlug": "acme-corp",
"repoSlug": "backend-api",
"filePath": "src/main/java/com/acme/service/Application.java",
"revision": "main"
}bb_diff_branches
Comparar sucursales:
{
"workspaceSlug": "acme-corp",
"repoSlug": "web-app",
"sourceBranch": "develop",
"targetBranch": "main"
}bb_diff_commits
Comparar confirmaciones:
{
"workspaceSlug": "acme-corp",
"repoSlug": "web-app",
"sourceCommit": "a1b2c3d",
"targetCommit": "e4f5g6h"
}bb_list_branches
Listar todas las sucursales:
{
"workspaceSlug": "acme-corp",
"repoSlug": "frontend-app"
}Ramas filtradas:
{
"workspaceSlug": "acme-corp",
"repoSlug": "frontend-app",
"query": "feature/",
"sort": "name"
}Comandos CLI
Los comandos CLI usan kebab-case . Ejecute --help para obtener más información (p. ej., mcp-atlassian-bitbucket ls-workspaces --help ).
ls-workspaces : Enumera los espacios de trabajo (
--query). Ejemplo:mcp-atlassian-bitbucket ls-workspaces.get-workspace : Obtiene los detalles del espacio de trabajo (
--workspace-slug). Ejemplo:mcp-atlassian-bitbucket get-workspace --workspace-slug acme-corp.ls-repos : Lista los repositorios (
--workspace-slug,--project-key,--query). Ejemplo:mcp-atlassian-bitbucket ls-repos --workspace-slug acme-corp.get-repo : Obtiene los detalles del repositorio (
--workspace-slug,--repo-slug). Ejemplo:mcp-atlassian-bitbucket get-repo --workspace-slug acme-corp --repo-slug backend-api.búsqueda : Busca código (
--workspace-slug,--query,--scope,--language). Ejemplo:mcp-atlassian-bitbucket search --workspace-slug acme-corp --query "auth".ls-prs : Enumera las solicitudes de solicitud (
--workspace-slug,--repo-slug,--state). Ejemplo:mcp-atlassian-bitbucket ls-prs --workspace-slug acme-corp --repo-slug backend-api.get-pr : Obtiene los detalles de la solicitud de registro (
--workspace-slug,--repo-slug,--pr-id). Ejemplo:mcp-atlassian-bitbucket get-pr --workspace-slug acme-corp --repo-slug backend-api --pr-id 42.ls-pr-comments : Lista los comentarios de PR (
--workspace-slug,--repo-slug,--pr-id). Ejemplo:mcp-atlassian-bitbucket ls-pr-comments --workspace-slug acme-corp --repo-slug backend-api --pr-id 42.add-pr-comment : Añade un comentario de PR (
--workspace-slug,--repo-slug,--pr-id,--content). Ejemplo:mcp-atlassian-bitbucket add-pr-comment --workspace-slug acme-corp --repo-slug backend-api --pr-id 42 --content "Looks good".add-pr : Crea una solicitud de registro (
--workspace-slug,--repo-slug,--title,--source-branch). Ejemplo:mcp-atlassian-bitbucket add-pr --workspace-slug acme-corp --repo-slug backend-api --title "New feature" --source-branch feature/login.get-file : Obtiene el contenido del archivo (
--workspace-slug,--repo-slug,--file-path). Ejemplo:mcp-atlassian-bitbucket get-file --workspace-slug acme-corp --repo-slug backend-api --file-path src/main.js.add-branch : Crea una rama (
--workspace-slug,--repo-slug,--new-branch-name). Ejemplo:mcp-atlassian-bitbucket add-branch --workspace-slug acme-corp --repo-slug backend-api --new-branch-name feature/new.
Listar y ver espacios de trabajo/repositorios
# 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-apiTrabajar con solicitudes de extracción
# 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/loginCódigo y confirmaciones
# 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 e4f5g6hGestión de sucursales
# 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-projectsFormato de respuesta
Todas las respuestas están en formato Markdown, incluidas:
Título : Operación realizada o entidad visualizada.
Contexto : espacio de trabajo, repositorio, solicitud de extracción o información de rama.
Contenido : datos primarios como contenido de archivo, detalles de relaciones públicas o resultados de búsqueda.
Metadatos : marcas de tiempo, autores y estadísticas.
Diferencias : cambios de código con resaltado de sintaxis para diferencias entre ramas/confirmaciones.
Detalles del repositorio
# 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*Revisión de solicitud de extracción
# 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*Desarrollo
# 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 testContribuyendo
¡Agradecemos sus contribuciones! Por favor:
Bifurcar el repositorio.
Crea una rama de características (
git checkout -b feature/xyz).Confirmar cambios (
git commit -m "Add xyz feature").Empujar a la rama (
git push origin feature/xyz).Abrir una solicitud de extracción.
Consulte CONTRIBUTING.md para obtener más detalles.
Licencia
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
- A server for finding information about Bitbucket, the Git repository hosting service
- Guide to connecting to Bitbucket Data Center
- Bitbucket pull request reviewer information
- Bitbucket integration for CursorAI to manage repositories and pull requests
- Bitbucket integration for repository and pull request management
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/aashari/mcp-server-atlassian-bitbucket'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
