We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/maestro-org/maestro-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
Dockerfile•1.25 kB
FROM node:24-alpine AS base
# Install dumb-init for proper signal handling
RUN apk add --no-cache dumb-init
FROM base AS pkg
WORKDIR /usr/src/app
# Copy package files for better layer caching
COPY package.json package-lock.json ./
FROM pkg AS build
# Install all dependencies including devDependencies for building
RUN npm ci --frozen-lockfile
# Copy source files only (thanks to .dockerignore)
COPY . .
# Build the application
RUN npm run build
FROM pkg AS deps
# Install only production dependencies
RUN npm ci --frozen-lockfile --only=production && \
npm cache clean --force
FROM base AS maestro-mcp-server
LABEL org.opencontainers.image.source=https://github.com/maestro-org/maestro-mcp-server
# Create non-root user early in the layer
RUN addgroup -g 65532 -S nonroot && \
adduser -S nonroot -u 65532 -G nonroot
WORKDIR /usr/src/app
# Copy production dependencies and built application
COPY --from=deps --chown=nonroot:nonroot /usr/src/app/node_modules ./node_modules
COPY --from=build --chown=nonroot:nonroot /usr/src/app/build .
USER nonroot
EXPOSE 3000
ENV HOST=0.0.0.0 \
NODE_ENV=production
# Use dumb-init for proper signal handling
ENTRYPOINT ["dumb-init", "--"]
CMD ["node", "index.js", "--transport=streamable-http"]