# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile
# ----- Build Stage -----
FROM node:lts-alpine AS builder
WORKDIR /app
# Copy dependency and config files first to leverage cache
COPY package.json package-lock.json tsconfig.json ./
# Install all dependencies (including dev) for build
RUN npm install --ignore-scripts
# Copy source code and other necessary files
COPY index.ts ./
COPY llms.txt llms-full.txt ./
# Build the project
RUN npm run build
# ----- Production Stage -----
FROM node:lts-alpine AS production
LABEL maintainer="Nekzus <nekzus.dev@gmail.com>"
LABEL description="NPM Sentinel MCP Server for package analysis"
LABEL version="1.7.8"
WORKDIR /app
# Copy only the necessary artifacts from the build
COPY --from=builder /app/package.json ./
COPY --from=builder /app/package-lock.json ./
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/llms.txt /app/llms-full.txt ./
# Install only production dependencies
RUN npm install --omit=dev --ignore-scripts && npm cache clean --force
# Use non-root user for security
USER node
# Expose the standard port (adjust if you use another)
EXPOSE 3000
# Optional HEALTHCHECK (uncomment and adjust the endpoint if you have one)
HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1
# Startup command
CMD ["node", "dist/index.js"]
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nekzus/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server