Zurück zu Fähigkeiten

containerize-mcp-server

pjt222
Aktualisiert Yesterday
3 Ansichten
17
2
17
Auf GitHub ansehen
Designaimcpdesign

Über

Diese Skill-Komponente containerisiert einen R-basierten MCP-Server mittels Docker, verwaltet Abhängigkeiten, Netzwerkports und Image-Optimierung. Sie ist für den Einsatz von MCP-Servern in containerisierten Umgebungen, die Verteilung an Teammitglieder oder die Integration in Kubernetes-Infrastrukturen konzipiert. Nutzen Sie sie, wenn Sie eine reproduzierbare und portable Bereitstellung eines MCP-Servers benötigen.

Schnellinstallation

Claude Code

Empfohlen
Primär
npx skills add pjt222/agent-almanac -a claude-code
Plugin-BefehlAlternativ
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativ
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/containerize-mcp-server

Kopieren Sie diesen Befehl und fügen Sie ihn in Claude Code ein, um diese Fähigkeit zu installieren

Dokumentation


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 Repository

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

Verwandte Skills

executing-plans

Design

Verwenden Sie die Fähigkeit "executing-plans", wenn Sie einen vollständigen Implementierungsplan zur Ausführung in kontrollierten Batches mit Überprüfungspunkten vorliegen haben. Sie lädt den Plan und überprüft ihn kritisch, führt dann Aufgaben in kleinen Batches (standardmäßig 3 Aufgaben) aus und meldet den Fortschritt zwischen jedem Batch zur Überprüfung durch den Architekten. Dies gewährleistet eine systematische Implementierung mit integrierten Qualitätskontrollpunkten.

Skill ansehen

requesting-code-review

Design

Diese Fähigkeit sendet einen Unteragenten für Code-Review, um Codeänderungen anhand der Anforderungen zu analysieren, bevor fortgefahren wird. Sie sollte nach dem Abschließen von Aufgaben, der Implementierung größerer Funktionen oder vor dem Zusammenführen in den Hauptzweig verwendet werden. Die Überprüfung hilft dabei, Probleme frühzeitig zu erkennen, indem die aktuelle Implementierung mit dem ursprünglichen Plan verglichen wird.

Skill ansehen

connect-mcp-server

Design

Diese Fähigkeit bietet Entwicklern eine umfassende Anleitung, um MCP-Server über HTTP-, stdio- oder SSE-Transports mit Claude Code zu verbinden. Sie behandelt Installation, Konfiguration, Authentifizierung und Sicherheit für die Integration externer Dienste wie GitHub, Notion und benutzerdefinierter APIs. Nutzen Sie sie beim Einrichten von MCP-Integrationen, bei der Konfiguration externer Tools oder bei der Arbeit mit Claude's Model Context Protocol.

Skill ansehen

web-cli-teleport

Design

Diese Fähigkeit unterstützt Entwickler bei der Wahl zwischen Claude Code Web- und CLI-Schnittstellen basierend auf Aufgabenanalysen und ermöglicht nahtloses Session-Teleporting zwischen diesen Umgebungen. Sie optimiert den Workflow, indem sie den Sitzungsstatus und Kontext beim Wechsel zwischen Web, CLI oder Mobilgeräten verwaltet. Nutzen Sie sie für komplexe Projekte, die in verschiedenen Phasen unterschiedliche Werkzeuge erfordern.

Skill ansehen