From 944461f0319aa7f8587bc52248e771cb4ebfc9e3 Mon Sep 17 00:00:00 2001 From: BBQ Date: Fri, 13 Feb 2026 00:41:00 +0800 Subject: [PATCH] feat(mcp): add Node.js and Python runtime to MCP container image - Install nodejs + npm (provides npx for JS/TS MCP servers) - Install python3 + uv (provides uvx for Python MCP servers) - Add bash and curl as base utilities --- cmd/mcp/Dockerfile | 14 +++++++++++++- docker/Dockerfile.mcp | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/cmd/mcp/Dockerfile b/cmd/mcp/Dockerfile index 1daf0c51..a37ba27c 100644 --- a/cmd/mcp/Dockerfile +++ b/cmd/mcp/Dockerfile @@ -11,7 +11,19 @@ RUN CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH:-amd64} \ go build -trimpath -ldflags "-s -w -X github.com/memohai/memoh/internal/version.CommitHash=${COMMIT_HASH}" -o /out/mcp ./cmd/mcp FROM alpine:latest -RUN apk add --no-cache grep + +# Base utilities +RUN apk add --no-cache grep curl bash + +# Node.js + npm (provides npx for JS/TS MCP servers) +RUN apk add --no-cache nodejs npm + +# Python 3 + uv (provides uvx for Python MCP servers) +RUN apk add --no-cache python3 && \ + curl -LsSf https://astral.sh/uv/install.sh | sh && \ + ln -sf /root/.local/bin/uv /usr/local/bin/uv && \ + ln -sf /root/.local/bin/uvx /usr/local/bin/uvx + WORKDIR /app COPY --from=build /out/mcp /opt/mcp COPY cmd/mcp/template /opt/mcp-template diff --git a/docker/Dockerfile.mcp b/docker/Dockerfile.mcp index 405ee4a9..065decf1 100644 --- a/docker/Dockerfile.mcp +++ b/docker/Dockerfile.mcp @@ -15,7 +15,19 @@ RUN --mount=type=cache,target=/go/pkg/mod \ go build -trimpath -ldflags "-s -w -X github.com/memohai/memoh/internal/version.CommitHash=${COMMIT_HASH}" -o /out/mcp ./cmd/mcp FROM alpine:latest -RUN apk add --no-cache grep + +# Base utilities +RUN apk add --no-cache grep curl bash + +# Node.js + npm (provides npx for JS/TS MCP servers) +RUN apk add --no-cache nodejs npm + +# Python 3 + uv (provides uvx for Python MCP servers) +RUN apk add --no-cache python3 && \ + curl -LsSf https://astral.sh/uv/install.sh | sh && \ + ln -sf /root/.local/bin/uv /usr/local/bin/uv && \ + ln -sf /root/.local/bin/uvx /usr/local/bin/uvx + WORKDIR /app COPY --from=build /out/mcp /opt/mcp COPY cmd/mcp/template /opt/mcp-template