# MCP Service - Lightweight HTTP-based microservice FROM python:3.12-slim WORKDIR /app # Install uv and git RUN pip install --no-cache-dir uv && \ apt-get update && \ apt-get install -y git && \ rm -rf /var/lib/apt/lists/* # Copy pyproject.toml for dependency installation COPY pyproject.toml . # Install only MCP dependencies to system python RUN uv pip install --system --group mcp # Create directory structure RUN mkdir -p src/mcp_server/features/projects src/mcp_server/features/developer src/mcp_server/features/marketing # Copy the core MCP server code COPY src/mcp_server/ src/mcp_server/ COPY src/__init__.py src/ # Copy the server files MCP needs for HTTP communication and Developer Tools # We copy specific directories to maintain a lean image while ensuring all dependencies are present COPY src/server/__init__.py src/server/ COPY src/server/utils/ src/server/utils/ COPY src/server/repositories/ src/server/repositories/ COPY src/server/config/ src/server/config/ COPY src/server/services/ src/server/services/ COPY src/server/auth/ src/server/auth/ COPY src/server/schemas/ src/server/schemas/ COPY src/server/models/ src/server/models/ # Set environment variables ENV PYTHONPATH="/app/src:/app" ENV PYTHONUNBUFFERED=1 # Expose MCP port ARG ARCHON_MCP_PORT=8051 ENV ARCHON_MCP_PORT=${ARCHON_MCP_PORT} EXPOSE 8051 # Add and use entrypoint script COPY docker-entrypoint-mcp.sh /app/ RUN chmod +x /app/docker-entrypoint-mcp.sh CMD ["/app/docker-entrypoint-mcp.sh"]