containerize-mcp-server
О программе
Этот навык контейнеризирует MCP-сервер на основе R с использованием Docker, управляя зависимостями, сетевыми портами и оптимизацией образов. Он предназначен для развёртывания MCP-серверов в контейнеризированных средах, распространения их среди членов команды или интеграции в инфраструктуру Kubernetes. Используйте его, когда вам требуется воспроизводимое и портируемое развёртывание MCP-сервера.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/containerize-mcp-serverСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
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 Rconfigure-mcp-server- Configuración de servidores MCP sin Dockerbuild-custom-mcp-server- Construir servidores MCP personalizadosscaffold-mcp-server- Andamiaje de nuevos servidores MCP
GitHub репозиторий
Похожие навыки
executing-plans
ДизайнИспользуйте навык executing-plans, когда у вас есть полный план реализации для выполнения контролируемыми партиями с контрольными точками проверки. Он загружает и критически анализирует план, затем выполняет задачи небольшими партиями (по умолчанию 3 задачи), сообщая о прогрессе между каждой партией для проверки архитектором. Это обеспечивает систематическую реализацию со встроенными контрольными точками проверки качества.
requesting-code-review
ДизайнЭтот навык запускает суб-агента для ревью кода, который анализирует изменения в коде на соответствие требованиям перед дальнейшими действиями. Его следует использовать после завершения задач, реализации крупных функций или перед слиянием с основной веткой. Ревью помогает выявить проблемы на ранней стадии, сравнивая текущую реализацию с исходным планом.
connect-mcp-server
ДизайнЭтот навык предоставляет разработчикам подробное руководство по подключению серверов MCP к Claude Code с использованием транспортов HTTP, stdio или SSE. Он охватывает установку, конфигурацию, аутентификацию и безопасность для интеграции внешних сервисов, таких как GitHub, Notion и пользовательские API. Используйте его при настройке интеграций MCP, конфигурации внешних инструментов или работе с Model Context Protocol от Claude.
web-cli-teleport
ДизайнЭтот навык помогает разработчикам выбирать между веб-интерфейсом Claude Code и CLI на основе анализа задачи, а также обеспечивает бесшовное перемещение сессий между этими средами. Он оптимизирует рабочий процесс, управляя состоянием и контекстом сессии при переключении между веб-интерфейсом, CLI или мобильным приложением. Используйте его для сложных проектов, требующих различных инструментов на разных этапах работы.
