MCP HubMCP Hub
스킬 목록으로 돌아가기

containerize-mcp-server

pjt222
업데이트됨 Yesterday
1 조회
17
2
17
GitHub에서 보기
디자인aimcpdesign

정보

이 스킬은 R 기반 MCP 서버를 Docker를 사용해 컨테이너화하며, 의존성 처리, 네트워크 포트 설정, 이미지 최적화를 담당합니다. MCP 서버를 컨테이너화된 환경에 배포하거나 팀원들에게 배포하거나 Kubernetes 인프라에 통합할 때 사용하도록 설계되었습니다. 재현 가능하고 이식성 있는 MCP 서버 배포가 필요할 때 사용하세요.

빠른 설치

Claude Code

추천
기본
npx skills add pjt222/agent-almanac -a claude-code
플러그인 명령대체
/plugin add https://github.com/pjt222/agent-almanac
Git 클론대체
git 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 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

GitHub 저장소

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

연관 스킬

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 또는 모바일 환경 전환 시 세션 상태와 컨텍스트를 관리하여 워크플로를 최적화합니다. 다양한 단계에서 서로 다른 도구가 필요한 복잡한 프로젝트에 사용하세요.

스킬 보기