MCP HubMCP Hub
Volver a habilidades

containerize-mcp-server

pjt222
Actualizado 2 days ago
7 vistas
17
2
17
Ver en GitHub
Diseñoaimcpdesign

Acerca de

Esta habilidad contenedoriza un servidor MCP basado en R utilizando Docker, manejando dependencias, puertos de red y optimización de imágenes. Está diseñada para implementar servidores MCP en entornos contenedorizados, distribuirlos a miembros del equipo o integrarlos en infraestructura Kubernetes. Úsela cuando necesite una implementación reproducible y portátil de un servidor MCP.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add pjt222/agent-almanac -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativo
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/containerize-mcp-server

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación


name: containerize-mcp-server locale: es source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16 description: > Contenerizar un servidor MCP basado en R con Docker, incluyendo configuración de dependencias, puertos de red, y optimización de imagen. Usar cuando se necesite desplegar un servidor MCP en un entorno contenerizado, distribuir servidores MCP a miembros del equipo, o integrar servidores MCP en infraestructura Kubernetes. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: containerization complexity: intermediate language: multi tags: docker, mcp, r, containerization, server

Contenerizar Servidor MCP

Contenerizar un servidor MCP basado en R para despliegue y distribución reproducible.

Cuándo Usar

  • Desplegando un servidor MCP en un entorno contenerizado
  • Distribuyendo servidores MCP pre-configurados a miembros del equipo
  • Integrando servidores MCP en infraestructura Kubernetes
  • Necesitando aislamiento entre múltiples servidores MCP
  • Automatizando el despliegue de servidores MCP en CI/CD

Entradas

  • Requerido: Código fuente del servidor MCP (R o Node.js)
  • Requerido: Lista de dependencias del servidor
  • Opcional: Certificados TLS para conexiones seguras
  • Opcional: Archivos de configuración del servidor
  • Opcional: Requisitos de recursos (CPU, memoria)

Procedimiento

Paso 1: Crear Dockerfile para Servidor MCP R

Construir la imagen Docker con las dependencias necesarias.

FROM rocker/r-ver:4.4.0

