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
|
APP_NAME=mi-app
|
||||||
|
|
||||||
# Dominio donde se desplegará la aplicación
|
# Dominio donde se desplegará la aplicación
|
||||||
|
# El servidor MCP estará disponible en: APP_DOMAIN/mcp (sin autenticación)
|
||||||
APP_DOMAIN=miapp.ejemplo.com
|
APP_DOMAIN=miapp.ejemplo.com
|
||||||
|
|
||||||
# Dominio para el servidor MCP Docker (sin autenticación)
|
|
||||||
MCP_DOMAIN=mcp.ejemplo.com
|
|
||||||
|
|
||||||
# ===========================================
|
# ===========================================
|
||||||
# APPLICATION
|
# APPLICATION
|
||||||
# ===========================================
|
# ===========================================
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ jobs:
|
|||||||
# Variables de entorno para docker-compose
|
# Variables de entorno para docker-compose
|
||||||
APP_DOMAIN: ${{ vars.APP_DOMAIN }}
|
APP_DOMAIN: ${{ vars.APP_DOMAIN }}
|
||||||
NUXT_PUBLIC_APP_URL: ${{ vars.NUXT_PUBLIC_APP_URL }}
|
NUXT_PUBLIC_APP_URL: ${{ vars.NUXT_PUBLIC_APP_URL }}
|
||||||
MCP_DOMAIN: ${{ vars.MCP_DOMAIN }}
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Login to registry
|
- 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.
|
Aplicación Nuxt 4 con la documentación del sistema Nucleo, expuesta mediante Traefik con autenticación Authentik.
|
||||||
|
|
||||||
### MCP Docker Server (`mcp-docker`)
|
### MCP Docker Server (`mcp-docker`)
|
||||||
Servidor MCP de Docker (`ckreiling/mcp-server-docker`) que permite gestionar contenedores Docker mediante lenguaje natural. Este servicio:
|
Servidor MCP personalizado construido con TypeScript que expone operaciones Docker a través del protocolo MCP sobre HTTP. Este servicio:
|
||||||
- Usa el puerto 8080 para comunicación MCP
|
- 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)
|
- Tiene acceso al socket de Docker del host (solo lectura)
|
||||||
- Se ejecuta en las redes `principal` y `traefik-network`
|
- Se ejecuta en las redes `principal` y `traefik-network`
|
||||||
- **Expuesto públicamente a través de Traefik SIN autenticación Authentik**
|
- **Expuesto públicamente en `APP_DOMAIN/mcp` SIN autenticación Authentik**
|
||||||
- Accesible en el dominio configurado en `MCP_DOMAIN`
|
- Prioridad 200 en Traefik para evitar conflictos con otros routers
|
||||||
- Incluye soporte para operaciones de Docker mediante protocolo MCP
|
- Endpoints disponibles:
|
||||||
|
- `POST /mcp` - Protocolo MCP para operaciones Docker
|
||||||
|
- `GET /mcp/health` - Health check del servicio
|
||||||
|
|
||||||
## Desarrollo Local
|
## Desarrollo Local
|
||||||
|
|
||||||
|
|||||||
@@ -68,10 +68,11 @@ services:
|
|||||||
# Service
|
# Service
|
||||||
- "traefik.http.services.${APP_NAME}-mcp.loadbalancer.server.port=3000"
|
- "traefik.http.services.${APP_NAME}-mcp.loadbalancer.server.port=3000"
|
||||||
|
|
||||||
# Router sin autenticación con PathPrefix para /mcp
|
# Router sin autenticación para /mcp - Mayor prioridad que la app principal
|
||||||
- "traefik.http.routers.${APP_NAME}-mcp.rule=Host(`${MCP_DOMAIN}`) && PathPrefix(`/mcp`)"
|
- "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.entrypoints=websecure"
|
||||||
- "traefik.http.routers.${APP_NAME}-mcp.tls.certresolver=letsencrypt"
|
- "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"
|
- "traefik.http.routers.${APP_NAME}-mcp.service=${APP_NAME}-mcp"
|
||||||
|
|
||||||
# Headers personalizados para MCP
|
# Headers personalizados para MCP
|
||||||
|
|||||||
Reference in New Issue
Block a user