rspace-online/docker/freecad-mcp/Dockerfile

29 lines
775 B
Docker

FROM node:20-slim
# Install FreeCAD headless (freecad-cmd) and dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
freecad \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Set headless Qt/FreeCAD env
ENV QT_QPA_PLATFORM=offscreen
ENV DISPLAY=""
ENV FREECAD_USER_CONFIG=/tmp/.FreeCAD
WORKDIR /app
# Copy MCP server source
COPY freecad-mcp-server/ .
# Install Node deps + supergateway (stdio→HTTP bridge)
RUN npm install && npm install -g supergateway
# Ensure generated files dir exists
RUN mkdir -p /data/files/generated
EXPOSE 8808
# Use StreamableHttp (supports multiple concurrent connections, unlike SSE)
CMD ["supergateway", "--stdio", "node build/index.js", "--port", "8808", "--outputTransport", "streamableHttp"]