# Instalar dependencias del sistema
RUN apt-get update && apt-get install -y --no-install-recommends \
    libcurl4-openssl-dev \
    libssl-dev \
    && rm -rf /var/lib/apt/lists/*

# Instalar paquetes R necesarios
RUN R -e "install.packages(c('mcptools', 'ellmer', 'jsonlite'), repos='https://cloud.r-project.org')"

# Copiar código del servidor
WORKDIR /server
COPY . .

# Exponer puerto MCP
EXPOSE 8080

# Punto de entrada
CMD ["Rscript", "-e", "mcptools::mcp_server()"]

Esperado: Dockerfile creado con todas las dependencias, imagen base apropiada seleccionada.

En caso de fallo: Verificar que los paquetes R se instalan correctamente, comprobar dependencias del sistema faltantes.

Paso 2: Configurar Red y Transporte

Configurar el transporte de red para el servidor MCP.

# Para transporte stdio (comunicación estándar)
CMD ["Rscript", "-e", "mcptools::mcp_server()"]

# Para transporte HTTP/SSE
EXPOSE 8080
CMD ["Rscript", "-e", "mcptools::mcp_server(transport='sse', port=8080, host='0.0.0.0')"]

Esperado: El servidor acepta conexiones en el transporte configurado, los puertos están correctamente expuestos.

En caso de fallo: Verificar que el host es '0.0.0.0' (no 'localhost') para acceso externo al contenedor, comprobar reglas de firewall.

Paso 3: Compilar y Probar

Compilar la imagen y verificar la funcionalidad.

# Compilar imagen
docker build -t mcp-server-r:latest .

# Ejecutar con transporte stdio
docker run -i mcp-server-r:latest

# Ejecutar con transporte HTTP
docker run -p 8080:8080 mcp-server-r:latest

# Probar conectividad
curl http://localhost:8080/health

Esperado: El servidor MCP se inicia correctamente dentro del contenedor, acepta conexiones de clientes.

En caso de fallo: Revisar logs del contenedor (docker logs), verificar que los paquetes R están disponibles, comprobar el mapeo de puertos.

Paso 4: Optimizar Imagen

Reducir el tamaño de la imagen para producción.

# Compilación multi-etapa
FROM rocker/r-ver:4.4.0 AS builder
RUN R -e "install.packages('renv', repos='https://cloud.r-project.org')"
COPY renv.lock .
RUN R -e "renv::restore()"

FROM rocker/r-ver:4.4.0
COPY --from=builder /usr/local/lib/R/site-library /usr/local/lib/R/site-library
COPY . /server
WORKDIR /server
CMD ["Rscript", "-e", "mcptools::mcp_server()"]

Esperado: La imagen final es significativamente más pequeña que la versión de una sola etapa.

En caso de fallo: Verificar que todos los paquetes necesarios se copian desde la etapa de compilación, probar la imagen final exhaustivamente.

Validación

  • La imagen Docker se compila sin errores
  • El servidor MCP se inicia dentro del contenedor
  • Los clientes pueden conectarse al servidor contenerizado
  • Las herramientas MCP están disponibles y funcionan correctamente
  • El tamaño de la imagen es razonable para distribución
  • El contenedor se reinicia limpiamente sin pérdida de estado

Errores Comunes

  • Host localhost en contenedor: Usar '0.0.0.0' como host para que el servidor sea accesible desde fuera del contenedor.
  • Paquetes R faltantes: Instalar todas las dependencias en el Dockerfile, no confiar en el entorno del host.
  • Tiempo de inicio largo: Pre-compilar paquetes en la etapa de compilación para reducir el tiempo de inicio.
  • Sin persistencia: Los datos del servidor se pierden al reiniciar el contenedor; usar volúmenes para estado persistente.

Habilidades Relacionadas

  • create-r-dockerfile - Patrones base de Dockerfile para aplicaciones R
  • configure-mcp-server - Configuración de servidores MCP sin Docker
  • build-custom-mcp-server - Construir servidores MCP personalizados
  • scaffold-mcp-server - Andamiaje de nuevos servidores MCP

Repositorio GitHub

pjt222/agent-almanac
Ruta: i18n/es/skills/containerize-mcp-server
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Habilidades relacionadas

executing-plans

Diseño

Utilice la habilidad executing-plans cuando tenga un plan de implementación completo para ejecutar en lotes controlados con puntos de revisión. Esta habilidad carga y revisa críticamente el plan, luego ejecuta tareas en pequeños lotes (por defecto 3 tareas) mientras reporta el progreso entre cada lote para la revisión del arquitecto. Esto asegura una implementación sistemática con puntos de control de calidad integrados.

Ver habilidad

requesting-code-review

Diseño

Esta habilidad despacha un subagente revisor de código para analizar los cambios en el código frente a los requisitos antes de proceder. Debe usarse después de completar tareas, implementar funciones principales o antes de fusionar con la rama principal. La revisión ayuda a detectar problemas de forma temprana al comparar la implementación actual con el plan original.

Ver habilidad

connect-mcp-server

Diseño

Esta habilidad proporciona una guía integral para que los desarrolladores conecten servidores MCP a Claude Code mediante transportes HTTP, stdio o SSE. Cubre la instalación, configuración, autenticación y seguridad para integrar servicios externos como GitHub, Notion y APIs personalizadas. Úsala al configurar integraciones MCP, al configurar herramientas externas o al trabajar con el Protocolo de Contexto del Modelo de Claude.

Ver habilidad

web-cli-teleport

Diseño

Esta habilidad ayuda a los desarrolladores a elegir entre las interfaces web y CLI de Claude Code mediante el análisis de tareas, y luego permite la teletransportación fluida de sesiones entre estos entornos. Optimiza el flujo de trabajo gestionando el estado y el contexto de la sesión al cambiar entre web, CLI o móvil. Úsala para proyectos complejos que requieren diferentes herramientas en varias etapas.

Ver habilidad