containerize-mcp-server
정보
이 스킬은 R 기반 MCP 서버를 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-serverClaude 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
디자인이 스킬은 개발자들이 HTTP, stdio 또는 SSE 전송 방식을 통해 MCP 서버를 Claude Code에 연결하는 포괄적인 가이드를 제공합니다. GitHub, Notion 및 사용자 정의 API와 같은 외부 서비스를 통합하기 위한 설치, 구성, 인증 및 보안을 다룹니다. MCP 통합 설정, 외부 도구 구성 또는 Claude의 모델 컨텍스트 프로토콜 작업 시 활용하세요.
web-cli-teleport
디자인이 스킬은 작업 분석을 기반으로 개발자가 Claude Code 웹 인터페이스와 CLI 인터페이스 중 선택할 수 있도록 돕고, 두 환경 간 원활한 세션 텔레포트를 가능하게 합니다. 웹, CLI 또는 모바일 환경 전환 시 세션 상태와 컨텍스트를 관리하여 워크플로를 최적화합니다. 다양한 단계에서 서로 다른 도구가 필요한 복잡한 프로젝트에 사용하세요.
