MCP_INIT_MS_SegurosBolivar
Automates the initialization of Java 21/Spring Boot microservices with Docker Compose, generating complete project archetypes for Seguros Bolivar.
README
MCP_INIT_MS_SegurosBolivar
MCP Server para la inicializacion automatizada de microservicios en Seguros Bolivar. Genera arquetipos completos de proyectos Java 21 / Spring Boot 4.x / Gradle listos para desarrollo local con Docker Compose (LocalStack, Mock OAuth, Datadog Agent).
Requisitos
- Docker Desktop instalado y corriendo (unico requisito de software)
- Kiro IDE (o cualquier cliente MCP compatible con transport stdio)
No se necesita Python, Java, ni ningun runtime instalado en la maquina. Todo corre dentro del contenedor Docker.
Instalacion y Configuracion
Opcion A: Usar imagen pre-built (recomendado)
No necesitas clonar nada. Solo configura el MCP en Kiro:
Crear (o editar) el archivo .kiro/settings/mcp.json (en tu workspace o en ~/.kiro/settings/mcp.json):
{
"mcpServers": {
"MCP_INIT_MS_SegurosBolivar": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", ".:/workspace",
"ghcr.io/johanmasmelaeu/mcp-init-ms-segurosbolivar:latest"
],
"disabled": false
}
}
}
Docker Desktop descarga la imagen automaticamente la primera vez. Listo.
Opcion B: Build local (solo si necesitas modificar el MCP)
1. Clonar el repositorio
git clone https://github.com/JohanMasmelaEu/MCP_INIT_MS_SegurosBolivar.git
cd MCP_INIT_MS_SegurosBolivar
2. Construir la imagen Docker
docker build --network=host -t mcp-init-ms-segurosbolivar:latest .
Nota: El flag
--network=hostes necesario para que el contenedor de build tenga acceso a internet (descarga dependencias de PyPI). Sin este flag, la red corporativa o VPN puede bloquear las conexiones salientes del contenedor.
3. Configurar el MCP en Kiro (build local)
Crear (o editar) .kiro/settings/mcp.json:
{
"mcpServers": {
"MCP_INIT_MS_SegurosBolivar": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", ".:/workspace",
"mcp-init-ms-segurosbolivar:latest"
],
"disabled": false
}
}
}
Nota: La unica diferencia con la Opcion A es el nombre de la imagen:
mcp-init-ms-segurosbolivar:latest(local) vsghcr.io/johanmasmelaeu/mcp-init-ms-segurosbolivar:latest(registry).
4. Usar el MCP (no requiere levantar nada manualmente)
El MCP no se arranca por separado. Kiro lo gestiona automaticamente:
- Abre Kiro en el directorio donde quieres generar el proyecto
- Kiro detecta el
mcp.jsonal iniciar la sesion - Internamente ejecuta
docker run -i --rm ...y mantiene la conexion via stdio - El contenedor vive mientras la sesion de Kiro este activa
- Al cerrar la sesion, el contenedor se destruye automaticamente (
--rm)
Para verificar que funciona, abre una sesion en Kiro y escribe:
"Lista los stacks disponibles del MCP de inicializacion"
Kiro invocara list_available_stacks y deberia responder con java-spring-boot.
Troubleshooting
| Problema | Solucion |
|---|---|
| Kiro no detecta el MCP | Verificar que mcp.json esta en .kiro/settings/mcp.json (workspace o global) |
| "Cannot connect to Docker daemon" | Asegurar que Docker Desktop esta corriendo |
| "image not found" | Ejecutar el build del paso 2 |
| El MCP no responde | Reiniciar la sesion de Kiro (cierra y abre el chat) |
| Archivos generados con permisos root | En Linux/Mac agregar "--user", "$(id -u):$(id -g)" a los args |
Como funciona el enlace MCP ↔ Kiro
Arquitectura de comunicacion
┌─────────────────────────────────────────────────────────────────┐
│ Kiro IDE (tu maquina) │
│ │
│ 1. Lee .kiro/settings/mcp.json │
│ 2. Ejecuta: docker run -i --rm -v <workspace>:/workspace ... │
│ 3. Conecta al proceso via stdio (stdin/stdout) │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Contenedor Docker (mcp-init-ms-segurosbolivar:latest) │ │
│ │ │ │
│ │ Python 3.12 + MCP SDK │ │
│ │ ├── Recibe llamadas JSON-RPC via stdin │ │
│ │ ├── Ejecuta tools (get_project_plan, initialize, etc.) │ │
│ │ ├── Escribe archivos en /workspace (volumen montado) │ │
│ │ └── Responde resultados via stdout │ │
│ │ │ │
│ │ /workspace ← montado desde tu directorio local │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
│ 4. Kiro recibe respuestas y las presenta al usuario │
│ 5. Al cerrar sesion → contenedor se destruye (--rm) │
└─────────────────────────────────────────────────────────────────┘
Protocolo MCP (Model Context Protocol)
MCP es un protocolo estandar que permite a LLMs (como Kiro/Claude) invocar herramientas externas de forma estructurada. En este caso:
- Transport:
stdio— Kiro se comunica con el contenedor Docker via stdin/stdout - Protocolo: JSON-RPC 2.0 sobre stdio
- Lifecycle:
- Kiro inicia sesion → lee
mcp.json→ arranca el contenedor - Handshake: Kiro pregunta que tools tiene el MCP → el MCP responde con la lista
- Kiro sabe que tools tiene disponibles y los usa segun el contexto de la conversacion
- Cada invocacion: Kiro envia JSON-RPC request → MCP ejecuta → responde JSON-RPC response
- Cierre: Kiro termina sesion → stdin se cierra → contenedor sale → Docker lo elimina
- Kiro inicia sesion → lee
Donde colocar el mcp.json
| Ubicacion | Alcance | Cuando usar |
|---|---|---|
<proyecto>/.kiro/settings/mcp.json |
Solo ese workspace | Si solo quieres el MCP en un proyecto especifico |
~/.kiro/settings/mcp.json |
Todas las sesiones de Kiro | Si quieres tener el MCP disponible siempre |
Si el archivo existe en ambos niveles, la configuracion del workspace tiene prioridad.
Que pasa internamente cuando hablas con Kiro
Tu: "Inicializa un microservicio para gestion de polizas"
│
▼
Kiro (LLM): Interpreta tu peticion → decide invocar get_required_inputs
│
▼
Kiro → Docker (stdin): {"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_required_inputs","arguments":{"stack":"java-spring-boot"}}}
│
▼
MCP Server (Python): Ejecuta la funcion → retorna schema de preguntas
│
▼
Docker → Kiro (stdout): {"jsonrpc":"2.0","result":{"content":[{"text":"...schema JSON..."}]}}
│
▼
Kiro (LLM): Procesa el schema → te hace las preguntas necesarias
│
▼
Tu: Respondes las preguntas
│
▼
Kiro: Arma la config completa → invoca get_project_plan → te muestra el plan
│
▼
Tu: "Si, apruebo"
│
▼
Kiro: Invoca initialize_project → MCP escribe archivos en /workspace (tu directorio)
│
▼
Archivos aparecen en tu directorio local (porque /workspace es un volumen montado)
Verificar que el MCP esta conectado
En Kiro, abre el panel de funciones MCP (Command Palette → "MCP") para ver los servidores activos. MCP_INIT_MS_SegurosBolivar deberia aparecer con estado "running" y 7 tools listados.
Uso
Flujo tipico
- Abre Kiro en un directorio vacio (o donde quieras generar el proyecto)
- Dile a Kiro: "Quiero inicializar un nuevo microservicio para gestion de [tu dominio]"
- Kiro te preguntara los datos necesarios (nombre, entidades, BD, auth, etc.)
- Kiro te mostrara el plan de archivos a generar
- Confirmas y el MCP genera todo el proyecto
- Levantas con
docker compose updesdedevelopment/docker-local-ms/
Tools disponibles
| Tool | Descripcion |
|---|---|
list_available_stacks |
Lista los stacks de proyecto disponibles (V1: java-spring-boot) |
get_required_inputs |
Devuelve el schema de datos que el usuario debe proporcionar |
get_project_plan |
Genera el plan detallado de archivos (para confirmacion) |
initialize_project |
Ejecuta la generacion completa del proyecto |
add_domain_module |
Agrega un modulo de dominio a un proyecto existente |
configure_infrastructure |
Actualiza la configuracion de infraestructura local |
get_blueprint |
Devuelve el blueprint tecnico como contexto |
Que genera
Un proyecto completo con:
- Gradle 9.x + Spring Boot 4.x + Java 21
- Estructura domain-driven (controller/dto/service/repository por modulo)
- Spring Security configurable (OAuth2 RS, API Gateway, deferred)
- Docker Compose local (LocalStack SSM/S3/SQS + Mock OAuth + Datadog Agent)
- SpringDoc OpenAPI + Swagger UI funcional en local
- CI/CD GitHub Actions con templates institucionales
- JaCoCo con cobertura minima 85%
- Archivos de contexto .kiro (steering, rules, changelogs)
- README, Postman template, api_spec.yaml base
Estructura del MCP
MCP_INIT_MS_SegurosBolivar/
├── Dockerfile
├── requirements.txt
├── README.md
├── src/
│ ├── server.py # Entry point MCP (stdio)
│ ├── tools/ # Implementacion de cada tool
│ ├── generators/ # Logica de generacion por stack
│ ├── models/ # Modelos Pydantic (input del usuario)
│ └── utils/ # Template renderer, file writer
├── templates/
│ └── java-spring-boot/ # Templates Jinja2 del arquetipo
├── blueprints/ # TECH_STACK_BLUEPRINT.md
└── rules/ # Rules transversales a inyectar
Desarrollo del MCP (solo para contribuidores)
Esta seccion es SOLO para quienes modifican el MCP en si. Los usuarios finales NO necesitan Python instalado — todo corre via Docker.
Correr sin Docker (solo desarrollo del MCP)
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
python -m src.server
Agregar un nuevo stack (futuro)
- Crear directorio
templates/<nuevo-stack>/ - Agregar templates Jinja2 siguiendo la estructura
- Crear
src/generators/<nuevo_stack>.pyextendiendoBaseGenerator - Registrar en
list_available_stacks
Restricciones de diseno
- No ejecuta nada sin mostrar plan al usuario primero
- No llama a LLMs externos (Kiro es el cerebro)
- No genera logica de negocio (solo estructura y boilerplate)
- No hardcodea secrets (solo placeholders + .env.sample)
- No toma decisiones de arquitectura (sigue el blueprint)
Publicar la imagen (para maintainers)
La imagen se publica automaticamente en GitHub Container Registry (ghcr.io) via GitHub Actions. Paso a paso:
1. Configurar permisos del repositorio (una sola vez)
- Ve a tu repo en GitHub:
https://github.com/JohanMasmelaEu/MCP_INIT_MS_SegurosBolivar - Settings → Actions → General
- En "Workflow permissions" selecciona "Read and write permissions"
- Marca "Allow GitHub Actions to create and approve pull requests"
- Guarda
2. Hacer push a main
cd MCP_INIT_MS_SegurosBolivar
git add .
git commit -m "feat: MCP server v1.0.0 - inicializacion de microservicios Java/Spring Boot"
git push origin main
El workflow publish-image.yml se dispara automaticamente y:
- Construye la imagen Docker
- La publica en
ghcr.io/johanmasmelaeu/mcp-init-ms-segurosbolivar:latest
3. Verificar que la imagen se publico
- Ve a:
https://github.com/JohanMasmelaEu/MCP_INIT_MS_SegurosBolivar/pkgs/container/mcp-init-ms-segurosbolivar - O en la tab "Packages" de tu perfil de GitHub
4. Hacer la imagen publica (una sola vez)
Por defecto, las imagenes en ghcr.io heredan la visibilidad del repo. Si el repo es publico, la imagen es publica. Si es privado:
- Ve a:
https://github.com/users/JohanMasmelaEu/packages/container/mcp-init-ms-segurosbolivar/settings - En "Danger Zone" → "Change package visibility" → selecciona Public
- Confirma
Esto permite que cualquier usuario con Docker Desktop haga docker pull sin autenticarse.
5. Publicar una version con tag (opcional)
Para publicar una version especifica (ej: v1.0.0):
git tag v1.0.0
git push origin v1.0.0
Esto genera tags adicionales en el registry:
ghcr.io/johanmasmelaeu/mcp-init-ms-segurosbolivar:1.0.0ghcr.io/johanmasmelaeu/mcp-init-ms-segurosbolivar:1.0ghcr.io/johanmasmelaeu/mcp-init-ms-segurosbolivar:latest
6. Verificar desde cualquier maquina
docker pull ghcr.io/johanmasmelaeu/mcp-init-ms-segurosbolivar:latest
docker run -i --rm ghcr.io/johanmasmelaeu/mcp-init-ms-segurosbolivar:latest
Si responde el handshake JSON-RPC, funciona.
Licencia
Uso interno Seguros Bolivar.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.