i18n/de/skills/containerize-mcp-server/SKILL.md
Containerisiere einen R-basierten MCP-Server (Model Context Protocol) mit Docker. Umfasst mcptools-Integration, Port-Freigabe, stdio- vs. HTTP-Transport und die Verbindung von Claude Code mit dem containerisierten Server. Verwende diesen Skill beim Deployen eines R-MCP-Servers ohne lokale R-Installation, beim Erstellen einer reproduzierbaren MCP-Server-Umgebung, beim Betrieb von MCP-Servern neben anderen containerisierten Diensten oder beim Verteilen eines MCP-Servers an andere Entwickler.
npx skillsauth add pjt222/agent-almanac containerize-mcp-serverInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Einen R-MCP-Server in einen Docker-Container fuer portables Deployment verpacken.
FROM rocker/r-ver:4.5.0
# Systemabhaengigkeiten installieren
RUN apt-get update && apt-get install -y \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
libgit2-dev \
libssh2-1-dev \
git \
curl \
&& rm -rf /var/lib/apt/lists/*
# R-Pakete installieren
RUN R -e "install.packages(c( \
'remotes', \
'ellmer' \
), repos='https://cloud.r-project.org/')"
# mcptools installieren
RUN R -e "remotes::install_github('posit-dev/mcptools')"
# Arbeitsverzeichnis setzen
WORKDIR /workspace
# MCP-Server-Ports freigeben
EXPOSE 3000 3001 3002
# Umgebungsvariablen
ENV R_LIBS_USER=/workspace/renv/library
ENV RENV_PATHS_CACHE=/workspace/renv/cache
# Standard: MCP-Server starten
CMD ["R", "-e", "mcptools::mcp_server()"]
Erwartet: Ein Dockerfile existiert im Projektstamm mit rocker/r-ver-Basisimage, Systemabhaengigkeiten, mcptools-Installation und dem MCP-Server als Standardbefehl.
Bei Fehler: Sicherstellen, dass das Basisimage-Tag zur R-Version passt. Wenn remotes::install_github fehlschlaegt, pruefen, ob git und libgit2-dev im Systemabhaengigkeiten-Layer enthalten sind.
version: '3.8'
services:
mcp-server:
build:
context: .
dockerfile: Dockerfile
container_name: r-mcp-server
image: r-mcp-server:latest
volumes:
- /path/to/projects:/workspace
- renv-cache:/workspace/renv/cache
stdin_open: true
tty: true
network_mode: "host"
environment:
- TERM=xterm-256color
- R_LIBS_USER=/workspace/renv/library
restart: unless-stopped
volumes:
renv-cache:
driver: local
Die Verwendung von network_mode: "host" stellt sicher, dass die MCP-Server-Ports auf localhost erreichbar sind.
Erwartet: Eine docker-compose.yml-Datei im Projektstamm mit dem MCP-Server-Dienst, Volume-Mounts fuer Projektdateien und renv-Cache sowie aktiviertem stdin_open/tty fuer stdio-Transport.
Bei Fehler: Wenn Volume-Pfade ungueltig sind, /path/to/projects an das tatsaechliche Projektverzeichnis anpassen. Unter Windows/WSL /mnt/c/...- oder /mnt/d/...-Pfade verwenden.
docker compose build
docker compose up -d
Erwartet: Container startet mit laufendem MCP-Server.
Bei Fehler: Logs mit docker compose logs mcp-server pruefen. Haeufige Probleme:
Fuer stdio-Transport (Container muss mit stdin weiterlaufen):
claude mcp add r-mcp-docker stdio "docker" "exec" "-i" "r-mcp-server" "R" "-e" "mcptools::mcp_server()"
Fuer HTTP-Transport (wenn der MCP-Server dies unterstuetzt):
{
"mcpServers": {
"r-mcp-docker": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}
Erwartet: Die MCP-Konfiguration von Claude Code enthaelt den r-mcp-docker-Servereintrag, und claude mcp list zeigt den neuen Server.
Bei Fehler: Fuer stdio-Transport sicherstellen, dass der Containername uebereinstimmt (r-mcp-server) und der Container mit docker ps laeuft. Fuer HTTP-Transport pruefen, ob der Port freigegeben und mit curl http://localhost:3000/mcp erreichbar ist.
# Pruefen, ob Container laeuft
docker ps | grep mcp-server
# R-Sitzung im Container testen
docker exec -it r-mcp-server R -e "sessionInfo()"
# Pruefen, ob mcptools verfuegbar ist
docker exec -it r-mcp-server R -e "library(mcptools)"
Erwartet: docker ps zeigt den r-mcp-server-Container als laufend, sessionInfo() gibt die erwartete R-Version zurueck, und library(mcptools) wird fehlerfrei geladen.
Bei Fehler: Wenn der Container nicht laeuft, docker compose logs mcp-server auf Startfehler pruefen. Wenn mcptools nicht geladen werden kann, das Image neu bauen, um sicherzustellen, dass das Paket korrekt installiert wurde.
Um projektspezifische MCP-Tools hinzuzufuegen, R-Skripte einhaengen:
volumes:
- ./mcp-tools:/mcp-tools
Und im CMD laden:
CMD ["R", "-e", "source('/mcp-tools/custom_tools.R'); mcptools::mcp_server()"]
Erwartet: Benutzerdefinierte R-Skripte sind im Container unter /mcp-tools/ zugaenglich, und der MCP-Server laedt sie beim Start neben den Standardtools.
Bei Fehler: Sicherstellen, dass der Volume-Mount-Pfad korrekt ist, mit docker exec -it r-mcp-server ls /mcp-tools/ pruefen. Wenn Skripte nicht gesourced werden koennen, fehlende Paketabhaengigkeiten in den benutzerdefinierten Tools pruefen.
stdin_open: true und tty: truenetwork_mode: "host" verwenden oder bestimmte Ports freigeben.create-r-dockerfile - Basis-Dockerfile-Muster fuer Rsetup-docker-compose - Details zur Compose-Konfigurationconfigure-mcp-server - MCP-Server-Konfiguration ohne Dockertroubleshoot-mcp-connection - Debugging von MCP-Verbindungsproblementesting
Launch all available agents in parallel waves for open-ended hypothesis generation on problems where the correct domain is unknown. Use when facing a cross-domain problem with no clear starting point, when single-agent approaches have stalled, or when diverse perspectives are more valuable than deep expertise. Produces a ranked hypothesis set with convergence analysis and adversarial refinement.
tools
Write integration tests for a Node.js CLI application using the built-in node:test module. Covers the exec helper pattern, output assertions, filesystem state verification, cleanup hooks, JSON output parsing, error case testing, and state restoration after destructive tests. Use when adding tests to an existing CLI, testing a new command, verifying adapter behavior across frameworks, or setting up CI for a CLI tool.
development
Screen a proposed trademark for conflicts and distinctiveness before filing. Covers trademark database searches (TMview, WIPO Global Brand Database, USPTO TESS), distinctiveness analysis using the Abercrombie spectrum, likelihood of confusion assessment using DuPont factors and EUIPO relative grounds, common law rights evaluation, and goods/services overlap analysis. Produces a conflict report with a risk matrix. Use before adopting a new brand name, logo, or slogan — distinct from patent prior art search, which uses different databases, legal frameworks, and analysis methods.
tools
Scaffold a new CLI command using Commander.js with options, action handler, three output modes (human-readable, quiet, JSON), and optional ceremony variant. Covers command naming, option design, shared context patterns, error handling, and integration testing. Use when adding a command to an existing Commander.js CLI, designing a new CLI tool from scratch, or standardizing command structure across a multi-command CLI.