We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/andychoi/mcp-strapi'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
FROM node:20-alpine AS base
# System dependencies for Strapi (sharp, image processing)
RUN apk add --no-cache build-base gcc autoconf automake libtool vips-dev fftw-dev python3
WORKDIR /opt/app
# -------------------------------------------------------------------
# Stage 1a: Build MCP plugin
# -------------------------------------------------------------------
FROM base AS mcp-plugin-build
COPY strapi-plugins/mcp-server/package.json strapi-plugins/mcp-server/package-lock.json* ./strapi-plugins/mcp-server/
WORKDIR /opt/app/strapi-plugins/mcp-server
RUN npm install
COPY strapi-plugins/mcp-server/ ./
RUN npx strapi-plugin build
# -------------------------------------------------------------------
# Stage 1b: Build secure-documents plugin
# -------------------------------------------------------------------
FROM base AS secure-docs-build
COPY strapi-plugins/secure-documents/package.json strapi-plugins/secure-documents/package-lock.json* ./strapi-plugins/secure-documents/
WORKDIR /opt/app/strapi-plugins/secure-documents
RUN npm install
COPY strapi-plugins/secure-documents/ ./
RUN npx strapi-plugin build
# -------------------------------------------------------------------
# Stage 1c: Build secure-search plugin
# -------------------------------------------------------------------
FROM base AS secure-search-build
COPY strapi-plugins/secure-search/package.json strapi-plugins/secure-search/package-lock.json* ./strapi-plugins/secure-search/
WORKDIR /opt/app/strapi-plugins/secure-search
RUN npm install
COPY strapi-plugins/secure-search/ ./
RUN npx strapi-plugin build
# -------------------------------------------------------------------
# Stage 2: Install Strapi app dependencies
# -------------------------------------------------------------------
FROM base AS deps
# Copy all plugins (built) so file: dependencies resolve
COPY --from=mcp-plugin-build /opt/app/strapi-plugins/mcp-server /opt/app/strapi-plugins/mcp-server
COPY --from=secure-docs-build /opt/app/strapi-plugins/secure-documents /opt/app/strapi-plugins/secure-documents
COPY --from=secure-search-build /opt/app/strapi-plugins/secure-search /opt/app/strapi-plugins/secure-search
WORKDIR /opt/app/strapi-app
COPY strapi-app/package.json strapi-app/package-lock.json* ./
RUN npm install
# -------------------------------------------------------------------
# Stage 3: Build Strapi application
# -------------------------------------------------------------------
FROM base AS build
COPY --from=mcp-plugin-build /opt/app/strapi-plugins/mcp-server /opt/app/strapi-plugins/mcp-server
COPY --from=secure-docs-build /opt/app/strapi-plugins/secure-documents /opt/app/strapi-plugins/secure-documents
COPY --from=secure-search-build /opt/app/strapi-plugins/secure-search /opt/app/strapi-plugins/secure-search
COPY --from=deps /opt/app/strapi-app/node_modules /opt/app/strapi-app/node_modules
WORKDIR /opt/app/strapi-app
COPY strapi-app/ ./
ENV NODE_ENV=production
RUN npm run build
# -------------------------------------------------------------------
# Stage 4: Production image
# -------------------------------------------------------------------
FROM base AS production
COPY --from=mcp-plugin-build /opt/app/strapi-plugins/mcp-server /opt/app/strapi-plugins/mcp-server
COPY --from=secure-docs-build /opt/app/strapi-plugins/secure-documents /opt/app/strapi-plugins/secure-documents
COPY --from=secure-search-build /opt/app/strapi-plugins/secure-search /opt/app/strapi-plugins/secure-search
COPY --from=deps /opt/app/strapi-app/node_modules /opt/app/strapi-app/node_modules
COPY --from=build /opt/app/strapi-app /opt/app/strapi-app
WORKDIR /opt/app/strapi-app
ENV NODE_ENV=production
EXPOSE 1337
HEALTHCHECK --interval=30s --timeout=10s --retries=3 \
CMD wget -qO- http://localhost:1337/_health || exit 1
CMD ["npm", "run", "start"]