Configurar MCP en mismo dominio de la app principal
- Cambiar router MCP para usar APP_DOMAIN/mcp en lugar de dominio separado - Prioridad 200 para que tenga precedencia sobre otros routers - Eliminar variable MCP_DOMAIN del workflow y .env.example - Actualizar README con nueva configuración de endpoints - El servidor MCP estará en docs.nucleoriofrio.com/mcp sin Authentik
This commit is contained in:
@@ -19,11 +19,9 @@ REGISTRY_URL=gitea.ejemplo.com
|
||||
APP_NAME=mi-app
|
||||
|
||||
# Dominio donde se desplegará la aplicación
|
||||
# El servidor MCP estará disponible en: APP_DOMAIN/mcp (sin autenticación)
|
||||
APP_DOMAIN=miapp.ejemplo.com
|
||||
|
||||
# Dominio para el servidor MCP Docker (sin autenticación)
|
||||
MCP_DOMAIN=mcp.ejemplo.com
|
||||
|
||||
# ===========================================
|
||||
# APPLICATION
|
||||
# ===========================================
|
||||
|
||||
@@ -46,7 +46,6 @@ jobs:
|
||||
# Variables de entorno para docker-compose
|
||||
APP_DOMAIN: ${{ vars.APP_DOMAIN }}
|
||||
NUXT_PUBLIC_APP_URL: ${{ vars.NUXT_PUBLIC_APP_URL }}
|
||||
MCP_DOMAIN: ${{ vars.MCP_DOMAIN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Login to registry
|
||||
|
||||
13
README.md
13
README.md
@@ -35,13 +35,16 @@ Este repositorio contiene la documentación del funcionamiento del sistema Nucle
|
||||
Aplicación Nuxt 4 con la documentación del sistema Nucleo, expuesta mediante Traefik con autenticación Authentik.
|
||||
|
||||
### MCP Docker Server (`mcp-docker`)
|
||||
Servidor MCP de Docker (`ckreiling/mcp-server-docker`) que permite gestionar contenedores Docker mediante lenguaje natural. Este servicio:
|
||||
- Usa el puerto 8080 para comunicación MCP
|
||||
Servidor MCP personalizado construido con TypeScript que expone operaciones Docker a través del protocolo MCP sobre HTTP. Este servicio:
|
||||
- Implementa 13 herramientas Docker seguras usando dockerode
|
||||
- Usa el puerto 3000 para comunicación HTTP
|
||||
- Tiene acceso al socket de Docker del host (solo lectura)
|
||||
- Se ejecuta en las redes `principal` y `traefik-network`
|
||||
- **Expuesto públicamente a través de Traefik SIN autenticación Authentik**
|
||||
- Accesible en el dominio configurado en `MCP_DOMAIN`
|
||||
- Incluye soporte para operaciones de Docker mediante protocolo MCP
|
||||
- **Expuesto públicamente en `APP_DOMAIN/mcp` SIN autenticación Authentik**
|
||||
- Prioridad 200 en Traefik para evitar conflictos con otros routers
|
||||
- Endpoints disponibles:
|
||||
- `POST /mcp` - Protocolo MCP para operaciones Docker
|
||||
- `GET /mcp/health` - Health check del servicio
|
||||
|
||||
## Desarrollo Local
|
||||
|
||||
|
||||
@@ -68,10 +68,11 @@ services:
|
||||
# Service
|
||||
- "traefik.http.services.${APP_NAME}-mcp.loadbalancer.server.port=3000"
|
||||
|
||||
# Router sin autenticación con PathPrefix para /mcp
|
||||
- "traefik.http.routers.${APP_NAME}-mcp.rule=Host(`${MCP_DOMAIN}`) && PathPrefix(`/mcp`)"
|
||||
# Router sin autenticación para /mcp - Mayor prioridad que la app principal
|
||||
- "traefik.http.routers.${APP_NAME}-mcp.rule=Host(`${APP_DOMAIN}`) && PathPrefix(`/mcp`)"
|
||||
- "traefik.http.routers.${APP_NAME}-mcp.entrypoints=websecure"
|
||||
- "traefik.http.routers.${APP_NAME}-mcp.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.${APP_NAME}-mcp.priority=200"
|
||||
- "traefik.http.routers.${APP_NAME}-mcp.service=${APP_NAME}-mcp"
|
||||
|
||||
# Headers personalizados para MCP
|
||||
|
||||
Reference in New Issue
Block a user