Docker
La imagen es ghcr.io/jmrplens/arcane-mcp, que el flujo de publicación publica para cada versión, y también docker.io/jmrplens/arcane-mcp, con el mismo digest, cuando esté configurado el repositorio de Docker Hub. Es el binario estático sobre gcr.io/distroless/static-debian12:nonroot: sin shell ni gestor de paquetes, con el usuario sin privilegios 65532. No se publica nada hasta la primera versión; consulta Instalación.
Requisitos
Sección titulada «Requisitos»Docker, o cualquier entorno que ejecute imágenes OCI (Podman, containerd), en un host o máquina virtual linux/amd64 o linux/arm64 (incluido Docker Desktop en macOS y Windows).
Etiquetas
Sección titulada «Etiquetas»| Etiqueta | Significado |
|---|---|
X.Y.Z | Una versión; nunca se mueve |
X.Y | Se mueve con una versión de esa línea menor solo cuando es la más reciente de todas |
latest | La versión más reciente; una versión de mantenimiento (anterior a la más reciente) no mueve ni X.Y ni latest |
Cada etiqueta es un índice multiplataforma para linux/amd64 y linux/arm64; Docker descarga el de tu máquina.
docker pull ghcr.io/jmrplens/arcane-mcp:X.Y.Zdocker run --rm ghcr.io/jmrplens/arcane-mcp:X.Y.Z --versionHasta la primera versión, construye la imagen desde un clon del repositorio: docker build -t arcane-mcp ., y usa arcane-mcp como nombre de imagen en lo que sigue.
Configurar tu cliente (stdio)
Sección titulada «Configurar tu cliente (stdio)»El cliente arranca el contenedor en cada sesión y habla con él por la entrada y la salida estándar:
{ "mcpServers": { "arcane": { "command": "docker", "args": ["run", "-i", "--rm", "-e", "ARCANE_URL", "-e", "ARCANE_API_KEY", "ghcr.io/jmrplens/arcane-mcp:X.Y.Z"], "env": { "ARCANE_URL": "https://arcane.example.com", "ARCANE_API_KEY": "<your Arcane API key>" } } }}- Mantén
-i(el protocolo viaja por la entrada estándar) y nunca añadas-tni-d. -e NOMBREsin valor reenvía esa variable desde el entorno con el que el cliente arrancadocker, así que los valores se quedan enenvy fuera de los argumentos. Cada ajuste adicional (ARCANE_MCP_TOOL_SURFACE,ARCANE_MCP_READ_ONLY…) necesita su propio-e NOMBREy un valor enenv.ARCANE_URLtiene que ser alcanzable desde dentro del contenedor: allílocalhostes el propio contenedor. Usa el nombre del host,host.docker.internal(Docker Desktop) o--network host(Linux).- El contenedor no ve un fichero
.envde tu directorio de trabajo.
La entrada Docker de cada cliente está en Configuración de clientes.
Ejecutarlo como servicio HTTP
Sección titulada «Ejecutarlo como servicio HTTP»Con ARCANE_MCP_HTTP_ADDR definida, el contenedor sirve Streamable HTTP en /mcp en lugar de stdio, para varios clientes a la vez:
export ARCANE_MCP_HTTP_TOKEN=$(openssl rand -hex 32)docker run -d --name arcane-mcp -p 127.0.0.1:8080:8080 \ -e ARCANE_URL=https://arcane.example.com \ -e ARCANE_MCP_HTTP_ADDR=:8080 \ -e ARCANE_MCP_HTTP_ALLOW_PLAINTEXT=true \ -e ARCANE_MCP_HTTP_TOKEN \ ghcr.io/jmrplens/arcane-mcp:X.Y.ZARCANE_MCP_HTTP_ALLOW_PLAINTEXT=true dice que el HTTP sin cifrar en el :8080 del contenedor es intencionado: dentro del contenedor el servidor escucha en todas las interfaces, pero el puerto se publica solo en el loopback del anfitrión. Sin él, el servidor registra un aviso al arrancar; consulta HTTP sin cifrar y el modo endurecido.
Los ficheros de Compose junto a Arcane, los proxies inversos, TLS y los sockets unix están en Despliegue HTTP.
Comprobación de estado
Sección titulada «Comprobación de estado»La imagen tiene un HEALTHCHECK que ejecuta arcane-mcp --probe cada 30 segundos: un contenedor HTTP pasa a healthy en cuanto responde /healthz, y un contenedor stdio cuenta como sano mientras se ejecuta (no tiene servidor al que preguntar). No hay nada que configurar; consulta Escucha, sondas y parada.
Fijar una versión
Sección titulada «Fijar una versión»Usa una etiqueta X.Y.Z en todo aquello de lo que dependas, o fija el digest que publica la versión: ghcr.io/jmrplens/arcane-mcp:X.Y.Z@sha256:<digest> (la entrada del MCP Registry fija la imagen así). latest se mueve con cada versión.
Verificarla
Sección titulada «Verificarla»El índice y las imágenes de las dos plataformas están firmados sin claves con cosign y llevan atestaciones de procedencia SLSA y de SBOM SPDX. Las órdenes están en Verificar una versión.
Actualizar y eliminar
Sección titulada «Actualizar y eliminar»Descarga la etiqueta nueva y cámbiala en la entrada del cliente (con --rm, cada sesión arranca un contenedor nuevo); para un servicio HTTP, vuelve a crear el contenedor con la etiqueta nueva. Para eliminar la imagen: docker image rm ghcr.io/jmrplens/arcane-mcp:X.Y.Z.