Personal Bitbucket MCP Server
Servidor MCP de Bitbucket construido sobre el framework Quarkus
Documentación
Personal Bitbucket MCP Server
Un servidor del Protocolo de Contexto de Modelos (MCP) que proporciona a los asistentes de IA herramientas para interactuar con repositorios de Bitbucket Cloud. Construido con Quarkus, el framework Java Supersónico Subatómico.
Autor: Tedy Saputro | Contacto: tedy@saputro.dev
¿Qué es MCP?
El Protocolo de Contexto de Modelos (MCP) es un protocolo abierto que estandariza cómo las aplicaciones proporcionan contexto a los Modelos de Lenguaje de Gran Escala (LLMs). Este servidor implementa MCP para exponer operaciones de Bitbucket como herramientas que asistentes de IA como Claude, ChatGPT u otras aplicaciones impulsadas por LLM pueden utilizar.
Características
- 🔧 11 Herramientas MCP para operaciones de Bitbucket
- 🚀 Soporte de Imagen Nativa con GraalVM para inicio rápido y bajo consumo de memoria
- 🐳 Imágenes Docker Multi-Arquitectura (AMD64 y ARM64)
- 🔐 Autenticación Segura mediante Contraseñas de Aplicación de Bitbucket
- 📦 API RESTful para acceso HTTP directo
- ⚡ Múltiples Opciones de Transporte - stdio (universal), SSE y HTTP Stream
- 🎯 Soporte Universal de Clientes - stdio funciona con todos los clientes MCP (Claude Desktop, Cursor, VS Code, Cherry Studio y más)
Si deseas aprender más sobre Quarkus, visita su sitio web: https://quarkus.io/.
Tabla de Contenidos
- Inicio Rápido
- Referencia de Herramientas MCP
- Configuración
- Ejecución con Docker
- Desarrollo
- Compilación
- Documentación de la API
- Casos de Uso
- Solución de Problemas
- Hoja de Ruta
- Contribuciones
Inicio Rápido
Requisitos Previos
- Token de API de Bitbucket: Crea un token de API en https://bitbucket.org/account/settings/api-token/
- Permisos requeridos:
repository:read,pullrequest:read,pullrequest:write - Consulta Creación de un Token de API de Bitbucket para instrucciones detalladas
- Permisos requeridos:
- Docker (opcional): Para ejecutar la versión contenerizada
Uso con Docker (Recomendado)
docker run -p 8080:8080 \
-e BITBUCKET_EMAIL=your-email@example.com \
-e BITBUCKET_API_TOKEN=your-api-token \
-e BITBUCKET_WORKSPACE=your-workspace \
subrutin/bitbucket-mcp-server:latest
Uso de MCP con Clientes Compatibles
Este servidor admite múltiples protocolos de transporte. Elige el método que mejor funcione para tu cliente:
🎯 Método 1: Transporte stdio (Recomendado - Funciona con Todos los Clientes)
El transporte stdio permite la comunicación directa entre procesos sin necesidad de ejecutar un servidor HTTP. Este es el método universal que funciona con todos los clientes MCP.
Para Claude Desktop, añade esto a tu archivo de configuración:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"bitbucket": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "BITBUCKET_EMAIL=your-email@example.com",
"-e", "BITBUCKET_API_TOKEN=your-api-token",
"-e", "BITBUCKET_WORKSPACE=your-workspace",
"subrutin/bitbucket-mcp-server:stdio-0.0.2"
]
}
}
}
Reinicia Claude Desktop y verás las herramientas de Bitbucket disponibles en el menú de herramientas 🔨.
Para Cursor IDE, añade a la configuración de Cursor (mismo formato que Claude Desktop):
{
"mcpServers": {
"bitbucket": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "BITBUCKET_EMAIL=your-email@example.com",
"-e", "BITBUCKET_API_TOKEN=your-api-token",
"-e", "BITBUCKET_WORKSPACE=your-workspace",
"subrutin/bitbucket-mcp-server:stdio-0.0.2"
]
}
}
}
Para VS Code con la extensión MCP (mismo formato):
{
"mcp.servers": {
"bitbucket": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "BITBUCKET_EMAIL=your-email@example.com",
"-e", "BITBUCKET_API_TOKEN=your-api-token",
"-e", "BITBUCKET_WORKSPACE=your-workspace",
"subrutin/bitbucket-mcp-server:stdio-0.0.2"
]
}
}
}
Para otros clientes MCP, usa el mismo patrón de comando Docker con transporte stdio.
🌐 Método 2: Transporte SSE (Alternativa para Clientes Basados en Web)
El transporte SSE requiere que el servidor esté ejecutándose y sea accesible mediante HTTP.
Paso 1: Inicia el servidor usando Docker:
docker run -d \
--name bitbucket-mcp \
-p 8080:8080 \
-e BITBUCKET_EMAIL=your-email@example.com \
-e BITBUCKET_API_TOKEN=your-api-token \
-e BITBUCKET_WORKSPACE=your-workspace \
subrutin/bitbucket-mcp-server:latest
Paso 2: Configura tu cliente MCP:
✅ Cursor IDE
Añade a la configuración de Cursor:
{
"mcpServers": {
"bitbucket": {
"url": "http://localhost:8080/mcp/sse"
}
}
}
✅ VS Code
Instala la extensión MCP y añade a tu configuración:
{
"mcp.servers": {
"bitbucket": {
"url": "http://localhost:8080/mcp/sse"
}
}
}
✅ Cherry Studio
- Ve a Configuración
- Selecciona MCP
- Haz clic en el botón Crear
"Type": sse
"url": "http://localhost:8080/mcp/sse",
"name": "Bitbucket MCP"
Transportes Compatibles
-
✅ stdio - Comunicación directa entre procesos (Universal - Recomendado)
- Funciona con: TODOS los clientes MCP (Claude Desktop, Cursor, VS Code, Cherry Studio, etc.)
- No se necesita servidor HTTP
- Configuración más sencilla
- Usa la imagen:
subrutin/bitbucket-mcp-server:stdio-0.0.2
-
✅ SSE (Server-Sent Events) - Transporte basado en HTTP
- Opción alternativa para clientes basados en web
- Requiere servidor HTTP en ejecución
- Conexiones de larga duración
- Actualizaciones en tiempo real
- Usa la imagen:
subrutin/bitbucket-mcp-server:latest
-
✅ HTTP Stream - Para clientes MCP personalizados
- Patrones de solicitud/respuesta
- Acceso programático
- Usa la imagen:
subrutin/bitbucket-mcp-server:latest
-
⚠️ HTTPS/TLS - Aún no compatible
- Actualmente solo HTTP disponible para SSE
- Soporte HTTPS planificado para una futura versión
Referencia de Herramientas MCP
Este servidor proporciona 11 herramientas para interactuar con Bitbucket:
Herramientas de Pull Request
1. findAllPullRequest
Devuelve todas las pull requests en el repositorio especificado.
Parámetros:
workspace(cadena): El ID o slug del workspace donde se encuentra el repositorioreposlug(cadena): El slug o nombre del repositorio del cual obtener las pull requests
Ejemplo:
Use the findAllPullRequest tool with workspace "myteam" and reposlug "myrepo"
2. findAPullRequest
Devuelve una pull request específica por ID con información detallada.
Parámetros:
workspace(cadena): El ID o slug del workspacereposlug(cadena): El slug del repositoriopullRequestId(entero): El ID de la pull request para obtener detalles
Ejemplo:
Get details of pull request #42 from myteam/myrepo
3. findDiffStatForPullRequest
Devuelve el diffstat (estadísticas sobre los cambios) de una pull request.
Parámetros:
workspace(cadena): El ID o slug del workspacereposlug(cadena): El slug del repositorioid(entero): El ID de la pull request
Ejemplo:
Show me the diffstat for PR #42
4. findListChangesInAPullRequest
Devuelve el diff/cambios reales de una pull request, mostrando líneas añadidas/eliminadas.
Parámetros:
workspace(cadena): El ID o slug del workspacereposlug(cadena): El slug del repositorioid(entero): El ID de la pull request
Ejemplo:
Show me all the code changes in PR #42
Herramientas de Comentarios en Pull Request
5. createComment
Crea un comentario general en una pull request.
Parámetros:
workspace(cadena): El ID o slug del workspacereposlug(cadena): El slug del repositoriopullRequestId(entero): El ID de la pull request para comentarcommentText(cadena): El texto del comentario (admite Markdown)
Ejemplo:
Add a comment to PR #42 saying "LGTM! Great work on the refactoring."
6. updateComment
Actualiza un comentario existente en una pull request.
Parámetros:
workspace(cadena): El ID o slug del workspacereposlug(cadena): El slug del repositoriopullRequestId(entero): El ID de la pull requestcommentId(entero): El ID del comentario a actualizarcommentText(cadena): El texto actualizado del comentario
Ejemplo:
Update comment #123 on PR #42 with new text
7. createInlineComment
Crea un comentario en línea en una línea específica de código del diff de una pull request.
Parámetros:
workspace(cadena): El ID o slug del workspacereposlug(cadena): El slug del repositoriopullRequestId(entero): El ID de la pull requestfilePath(cadena): La ruta de archivo EXACTA tal como se muestra en el diff de la PR (sensible a mayúsculas)lineNumber(entero): El número de línea en la versión NUEVA del archivocommentText(cadena): El texto del comentario en formato Markdown
Notas Importantes:
- El
filePathdebe coincidir EXACTAMENTE con la ruta de archivo mostrada en el diff de la PR - El
lineNumberdebe ser de la versión NUEVA/MODIFICADA (líneas con '+' en el diff) - La línea debe existir en el diff de la PR - no puedes comentar en líneas sin cambios
- Flujo de trabajo: Primero llama a
findListChangesInAPullRequestpara obtener el diff, luego identifica la ruta de archivo y el número de línea correctos
Ejemplo:
First, get the diff for PR #42, then add an inline comment on line 25 of src/main/java/Service.java
8. findAComment
Devuelve un comentario específico de una pull request con sus detalles.
Parámetros:
workspace(cadena): El ID o slug del workspacereposlug(cadena): El slug del repositoriopullRequestId(entero): El ID de la pull requestcommentId(entero): El ID del comentario a recuperar
Ejemplo:
Get details of comment #123 from PR #42
9. findCommentList
Devuelve una lista paginada de comentarios para una pull request específica.
Parámetros:
workspace(cadena): El ID o slug del workspacereposlug(cadena): El slug del repositoriopullRequestId(entero): El ID de la pull requestpage(entero): El número de página para la paginaciónpageLength(entero): El número de elementos por páginasize(entero): El número total de elementos
Ejemplo:
Get the first 10 comments from PR #42
Herramientas de Perfil de Usuario
10. Fetch user profile
Devuelve la información del perfil de Bitbucket del usuario autenticado.
Parámetros: Ninguno
Ejemplo:
Show me my Bitbucket profile
Configuración
Variables de Entorno
Este servidor requiere las siguientes variables de entorno para la autenticación con Bitbucket Cloud:
| Variable | Requerida | Descripción | Ejemplo |
|---|---|---|---|
BITBUCKET_EMAIL | Sí | El correo electrónico de tu cuenta de Bitbucket | user@example.com |
BITBUCKET_API_TOKEN | Sí | Token de API con permisos de repositorio y PR | ATBBxxx... |
BITBUCKET_WORKSPACE | Sí | Slug del workspace predeterminado para operaciones | myteam |
Creación de un Token de API de Bitbucket
- Ve a https://bitbucket.org/account/settings/api-token/
- Haz clic en "Create API token"
- Asígnale una etiqueta (por ejemplo, "MCP Server")
- Selecciona los permisos:
- Repositorios: Lectura
- Pull requests: Lectura, Escritura
- Haz clic en "Create" y copia el token generado (úsalo como
BITBUCKET_API_TOKEN)
Nota: Los tokens de API son diferentes de las contraseñas de aplicación. Los tokens de API proporcionan permisos más granulares y son el método de autenticación recomendado. Para más información, consulta la documentación de Tokens de API de Atlassian.
Configuración de la Aplicación
La configuración del servidor está en src/main/resources/application.yml:
bitbucket:
api:
email: ${BITBUCKET_EMAIL:}
token: ${BITBUCKET_API_TOKEN:}
workspace: ${BITBUCKET_WORKSPACE:}
quarkus:
rest-client:
bitbucket-api:
url: https://api.bitbucket.org/2.0
Transportes Compatibles
Este servidor MCP admite los siguientes protocolos de transporte:
-
✅ stdio - Comunicación directa entre procesos (Universal - Recomendado)
- Funciona con: TODOS los clientes MCP (Claude Desktop, Cursor, VS Code, Cherry Studio y más)
- No se necesita servidor HTTP
- Configuración e integración más sencillas
- Imagen Docker:
subrutin/bitbucket-mcp-server:stdio-0.0.2
-
✅ SSE (Server-Sent Events) -
GET /mcp/sse- Alternativa para clientes basados en web
- Requiere servidor HTTP en ejecución
- Conexiones de larga duración
- Actualizaciones en tiempo real
- Actualmente solo HTTP (HTTPS próximamente)
- Imagen Docker:
subrutin/bitbucket-mcp-server:latest
-
✅ HTTP Stream -
POST /mcp/stream- Para clientes MCP personalizados
- Patrones de solicitud/respuesta
- Acceso programático
- Imagen Docker:
subrutin/bitbucket-mcp-server:latest
-
⚠️ HTTPS/TLS - Aún no compatible (en desarrollo)
- Habilitará conexiones SSE seguras
- Se necesita configuración de certificados SSL
- Consulta la Hoja de Ruta para conocer los plazos
Ejecución con Docker
Imágenes Docker Disponibles
Este proyecto proporciona dos imágenes Docker para diferentes casos de uso:
-
subrutin/bitbucket-mcp-server:latest- Transporte SSE/HTTP- Para Cursor, VS Code, Cherry Studio
- Requiere servidor HTTP en ejecución
- Admite SSE y HTTP Stream
-
subrutin/bitbucket-mcp-server:stdio-0.0.2- Transporte stdio (Recomendado)- Para TODOS los clientes MCP (Claude Desktop, Cursor, VS Code, Cherry Studio, etc.)
- Comunicación directa entre procesos
- No se necesita servidor HTTP
- Configuración más sencilla
Descargar y Ejecutar (Transporte SSE/HTTP)
# Pull the latest image
docker pull subrutin/bitbucket-mcp-server:latest
# Run the container
docker run -d \
--name bitbucket-mcp \
-p 8080:8080 \
-e BITBUCKET_EMAIL=your-email@example.com \
-e BITBUCKET_API_TOKEN=your-api-token \
-e BITBUCKET_WORKSPACE=your-workspace \
subrutin/bitbucket-mcp-server:latest
Ejecutar con Transporte stdio (Todos los Clientes MCP - Recomendado)
# Pull the stdio image
docker pull subrutin/bitbucket-mcp-server:stdio-0.0.2
# Run interactively (for testing)
docker run -i --rm \
-e BITBUCKET_EMAIL=your-email@example.com \
-e BITBUCKET_API_TOKEN=your-api-token \
-e BITBUCKET_WORKSPACE=your-workspace \
subrutin/bitbucket-mcp-server:stdio-0.0.2
Nota: Para clientes MCP (Claude Desktop, Cursor, VS Code, etc.), usa la configuración mostrada en Método 1: Transporte stdio en lugar de ejecutarlo manualmente.
Uso de Docker Compose
Crea un docker-compose.yml:
version: '3.8'
services:
bitbucket-mcp:
image: subrutin/bitbucket-mcp-server:latest
ports:
- "8080:8080"
environment:
BITBUCKET_EMAIL: ${BITBUCKET_EMAIL}
BITBUCKET_API_TOKEN: ${BITBUCKET_API_TOKEN}
BITBUCKET_WORKSPACE: ${BITBUCKET_WORKSPACE}
restart: unless-stopped
Luego ejecuta:
docker-compose up -d
Verificación de Salud
Comprueba si el servidor está ejecutándose:
curl http://localhost:8080/q/health
Desarrollo
Ejecución en Modo de Desarrollo
Ejecuta la aplicación en modo de desarrollo con codificación en vivo habilitada:
./mvnw quarkus:dev
La interfaz de desarrollo (Dev UI) está disponible en http://localhost:8080/q/dev/
Prueba de Herramientas MCP Localmente
Una vez que el servidor esté ejecutándose, puedes probar los endpoints MCP:
# Test SSE connection (Server-Sent Events)
curl -N http://localhost:8080/mcp/sse
# Test HTTP Stream connection
curl -N http://localhost:8080/mcp
# Test with MCP Inspector (if installed)
npx @modelcontextprotocol/inspector http://localhost:8080/mcp/sse
Transportes MCP Disponibles:
stdio- Comunicación directa entre procesos (Universal - funciona con TODOS los clientes MCP - usa la imagenstdio-0.0.2) ⭐ RecomendadoGET /mcp/sse- Transporte SSE (Alternativa - requiere servidor HTTP)POST /mcp/stream- Transporte HTTP Stream (para clientes MCP personalizados)
Compilación
Compilación de Imágenes Docker Multi-Arquitectura
Este proyecto incluye un script para construir imágenes Docker nativas tanto para arquitecturas AMD64 como ARM64:
# Build and push multi-platform image
./build-multiplatform.sh subrutin/bitbucket-mcp-server 0.0.1
# The script will:
# 1. Use Docker buildx to create multi-arch images
# 2. Build native executables with GraalVM
# 3. Push to Docker Hub registry
Construcción de la versión JVM
Empaqueta la aplicación como una aplicación JVM:
./mvnw package
Esto produce quarkus-run.jar en el directorio target/quarkus-app/.
Ejecuta con:
java -jar target/quarkus-app/quarkus-run.jar
Construcción del ejecutable nativo
Construye un ejecutable nativo con GraalVM:
# With local GraalVM installation
./mvnw package -Dnative
# Or using Docker (no GraalVM installation required)
./mvnw package -Dnative -Dquarkus.native.container-build=true
Ejecuta el ejecutable nativo:
./target/bitbucket-mcp-server-1.0.0-SNAPSHOT-runner
Beneficios de Native Image:
- ⚡ Inicio rápido (~0.01s vs ~1-2s para JVM)
- 💾 Bajo consumo de memoria (~20-30MB vs ~100-200MB para JVM)
- 📦 Tamaño de imagen pequeño (~50-100MB vs ~300-400MB para JVM)
Construcción manual de la imagen Docker
# Build native image
docker build -f src/main/docker/Dockerfile.multiplatform -t bitbucket-mcp-server:native .
# Build JVM image
docker build -f src/main/docker/Dockerfile.jvm -t bitbucket-mcp-server:jvm .
Documentación de la API
Endpoints MCP
El servidor MCP ofrece tres opciones de transporte:
1. stdio - Comunicación directa de procesos ✨ ¡Nuevo! (Universal - Recomendado)
# Use with Docker
docker run -i --rm \
-e BITBUCKET_EMAIL=your-email@example.com \
-e BITBUCKET_API_TOKEN=your-api-token \
-e BITBUCKET_WORKSPACE=your-workspace \
subrutin/bitbucket-mcp-server:stdio-0.0.2
Ideal para:
- TODOS los clientes MCP (Claude Desktop, Cursor, VS Code, Cherry Studio, etc.)
- No se necesita servidor HTTP
- Comunicación directa de procesos
- Configuración más sencilla
- Recomendado para todos los casos de uso
2. SSE (Server-Sent Events)
GET http://localhost:8080/mcp/sse
Ideal para:
- Opción alternativa cuando no se prefiere stdio
- Clientes basados en web
- Conexiones de larga duración
- Actualizaciones en tiempo real
3. HTTP Stream
POST http://localhost:8080/mcp/stream
Content-Type: application/json
Ideal para:
- Clientes MCP personalizados
- Patrones de solicitud/respuesta
- Acceso programático
Endpoints de la API REST
Además de las herramientas MCP, el servidor también expone endpoints REST:
Obtener repositorios
GET /bitbucket/repositories?workspace={workspace}&page={page}&pagelen={pagelen}
Ejemplo:
curl "http://localhost:8080/bitbucket/repositories?workspace=myteam&page=1&pagelen=10"
Salud y métricas
# Health check
curl http://localhost:8080/q/health
# Readiness check
curl http://localhost:8080/q/health/ready
# Liveness check
curl http://localhost:8080/q/health/live
# Metrics (if enabled)
curl http://localhost:8080/q/metrics
Casos de uso
Automatización de revisión de código
Usa asistentes de IA para:
- Revisar pull requests y proporcionar comentarios
- Verificar problemas de calidad del código
- Sugerir mejoras
- Añadir comentarios en línea en líneas específicas
Ejemplo de prompt para Claude:
Review pull request #42 in workspace "myteam" repository "myrepo".
Check for:
1. Code quality issues
2. Potential bugs
3. Best practice violations
Add inline comments where improvements are needed.
Gestión de PR
- Listar todos los pull requests abiertos
- Obtener información detallada sobre PR específicos
- Ver diffs y cambios
- Gestionar comentarios y discusiones
Ejemplo de prompt:
Show me all open pull requests in myteam/myrepo and summarize what each one does
Colaboración en equipo
- Obtener perfiles de usuario
- Rastrear actividad de PR
- Monitorear cambios de código
- Facilitar discusiones de revisión de código
Solución de problemas
Problemas comunes
Problema: "Fallo de autenticación"
- Verifica que tu
BITBUCKET_EMAILyBITBUCKET_API_TOKENsean correctos - Asegúrate de que el token de API tenga los permisos requeridos (Repositorios: Lectura, Pull requests: Lectura y Escritura)
- Comprueba que el workspace exista y tengas acceso a él
- Asegúrate de usar un token de API, no una contraseña de aplicación
Problema: "Repositorio no encontrado"
- Verifica que el workspace y el slug del repositorio sean correctos
- Asegúrate de tener acceso de lectura al repositorio
- Comprueba que el repositorio exista en el workspace especificado
Problema: "No se puede crear comentario en línea"
- Primero llama a
findListChangesInAPullRequestpara obtener las rutas exactas de los archivos - Asegúrate de que la ruta del archivo coincida exactamente (distingue entre mayúsculas y minúsculas)
- Verifica que el número de línea sea de la versión NUEVA del archivo
- La línea debe ser parte de los cambios del PR (no líneas sin cambios)
Problema: "La imagen Docker no se inicia"
- Comprueba que todas las variables de entorno requeridas estén configuradas
- Verifica que el puerto 8080 no esté ya en uso
- Revisa los logs de Docker:
docker logs bitbucket-mcp
Logs
Consulta los logs de la aplicación:
# Docker logs
docker logs -f bitbucket-mcp
# Local development
# Logs are printed to console when running ./mvnw quarkus:dev
Hoja de ruta
Estamos trabajando activamente en mejorar el Bitbucket MCP Server. Esto es lo que está planificado:
✅ Completado recientemente
- Soporte de transporte stdio - ✨ ¡Ya disponible!
- Transporte universal para TODOS los clientes MCP
- Comunicación directa de procesos sin servidor HTTP
- Funciona con Claude Desktop, Cursor, VS Code, Cherry Studio y más
- Usa la imagen:
subrutin/bitbucket-mcp-server:stdio-0.0.2 - Publicado en la versión 0.0.2
🚧 En desarrollo
- Soporte HTTPS/TLS - Habilitará conexiones seguras para el transporte SSE
- Permitirá que Claude Desktop use el transporte SSE
- Configuración de certificados SSL
- Redirección automática de HTTP a HTTPS
- Previsto para la próxima versión importante
📋 Funciones planificadas
- Autenticación mejorada
- Soporte de OAuth 2.0
- Soporte de múltiples workspaces
- Mecanismo de renovación de tokens
💡 Consideraciones futuras
- Integración con GitHub (servidor MCP similar para GitHub)
- Integración con GitLab
- Soporte de webhooks para actualizaciones en tiempo real
- Sistema de plugins de herramientas personalizadas
¿Quieres contribuir? ¡Consulta nuestra sección Contribuir!
Contribuciones
¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.
Cómo contribuir
- Haz un fork del repositorio
- Crea una rama de funcionalidad (
git checkout -b feature/amazing-feature) - Realiza tus commits (
git commit -m 'Add some amazing feature') - Sube los cambios a la rama (
git push origin feature/amazing-feature) - Abre un Pull Request
Configuración de desarrollo
Consulta la sección Desarrollo para obtener instrucciones sobre cómo configurar tu entorno local.
Licencia
Este proyecto es de código abierto. Consulta el archivo LICENSE para más detalles.
Autor
Tedy Saputro
- 📧 Correo: tedy@saputro.dev
- 🌐 Sitio web: tedy.saputro.dev
Recursos
- Documentación del Protocolo de Contexto de Modelos
- Documentación de Quarkus
- API REST de Bitbucket Cloud
- Imagen nativa de GraalVM
Soporte
Para problemas, preguntas o contribuciones:
- 📧 Correo: tedy@saputro.dev
- 🌐 Sitio web: tedy.saputro.dev
- 💻 GitHub: Visita el repositorio del proyecto para problemas y pull requests